Message ID | 1485635045-86074-1-git-send-email-fabrice.fontaine@orange.com |
---|---|
State | Accepted |
Commit | c487d0671d444a024707f8c5fa5d7571090b629f |
Headers | show |
Hi Fabrice, Le 28/01/2017 à 21:24, Fabrice Fontaine a écrit : > Minimalistic C client for Redis >= 1.2 > > It is minimalistic because it just adds minimal support for > the protocol, but at the same time it uses a high level > printf-alike API in order to make it much higher level than > otherwise suggested by its minimal code base and the lack of > explicit bindings for every Redis command. > > https://github.com/redis/hiredis > > Signed-off-by: Fabrice Fontaine <fabrice.fontaine@orange.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Best regards, Romain > --- > Changes v2 -> v3 (after review of Romain Naour): > - Add -D option to INSTALL instead of calling mkdir -p > > Changes v1 -> v2: > - Do not use make install as it will always build static and shared > version of the library (which will fail if BR2_STATIC_LIBS is set) > > package/Config.in | 1 + > package/hiredis/Config.in | 12 ++++++++++++ > package/hiredis/hiredis.hash | 2 ++ > package/hiredis/hiredis.mk | 46 ++++++++++++++++++++++++++++++++++++++++++++ > 4 files changed, 61 insertions(+) > create mode 100644 package/hiredis/Config.in > create mode 100644 package/hiredis/hiredis.hash > create mode 100644 package/hiredis/hiredis.mk > > diff --git a/package/Config.in b/package/Config.in > index b6b409c..df17dd6 100644 > --- a/package/Config.in > +++ b/package/Config.in > @@ -925,6 +925,7 @@ menu "Database" > source "package/berkeleydb/Config.in" > source "package/cppdb/Config.in" > source "package/gdbm/Config.in" > + source "package/hiredis/Config.in" > source "package/kompexsqlite/Config.in" > source "package/leveldb/Config.in" > source "package/libpqxx/Config.in" > diff --git a/package/hiredis/Config.in b/package/hiredis/Config.in > new file mode 100644 > index 0000000..1656355 > --- /dev/null > +++ b/package/hiredis/Config.in > @@ -0,0 +1,12 @@ > +config BR2_PACKAGE_HIREDIS > + bool "hiredis" > + help > + Minimalistic C client for Redis >= 1.2 > + > + It is minimalistic because it just adds minimal support for > + the protocol, but at the same time it uses a high level > + printf-alike API in order to make it much higher level than > + otherwise suggested by its minimal code base and the lack of > + explicit bindings for every Redis command. > + > + https://github.com/redis/hiredis > diff --git a/package/hiredis/hiredis.hash b/package/hiredis/hiredis.hash > new file mode 100644 > index 0000000..2c788a6 > --- /dev/null > +++ b/package/hiredis/hiredis.hash > @@ -0,0 +1,2 @@ > +# Locally computed: > +sha256 717e6fc8dc2819bef522deaca516de9e51b9dfa68fe393b7db5c3b6079196f78 hiredis-v0.13.3.tar.gz > diff --git a/package/hiredis/hiredis.mk b/package/hiredis/hiredis.mk > new file mode 100644 > index 0000000..ff7944b > --- /dev/null > +++ b/package/hiredis/hiredis.mk > @@ -0,0 +1,46 @@ > +################################################################################ > +# > +# hiredis > +# > +################################################################################ > + > +HIREDIS_VERSION = v0.13.3 > +HIREDIS_SITE = $(call github,redis,hiredis,$(HIREDIS_VERSION)) > +HIREDIS_LICENSE = BSD-3c > +HIREDIS_LICENSE_FILES = COPYING > +HIREDIS_INSTALL_STAGING = YES > + > +HIREDIS_MAKE_OPTS = \ > + $(TARGET_CONFIGURE_OPTS) \ > + PREFIX=/usr > + > +HIREDIS_TARGETS = hiredis.pc > +ifeq ($(BR2_STATIC_LIBS),y) > +HIREDIS_TARGETS += static > +else ifeq ($(BR2_SHARED_LIBS),y) > +HIREDIS_TARGETS += dynamic > +else ifeq $(BR2_SHARED_STATIC_LIBS),y) > +HIREDIS_TARGETS += dynamic static > +endif > + > +define HIREDIS_BUILD_CMDS > + $(TARGET_MAKE_ENV) $(MAKE) $(HIREDIS_MAKE_OPTS) -C $(@D) \ > + $(HIREDIS_TARGETS) > +endef > + > +HIREDIS_INCLUDE_DIR = $(STAGING_DIR)/usr/include/hiredis > + > +# Do not call make install as this target will build shared and static libraries > +define HIREDIS_INSTALL_STAGING_CMDS > + mkdir -p $(HIREDIS_INCLUDE_DIR) > + cp -dpfr $(@D)/hiredis.h $(@D)/async.h $(@D)/read.h $(@D)/sds.h \ > + $(@D)/adapters $(HIREDIS_INCLUDE_DIR) > + $(INSTALL) -D -m 0644 $(@D)/libhiredis* $(STAGING_DIR)/usr/lib > + $(INSTALL) -D -m 0644 $(@D)/hiredis.pc $(STAGING_DIR)/usr/lib/pkgconfig > +endef > + > +define HIREDIS_INSTALL_TARGET_CMDS > + $(INSTALL) -D -m 0644 $(@D)/libhiredis* $(TARGET_DIR)/usr/lib > +endef > + > +$(eval $(generic-package)) >
>>>>> "Fabrice" == Fabrice Fontaine <fontaine.fabrice@gmail.com> writes: > Minimalistic C client for Redis >= 1.2 > It is minimalistic because it just adds minimal support for > the protocol, but at the same time it uses a high level > printf-alike API in order to make it much higher level than > otherwise suggested by its minimal code base and the lack of > explicit bindings for every Redis command. > https://github.com/redis/hiredis > Signed-off-by: Fabrice Fontaine <fabrice.fontaine@orange.com> > --- > Changes v2 -> v3 (after review of Romain Naour): > - Add -D option to INSTALL instead of calling mkdir -p > Changes v1 -> v2: > - Do not use make install as it will always build static and shared > version of the library (which will fail if BR2_STATIC_LIBS is set) > +++ b/package/hiredis/hiredis.mk > @@ -0,0 +1,46 @@ > +################################################################################ > +# > +# hiredis > +# > +################################################################################ > + > +HIREDIS_VERSION = v0.13.3 > +HIREDIS_SITE = $(call github,redis,hiredis,$(HIREDIS_VERSION)) > +HIREDIS_LICENSE = BSD-3c > +HIREDIS_LICENSE_FILES = COPYING > +HIREDIS_INSTALL_STAGING = YES > + > +HIREDIS_MAKE_OPTS = \ > + $(TARGET_CONFIGURE_OPTS) \ > + PREFIX=/usr > + > +HIREDIS_TARGETS = hiredis.pc > +ifeq ($(BR2_STATIC_LIBS),y) > +HIREDIS_TARGETS += static > +else ifeq ($(BR2_SHARED_LIBS),y) > +HIREDIS_TARGETS += dynamic > +else ifeq $(BR2_SHARED_STATIC_LIBS),y) > +HIREDIS_TARGETS += dynamic static > +endif > + > +define HIREDIS_BUILD_CMDS > + $(TARGET_MAKE_ENV) $(MAKE) $(HIREDIS_MAKE_OPTS) -C $(@D) \ > + $(HIREDIS_TARGETS) > +endef > + > +HIREDIS_INCLUDE_DIR = $(STAGING_DIR)/usr/include/hiredis > + > +# Do not call make install as this target will build shared and static libraries > +define HIREDIS_INSTALL_STAGING_CMDS > + mkdir -p $(HIREDIS_INCLUDE_DIR) > + cp -dpfr $(@D)/hiredis.h $(@D)/async.h $(@D)/read.h $(@D)/sds.h \ > + $(@D)/adapters $(HIREDIS_INCLUDE_DIR) > + $(INSTALL) -D -m 0644 $(@D)/libhiredis* $(STAGING_DIR)/usr/lib install -t has to be used when multiple source files are (can be) present. Notice that it doesn't create the destination, so I swapped this line with the one below. > + $(INSTALL) -D -m 0644 $(@D)/hiredis.pc $(STAGING_DIR)/usr/lib/pkgconfig When the -D option is present then you need to specify the destination file name, not just the directory. > +endef > + > +define HIREDIS_INSTALL_TARGET_CMDS > + $(INSTALL) -D -m 0644 $(@D)/libhiredis* $(TARGET_DIR)/usr/lib Again, -t has to be used, and mkdir -p $(TARGET)/usr/lib to ensure the destination directory exists. Committed with these fixes, thanks.
diff --git a/package/Config.in b/package/Config.in index b6b409c..df17dd6 100644 --- a/package/Config.in +++ b/package/Config.in @@ -925,6 +925,7 @@ menu "Database" source "package/berkeleydb/Config.in" source "package/cppdb/Config.in" source "package/gdbm/Config.in" + source "package/hiredis/Config.in" source "package/kompexsqlite/Config.in" source "package/leveldb/Config.in" source "package/libpqxx/Config.in" diff --git a/package/hiredis/Config.in b/package/hiredis/Config.in new file mode 100644 index 0000000..1656355 --- /dev/null +++ b/package/hiredis/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_HIREDIS + bool "hiredis" + help + Minimalistic C client for Redis >= 1.2 + + It is minimalistic because it just adds minimal support for + the protocol, but at the same time it uses a high level + printf-alike API in order to make it much higher level than + otherwise suggested by its minimal code base and the lack of + explicit bindings for every Redis command. + + https://github.com/redis/hiredis diff --git a/package/hiredis/hiredis.hash b/package/hiredis/hiredis.hash new file mode 100644 index 0000000..2c788a6 --- /dev/null +++ b/package/hiredis/hiredis.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 717e6fc8dc2819bef522deaca516de9e51b9dfa68fe393b7db5c3b6079196f78 hiredis-v0.13.3.tar.gz diff --git a/package/hiredis/hiredis.mk b/package/hiredis/hiredis.mk new file mode 100644 index 0000000..ff7944b --- /dev/null +++ b/package/hiredis/hiredis.mk @@ -0,0 +1,46 @@ +################################################################################ +# +# hiredis +# +################################################################################ + +HIREDIS_VERSION = v0.13.3 +HIREDIS_SITE = $(call github,redis,hiredis,$(HIREDIS_VERSION)) +HIREDIS_LICENSE = BSD-3c +HIREDIS_LICENSE_FILES = COPYING +HIREDIS_INSTALL_STAGING = YES + +HIREDIS_MAKE_OPTS = \ + $(TARGET_CONFIGURE_OPTS) \ + PREFIX=/usr + +HIREDIS_TARGETS = hiredis.pc +ifeq ($(BR2_STATIC_LIBS),y) +HIREDIS_TARGETS += static +else ifeq ($(BR2_SHARED_LIBS),y) +HIREDIS_TARGETS += dynamic +else ifeq $(BR2_SHARED_STATIC_LIBS),y) +HIREDIS_TARGETS += dynamic static +endif + +define HIREDIS_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) $(HIREDIS_MAKE_OPTS) -C $(@D) \ + $(HIREDIS_TARGETS) +endef + +HIREDIS_INCLUDE_DIR = $(STAGING_DIR)/usr/include/hiredis + +# Do not call make install as this target will build shared and static libraries +define HIREDIS_INSTALL_STAGING_CMDS + mkdir -p $(HIREDIS_INCLUDE_DIR) + cp -dpfr $(@D)/hiredis.h $(@D)/async.h $(@D)/read.h $(@D)/sds.h \ + $(@D)/adapters $(HIREDIS_INCLUDE_DIR) + $(INSTALL) -D -m 0644 $(@D)/libhiredis* $(STAGING_DIR)/usr/lib + $(INSTALL) -D -m 0644 $(@D)/hiredis.pc $(STAGING_DIR)/usr/lib/pkgconfig +endef + +define HIREDIS_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0644 $(@D)/libhiredis* $(TARGET_DIR)/usr/lib +endef + +$(eval $(generic-package))
Minimalistic C client for Redis >= 1.2 It is minimalistic because it just adds minimal support for the protocol, but at the same time it uses a high level printf-alike API in order to make it much higher level than otherwise suggested by its minimal code base and the lack of explicit bindings for every Redis command. https://github.com/redis/hiredis Signed-off-by: Fabrice Fontaine <fabrice.fontaine@orange.com> --- Changes v2 -> v3 (after review of Romain Naour): - Add -D option to INSTALL instead of calling mkdir -p Changes v1 -> v2: - Do not use make install as it will always build static and shared version of the library (which will fail if BR2_STATIC_LIBS is set) package/Config.in | 1 + package/hiredis/Config.in | 12 ++++++++++++ package/hiredis/hiredis.hash | 2 ++ package/hiredis/hiredis.mk | 46 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 61 insertions(+) create mode 100644 package/hiredis/Config.in create mode 100644 package/hiredis/hiredis.hash create mode 100644 package/hiredis/hiredis.mk