aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--GIDs1
-rw-r--r--UIDs1
-rw-r--r--devel/gearmand/Makefile100
-rw-r--r--devel/gearmand/distinfo4
-rw-r--r--devel/gearmand/files/gearmand.in49
-rw-r--r--devel/gearmand/files/patch-configure24
-rw-r--r--devel/gearmand/files/patch-libgearman-server__plugins__queue__redis__queue.cc17
-rw-r--r--devel/gearmand/files/patch-libgearman-server__server.cc10
-rw-r--r--devel/gearmand/pkg-plist6
-rw-r--r--devel/p5-Gearman-Server/Makefile2
-rw-r--r--devel/p5-Gearman-XS/Makefile3
11 files changed, 169 insertions, 48 deletions
diff --git a/GIDs b/GIDs
index 81f10484002c..c1ffc816607a 100644
--- a/GIDs
+++ b/GIDs
@@ -240,5 +240,6 @@ razorback:*:957:
gnunet:*:958:
c_icap:*:959:
trytond:*:960:
+gearmand:*:961:
nogroup:*:65533:
nobody:*:65534:
diff --git a/UIDs b/UIDs
index 7923ba63b760..9d61901b95b7 100644
--- a/UIDs
+++ b/UIDs
@@ -244,4 +244,5 @@ razorback:*:957:957::0:0:Razorback user:/var/run/razorback:/usr/sbin/nologin
gnunet:*:958:958::0:0:GNUnet daemon:/var/lib/gnunet:/usr/sbin/nologin
c_icap:*:959:959::0:0:c-icap daemon:/var/empty:/usr/sbin/nologin
trytond:*:960:960::0:0:trytond daemon:/var/empty:/usr/sbin/nologin
+gearmand:*:961:961::0:0:gearmand daemon:/var/empty:/usr/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/usr/sbin/nologin
diff --git a/devel/gearmand/Makefile b/devel/gearmand/Makefile
index 80a166af7661..9e4d91a6b03a 100644
--- a/devel/gearmand/Makefile
+++ b/devel/gearmand/Makefile
@@ -6,17 +6,30 @@
#
PORTNAME= gearmand
-PORTVERSION= 0.26
+PORTVERSION= 0.39
CATEGORIES= devel
-MASTER_SITES= http://launchpad.net/gearmand/trunk/${PORTVERSION}/+download/ \
- LOCAL/glarkin
+MASTER_SITES= http://launchpad.net/gearmand/1.0/${PORTVERSION}/+download/
MAINTAINER= glarkin@FreeBSD.org
COMMENT= Gearman C Server and Library
BUILD_DEPENDS= boost-libs>=0:${PORTSDIR}/devel/boost-libs
LIB_DEPENDS= event:${PORTSDIR}/devel/libevent \
- uuid:${PORTSDIR}/misc/e2fsprogs-libuuid
+ uuid:${PORTSDIR}/misc/e2fsprogs-libuuid \
+ execinfo:${PORTSDIR}/devel/libexecinfo
+
+CONFLICTS= p5-Gearman-Server-1.*
+
+.if defined(MAINTAINER_MODE) && ${MAINTAINER_MODE:Myes}
+UID_FILES= ../../UIDs
+GID_FILES= ../../GIDs
+.if !exists(${UID_FILES}) || !exists(${GID_FILES})
+.error ${UID_FILES} or ${GID_FILES} does not exist - please check
+.endif
+.endif
+
+USERS= gearmand
+GROUPS= gearmand
FETCH_ARGS= -pRr
USE_PERL5_BUILD=yes
@@ -25,14 +38,22 @@ USE_GMAKE= yes
USE_GNOME= gnomehack
USE_LDCONFIG= yes
USE_RC_SUBR= gearmand
-CONFIGURE_ARGS+=--with-lib-prefix=${LOCALBASE} --with-boost=${LOCALBASE}
+SUB_LIST+= USERS=${USERS} GROUPS=${GROUPS}
+
+CONFIGURE_ARGS+=--with-lib-prefix=${LOCALBASE} --with-boost=${LOCALBASE} \
+ --localstatedir=/var/db/${PORTNAME} --enable-static
+LDFLAGS+= -lexecinfo
-OPTIONS= DRIZZLE "Enable Drizzle support for persistent queue" off \
- MEMCACHED "Enable memcached support for persistent queue" off \
- PGSQL "Enable PostgreSQL support for persistent queue" off \
- SQLITE "Enable SQLite support for persistent queue" on \
- REDIS "Enable Redis support for persistent queue" off \
- TOKYOCAB "Enable Tokyo Cabinet support for persistent queue" off
+OPTIONS_DEFINE= DRIZZLE MEMCACHED PGSQL SQLITE MYSQL HIREDIS TOKYOCAB
+OPTIONS_DEFAULT=SQLITE
+
+DRIZZLE_DESC= Enable Drizzle support for persistent queue
+MEMCACHED_DESC= Enable memcached support for persistent queue
+MYSQL_DESC= Enable MySQL support for persistent queue
+PGSQL_DESC= Enable PostgreSQL support for persistent queue
+SQLITE_DESC= Enable SQLite support for persistent queue
+HIREDIS_DESC= Enable Hiredis support for persistent queue
+TOKYOCAB_DESC= Enable Tokyo Cabinet support for persistent queue
MAN1= gearadmin.1 \
gearman.1
@@ -189,7 +210,7 @@ MAN3= gearman_actions_t.3 \
libgearman.3
MAN8= gearmand.8
-.include <bsd.port.pre.mk>
+.include <bsd.port.options.mk>
# Workaround for missing sigignore that wasn't introduced until
# FreeBSD 8.0
@@ -197,37 +218,48 @@ MAN8= gearmand.8
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-libtest__test.cc
.endif
+.if ${PORT_OPTIONS:MDRIZZLE}
+LIB_DEPENDS+= drizzle:${PORTSDIR}/databases/libdrizzle
+CONFIGURE_ARGS+= --enable-libdrizzle
+.else
+CONFIGURE_ARGS+= --disable-libdrizzle
+.endif
+
+.if ${PORT_OPTIONS:MMEMCACHED}
+LIB_DEPENDS+= memcached:${PORTSDIR}/databases/libmemcached
+BUILD_DEPENDS+= memcached>=0:${PORTSDIR}/databases/memcached
+CONFIGURE_ARGS+= --enable-libmemcached
# This hack is required for the test programs invoked by configure,
# in the event that libmemcached was compiled with SASL support.
.if exists(${LOCALBASE}/lib/libsasl.so)
-LDFLAGS+= -L${LOCALBASE}/lib -lsasl
+LDFLAGS+= -L${LOCALBASE}/lib -lsasl
+CONFIGURE_ARGS+= --with-memcached-sasl=${LOCALBASE}/bin/memcached
.elif exists(${LOCALBASE}/lib/libsasl2.a)
-LDFLAGS+= -L${LOCALBASE}/lib -lsasl2
+LDFLAGS+= -L${LOCALBASE}/lib -lsasl2
+CONFIGURE_ARGS+= --with-memcached-sasl=${LOCALBASE}/bin/memcached
.else
-LDFLAGS+= -L${LOCALBASE}/lib
+LDFLAGS+= -L${LOCALBASE}/lib
+CONFIGURE_ARGS+= --with-memcached=${LOCALBASE}/bin/memcached
.endif
-
-.ifdef(WITH_DRIZZLE)
-LIB_DEPENDS+= drizzle:${PORTSDIR}/databases/libdrizzle
.else
-CONFIGURE_ARGS+= --disable-libdrizzle
+CONFIGURE_ARGS+= --disable-libmemcached
.endif
-.ifdef(WITH_MEMCACHED)
-LIB_DEPENDS+= memcached:${PORTSDIR}/databases/libmemcached
-BUILD_DEPENDS+= memcached>=0:${PORTSDIR}/databases/memcached
-CONFIGURE_ARGS+= --enable-libmemcached --with-memcached=${LOCALBASE}/bin
+.if ${PORT_OPTIONS:MMYSQL}
+USE_MYSQL= yes
+CONFIGURE_ARGS+= --with-mysql=yes
.else
-CONFIGURE_ARGS+= --disable-libmemcached
+CONFIGURE_ARGS+= --with-mysql=no
.endif
-.ifdef(WITH_PGSQL)
+.if ${PORT_OPTIONS:MPGSQL}
USE_PGSQL= yes
+CONFIGURE_ARGS+= --enable-libpq
.else
CONFIGURE_ARGS+= --disable-libpq
.endif
-.ifdef(WITH_SQLITE)
+.if ${PORT_OPTIONS:MSQLITE}
BUILD_DEPENDS+= sqlite3>=3.0.0:${PORTSDIR}/databases/sqlite3
LIB_DEPENDS+= sqlite3:${PORTSDIR}/databases/sqlite3
CONFIGURE_ARGS+= --with-sqlite3=${LOCALBASE}
@@ -235,18 +267,22 @@ CONFIGURE_ARGS+= --with-sqlite3=${LOCALBASE}
CONFIGURE_ARGS+= --without-sqlite3
.endif
-.ifdef(WITH_TOKYOCAB)
+.if ${PORT_OPTIONS:MTOKYOCAB}
LIB_DEPENDS+= tokyocabinet:${PORTSDIR}/databases/tokyocabinet
-CONFIGURE_ARGS+= --with-libtokyocabinet-prefix=${LOCALBASE}
+CONFIGURE_ARGS+= --enable-libtokyocabinet
+CONFIGURE_ENV+= LIBTOKYOCABINET_CPPFLAGS=-I${LOCALBASE}/include \
+ LIBTOKYOCABINET_LDFLAGS=-L${LOCALBASE}/lib
.else
CONFIGURE_ARGS+= --disable-libtokyocabinet
.endif
-.ifdef(WITH_REDIS)
+.if ${PORT_OPTIONS:MHIREDIS}
LIB_DEPENDS+= hiredis:${PORTSDIR}/databases/hiredis
-CONFIGURE_ARGS+= --with-libhiredis-prefix=${LOCALBASE}
+CONFIGURE_ARGS+= --enable-hires
+CONFIGURE_ENV+= LIBHIREDIS_CPPFLAGS=-I${LOCALBASE}/include/hiredis \
+ LIBHIREDIS_LDFLAGS=-L${LOCALBASE}/lib
.else
-CONFIGURE_ARGS+= --without-libhiredis-prefix
+CONFIGURE_ARGS+= --disable-hires
.endif
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/devel/gearmand/distinfo b/devel/gearmand/distinfo
index 97428901f748..cc0ab4189baa 100644
--- a/devel/gearmand/distinfo
+++ b/devel/gearmand/distinfo
@@ -1,2 +1,2 @@
-SHA256 (gearmand-0.26.tar.gz) = 79ae2233bafe8f092ebf4157f83c2e0535a1fe1765da04cb01f34bcdf520dd33
-SIZE (gearmand-0.26.tar.gz) = 773491
+SHA256 (gearmand-0.39.tar.gz) = 7eaa4050bdd3e7801d0af047926314dbc6270f8fa6723aca72a7226f341507ec
+SIZE (gearmand-0.39.tar.gz) = 841815
diff --git a/devel/gearmand/files/gearmand.in b/devel/gearmand/files/gearmand.in
index e313c2e435b9..a9c4b3f18391 100644
--- a/devel/gearmand/files/gearmand.in
+++ b/devel/gearmand/files/gearmand.in
@@ -4,19 +4,50 @@
#
# PROVIDE: gearmand
-# REQUIRE: DAEMON
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# gearmand_enable (bool): Set to NO by default.
+# Set it to YES to enable gearmand.
+# gearmand_log_level (value): Set to WARNING by default. Other options are:
+# FATAL, ALERT, CRITICAL, ERROR, WARNING,
+# NOTICE, INFO, and DEBUG
+# gearmand_flags (value): Include other command-line arguments with
+# this variable.
+# gearmand_user (value): Set to %%USERS%% by default.
+# gearmand_group (value): Set to %%GROUPS%% by default.
. /etc/rc.subr
-name="gearmand"
+name=gearmand
rcvar=gearmand_enable
-command="%%PREFIX%%/sbin/gearmand"
-load_rc_config "$name"
-: ${gearmand_enable="NO"}
-: ${gearmand_flags="-d -v"}
-: ${gearmand_group="daemon"}
-: ${gearmand_user="daemon"}
+load_rc_config $name
-run_rc_command "$1"
+gearmand_prestart()
+{
+ install -d -o ${gearmand_user} -g ${gearmand_group} -m 755 ${_piddir}
+ install -d -o ${gearmand_user} -g ${gearmand_group} -m 755 ${_logdir}
+ install -d -o ${gearmand_user} -g ${gearmand_group} -m 755 ${_statedir}
+}
+
+: ${gearmand_enable:="NO"}
+: ${gearmand_log_level="WARNING"}
+: ${gearmand_user="%%USERS%%"}
+: ${gearmand_group="%%GROUPS%%"}
+command=%%PREFIX%%/sbin/${name}
+_piddir=/var/run/${name}
+pidfile=${_piddir}/${name}.pid
+_logdir=/var/log/${name}
+logfile=${_logdir}/${name}.log
+_statedir=/var/db/${name}
+
+command_args="-d --verbose ${gearmand_log_level} -l ${logfile} -P ${pidfile}"
+
+start_precmd="${name}_prestart"
+
+run_rc_command "$1"
diff --git a/devel/gearmand/files/patch-configure b/devel/gearmand/files/patch-configure
index aa9346858605..7726943bf383 100644
--- a/devel/gearmand/files/patch-configure
+++ b/devel/gearmand/files/patch-configure
@@ -1,6 +1,24 @@
---- ./configure.orig 2012-01-16 15:07:46.000000000 -0500
-+++ ./configure 2012-01-16 15:08:21.000000000 -0500
-@@ -23441,6 +23441,7 @@
+--- ./configure.orig 2012-10-03 15:37:17.000000000 -0400
++++ ./configure 2012-10-03 15:37:17.000000000 -0400
+@@ -19021,7 +19021,7 @@
+
+ else
+
+- if test x"" == x; then :
++ if test x"" = x; then :
+
+ CURL_CFLAGS="`$CURL_CONFIG $curl_config_args --cflags`"
+
+@@ -19031,7 +19031,7 @@
+
+ fi
+
+- if test x"" == x; then :
++ if test x"" = x; then :
+
+ CURL_LIBS="`$CURL_CONFIG $curl_config_args --libs`"
+
+@@ -19842,6 +19842,7 @@
| sed -e 's/"//'`
if test $ac_sqlite3_version != ""; then
SQLITE3_VERSION=$ac_sqlite3_version
diff --git a/devel/gearmand/files/patch-libgearman-server__plugins__queue__redis__queue.cc b/devel/gearmand/files/patch-libgearman-server__plugins__queue__redis__queue.cc
new file mode 100644
index 000000000000..6e75cc04c551
--- /dev/null
+++ b/devel/gearmand/files/patch-libgearman-server__plugins__queue__redis__queue.cc
@@ -0,0 +1,17 @@
+--- ./libgearman-server/plugins/queue/redis/queue.cc.orig 2012-10-03 15:55:58.000000000 -0400
++++ ./libgearman-server/plugins/queue/redis/queue.cc 2012-10-03 15:56:31.000000000 -0400
+@@ -269,14 +269,11 @@
+ assert(fmt_str_length != 1);
+ return gearmand_gerror("snprintf() failed to produce a valud fmt_str for redis key", GEARMAN_QUEUE_ERROR);
+ }
+-#pragma GCC diagnostic push
+-#pragma GCC diagnostic ignored "-Wformat-nonliteral"
+ int ret= sscanf(reply->element[x]->str,
+ fmt_str,
+ prefix,
+ function_name,
+ unique);
+-#pragma GCC diagnostic pop
+ if (ret == 0)
+ {
+ continue;
diff --git a/devel/gearmand/files/patch-libgearman-server__server.cc b/devel/gearmand/files/patch-libgearman-server__server.cc
new file mode 100644
index 000000000000..b395681b39d8
--- /dev/null
+++ b/devel/gearmand/files/patch-libgearman-server__server.cc
@@ -0,0 +1,10 @@
+--- ./libgearman-server/server.cc.orig 2012-09-19 22:42:05.000000000 -0400
++++ ./libgearman-server/server.cc 2012-10-03 15:37:17.000000000 -0400
+@@ -46,7 +46,6 @@
+ #include <libgearman-server/queue.h>
+
+ #include <errno.h>
+-#include <iso646.h>
+ #include <limits.h>
+ #include <stdlib.h>
+ #include <string.h>
diff --git a/devel/gearmand/pkg-plist b/devel/gearmand/pkg-plist
index 38a03189ecb2..3b070feaf7f3 100644
--- a/devel/gearmand/pkg-plist
+++ b/devel/gearmand/pkg-plist
@@ -13,6 +13,8 @@ include/libgearman-1.0/core.h
include/libgearman-1.0/execute.h
include/libgearman-1.0/function.h
include/libgearman-1.0/gearman.h
+include/libgearman-1.0/interface/status.h
+include/libgearman-1.0/interface/task.h
include/libgearman-1.0/job.h
include/libgearman-1.0/job_handle.h
include/libgearman-1.0/kill.h
@@ -25,6 +27,7 @@ include/libgearman-1.0/protocol.h
include/libgearman-1.0/result.h
include/libgearman-1.0/return.h
include/libgearman-1.0/signal.h
+include/libgearman-1.0/status.h
include/libgearman-1.0/strerror.h
include/libgearman-1.0/string.h
include/libgearman-1.0/task.h
@@ -38,8 +41,9 @@ include/libgearman/gearman.h
lib/libgearman.a
lib/libgearman.la
lib/libgearman.so
-lib/libgearman.so.6
+lib/libgearman.so.7
libdata/pkgconfig/gearmand.pc
sbin/gearmand
+@dirrm include/libgearman-1.0/interface
@dirrm include/libgearman-1.0
@dirrm include/libgearman
diff --git a/devel/p5-Gearman-Server/Makefile b/devel/p5-Gearman-Server/Makefile
index 4b1cd8c54476..652da65179d6 100644
--- a/devel/p5-Gearman-Server/Makefile
+++ b/devel/p5-Gearman-Server/Makefile
@@ -19,6 +19,8 @@ COMMENT= Gearman server daemon
RUN_DEPENDS= p5-Gearman>=1.10:${PORTSDIR}/devel/p5-Gearman \
p5-Danga-Socket>=1.52:${PORTSDIR}/devel/p5-Danga-Socket
+CONFLICTS= gearmand-0.*
+
PERL_CONFIGURE= yes
MAN1= gearmand.1
diff --git a/devel/p5-Gearman-XS/Makefile b/devel/p5-Gearman-XS/Makefile
index 1fa02fdd1733..e516c51ed5a6 100644
--- a/devel/p5-Gearman-XS/Makefile
+++ b/devel/p5-Gearman-XS/Makefile
@@ -7,6 +7,7 @@
PORTNAME= Gearman-XS
PORTVERSION= 0.12
+PORTREVISION= 1
CATEGORIES= devel perl5
MASTER_SITES= CPAN
MASTER_SITE_SUBDIR= CPAN:DSCHOEN
@@ -15,7 +16,7 @@ PKGNAMEPREFIX= p5-
MAINTAINER= otaviof@gmail.com
COMMENT= Perl front end for the Gearman C library
-LIB_DEPENDS= gearman.6:${PORTSDIR}/devel/gearmand
+LIB_DEPENDS= gearman:${PORTSDIR}/devel/gearmand
CFLAGS+= -I${LOCALBASE}/include