aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorglarkin <glarkin@FreeBSD.org>2013-07-18 03:27:53 +0800
committerglarkin <glarkin@FreeBSD.org>2013-07-18 03:27:53 +0800
commit16d861cdc6cb87ae879a5625ebaa4b21aad2703b (patch)
tree10af22a5258fec74507b19ef43678971506e3554
parent2d0085d807fb5456b458081a58d3e6f88c2c0430 (diff)
downloadfreebsd-ports-gnome-16d861cdc6cb87ae879a5625ebaa4b21aad2703b.tar.gz
freebsd-ports-gnome-16d861cdc6cb87ae879a5625ebaa4b21aad2703b.tar.zst
freebsd-ports-gnome-16d861cdc6cb87ae879a5625ebaa4b21aad2703b.zip
Gearman provides a generic framework to farm out work to other
machines or dispatch function calls to machines that are better suited to do the work. It allows you to do work in parallel, to load balance processing, and to call functions between languages. It can be used in a variety of applications, from high-availability web sites to the transport for database replication. WWW: http://www.gearman.org/
-rw-r--r--devel/Makefile1
-rw-r--r--devel/gearmand-devel/Makefile289
-rw-r--r--devel/gearmand-devel/distinfo2
-rw-r--r--devel/gearmand-devel/files/gearmand.in53
-rw-r--r--devel/gearmand-devel/files/patch-configure40
-rw-r--r--devel/gearmand-devel/files/patch-libgearman-server__log.cc11
-rw-r--r--devel/gearmand-devel/files/patch-libtest__lite.h11
-rw-r--r--devel/gearmand-devel/pkg-descr8
-rw-r--r--devel/gearmand-devel/pkg-plist50
9 files changed, 465 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile
index 7d61a952e847..c10da978d0aa 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -534,6 +534,7 @@
SUBDIR += geany-plugins
SUBDIR += geany-plugins-l10n
SUBDIR += gearmand
+ SUBDIR += gearmand-devel
SUBDIR += gecode
SUBDIR += generate
SUBDIR += generatorrunner
diff --git a/devel/gearmand-devel/Makefile b/devel/gearmand-devel/Makefile
new file mode 100644
index 000000000000..075a16807e46
--- /dev/null
+++ b/devel/gearmand-devel/Makefile
@@ -0,0 +1,289 @@
+# Created by: Gea-Suan Lin <gslin@gslin.org>
+# $FreeBSD$
+
+PORTNAME= gearmand
+PORTVERSION= 1.1.8
+CATEGORIES= devel
+MASTER_SITES= http://launchpad.net/gearmand/1.2/${PORTVERSION}/+download/
+
+MAINTAINER= glarkin@FreeBSD.org
+COMMENT= Gearman C Server and Library
+
+BUILD_DEPENDS= boost-libs>=0:${PORTSDIR}/devel/boost-libs \
+ libexecinfo>=0:${PORTSDIR}/devel/libexecinfo \
+ ${PYTHON_PKGNAMEPREFIX}sphinx>=0:${PORTSDIR}/textproc/py-sphinx
+LIB_DEPENDS= event:${PORTSDIR}/devel/libevent \
+ uuid:${PORTSDIR}/misc/e2fsprogs-libuuid \
+ execinfo:${PORTSDIR}/devel/libexecinfo
+
+CONFLICTS= p5-Gearman-Server-1.* gearmand-1.0.*
+
+.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
+GNU_CONFIGURE= yes
+USE_GMAKE= yes
+USES= pathfix
+USE_LDCONFIG= yes
+USE_PYTHON_BUILD=yes
+USE_RC_SUBR= gearmand
+SUB_LIST+= USERS=${USERS} GROUPS=${GROUPS}
+
+CONFIGURE_ARGS+=--with-lib-prefix=${LOCALBASE} --with-boost=${LOCALBASE} \
+ --localstatedir=/var/db/${PORTNAME} --enable-static
+CPPFLAGS+= -I${LOCALBASE}/include
+LDFLAGS+= -L${LOCALBASE}/lib -lexecinfo
+
+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
+MAN3= gearman_actions_t.3 \
+ gearman_allocator_t.3 \
+ gearman_argument_make.3 \
+ gearman_argument_t.3 \
+ gearman_bugreport.3 \
+ gearman_client_add_options.3 \
+ gearman_client_add_server.3 \
+ gearman_client_add_servers.3 \
+ gearman_client_add_task.3 \
+ gearman_client_add_task_background.3 \
+ gearman_client_add_task_high.3 \
+ gearman_client_add_task_high_background.3 \
+ gearman_client_add_task_low.3 \
+ gearman_client_add_task_low_background.3 \
+ gearman_client_add_task_status.3 \
+ gearman_client_clear_fn.3 \
+ gearman_client_clone.3 \
+ gearman_client_context.3 \
+ gearman_client_create.3 \
+ gearman_client_do.3 \
+ gearman_client_do_background.3 \
+ gearman_client_do_high.3 \
+ gearman_client_do_high_background.3 \
+ gearman_client_do_job_handle.3 \
+ gearman_client_do_low.3 \
+ gearman_client_do_low_background.3 \
+ gearman_client_do_status.3 \
+ gearman_client_echo.3 \
+ gearman_client_errno.3 \
+ gearman_client_error.3 \
+ gearman_client_free.3 \
+ gearman_client_has_option.3 \
+ gearman_client_job_status.3 \
+ gearman_client_options.3 \
+ gearman_client_options_t.3 \
+ gearman_client_remove_options.3 \
+ gearman_client_remove_servers.3 \
+ gearman_client_run_tasks.3 \
+ gearman_client_set_complete_fn.3 \
+ gearman_client_set_context.3 \
+ gearman_client_set_created_fn.3 \
+ gearman_client_set_data_fn.3 \
+ gearman_client_set_exception_fn.3 \
+ gearman_client_set_fail_fn.3 \
+ gearman_client_set_log_fn.3 \
+ gearman_client_set_memory_allocators.3 \
+ gearman_client_set_namespace.3 \
+ gearman_client_set_options.3 \
+ gearman_client_set_status_fn.3 \
+ gearman_client_set_task_context_free_fn.3 \
+ gearman_client_set_timeout.3 \
+ gearman_client_set_warning_fn.3 \
+ gearman_client_set_workload_fn.3 \
+ gearman_client_set_workload_free_fn.3 \
+ gearman_client_set_workload_malloc_fn.3 \
+ gearman_client_st.3 \
+ gearman_client_task_free_all.3 \
+ gearman_client_timeout.3 \
+ gearman_client_wait.3 \
+ gearman_continue.3 \
+ gearman_execute.3 \
+ gearman_failed.3 \
+ gearman_job_free.3 \
+ gearman_job_free_all.3 \
+ gearman_job_function_name.3 \
+ gearman_job_handle.3 \
+ gearman_job_handle_t.3 \
+ gearman_job_send_complete.3 \
+ gearman_job_send_data.3 \
+ gearman_job_send_exception.3 \
+ gearman_job_send_fail.3 \
+ gearman_job_send_status.3 \
+ gearman_job_send_warning.3 \
+ gearman_job_st.3 \
+ gearman_job_take_workload.3 \
+ gearman_job_unique.3 \
+ gearman_job_workload.3 \
+ gearman_job_workload_size.3 \
+ gearman_log_fn.3 \
+ gearman_parse_servers.3 \
+ gearman_result_boolean.3 \
+ gearman_result_integer.3 \
+ gearman_result_is_null.3 \
+ gearman_result_size.3 \
+ gearman_result_store_integer.3 \
+ gearman_result_store_string.3 \
+ gearman_result_store_value.3 \
+ gearman_result_string.3 \
+ gearman_return_t.3 \
+ gearman_strerror.3 \
+ gearman_string_t.3 \
+ gearman_success.3 \
+ gearman_task_attr_init.3 \
+ gearman_task_attr_init_background.3 \
+ gearman_task_attr_init_epoch.3 \
+ gearman_task_attr_t.3 \
+ gearman_task_context.3 \
+ gearman_task_data.3 \
+ gearman_task_data_size.3 \
+ gearman_task_denominator.3 \
+ gearman_task_error.3 \
+ gearman_task_free.3 \
+ gearman_task_function_name.3 \
+ gearman_task_give_workload.3 \
+ gearman_task_is_known.3 \
+ gearman_task_is_running.3 \
+ gearman_task_job_handle.3 \
+ gearman_task_numerator.3 \
+ gearman_task_recv_data.3 \
+ gearman_task_return.3 \
+ gearman_task_send_workload.3 \
+ gearman_task_set_context.3 \
+ gearman_task_st.3 \
+ gearman_task_take_data.3 \
+ gearman_task_unique.3 \
+ gearman_verbose_name.3 \
+ gearman_verbose_t.3 \
+ gearman_version.3 \
+ gearman_worker_add_function.3 \
+ gearman_worker_add_options.3 \
+ gearman_worker_add_server.3 \
+ gearman_worker_add_servers.3 \
+ gearman_worker_clone.3 \
+ gearman_worker_context.3 \
+ gearman_worker_create.3 \
+ gearman_worker_define_function.3 \
+ gearman_worker_echo.3 \
+ gearman_worker_errno.3 \
+ gearman_worker_error.3 \
+ gearman_worker_free.3 \
+ gearman_worker_function_exist.3 \
+ gearman_worker_grab_job.3 \
+ gearman_worker_options.3 \
+ gearman_worker_register.3 \
+ gearman_worker_remove_options.3 \
+ gearman_worker_remove_servers.3 \
+ gearman_worker_set_context.3 \
+ gearman_worker_set_identifier.3 \
+ gearman_worker_set_log_fn.3 \
+ gearman_worker_set_memory_allocators.3 \
+ gearman_worker_set_namespace.3 \
+ gearman_worker_set_options.3 \
+ gearman_worker_set_timeout.3 \
+ gearman_worker_set_workload_free_fn.3 \
+ gearman_worker_set_workload_malloc_fn.3 \
+ gearman_worker_st.3 \
+ gearman_worker_timeout.3 \
+ gearman_worker_unregister.3 \
+ gearman_worker_unregister_all.3 \
+ gearman_worker_wait.3 \
+ gearman_worker_work.3 \
+ libgearman.3
+MAN8= gearmand.8
+
+.include <bsd.port.options.mk>
+
+# Workaround for missing sigignore that wasn't introduced until
+# FreeBSD 8.0
+.if ${OSVERSION} < 800041
+BROKEN= Does not compile without POSIX spawn() support
+.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
+CONFIGURE_ARGS+= --with-memcached-sasl=${LOCALBASE}/bin/memcached
+.elif exists(${LOCALBASE}/lib/libsasl2.a)
+LDFLAGS+= -L${LOCALBASE}/lib -lsasl2
+CONFIGURE_ARGS+= --with-memcached-sasl=${LOCALBASE}/bin/memcached
+.else
+LDFLAGS+= -L${LOCALBASE}/lib
+CONFIGURE_ARGS+= --with-memcached=${LOCALBASE}/bin/memcached
+.endif
+.else
+CONFIGURE_ARGS+= --disable-libmemcached
+.endif
+
+.if ${PORT_OPTIONS:MMYSQL}
+USE_MYSQL= yes
+CONFIGURE_ARGS+= --with-mysql=yes
+.else
+CONFIGURE_ARGS+= --with-mysql=no
+.endif
+
+.if ${PORT_OPTIONS:MPGSQL}
+USE_PGSQL= yes
+CONFIGURE_ARGS+= --enable-libpq
+.else
+CONFIGURE_ARGS+= --disable-libpq
+.endif
+
+.if ${PORT_OPTIONS:MSQLITE}
+BUILD_DEPENDS+= sqlite3>=3.0.0:${PORTSDIR}/databases/sqlite3
+LIB_DEPENDS+= sqlite3:${PORTSDIR}/databases/sqlite3
+CONFIGURE_ARGS+= --with-sqlite3=${LOCALBASE}
+.else
+CONFIGURE_ARGS+= --without-sqlite3
+.endif
+
+.if ${PORT_OPTIONS:MTOKYOCAB}
+LIB_DEPENDS+= tokyocabinet:${PORTSDIR}/databases/tokyocabinet
+CONFIGURE_ARGS+= --enable-libtokyocabinet
+CONFIGURE_ENV+= LIBTOKYOCABINET_CPPFLAGS=-I${LOCALBASE}/include \
+ LIBTOKYOCABINET_LDFLAGS=-L${LOCALBASE}/lib
+.else
+CONFIGURE_ARGS+= --disable-libtokyocabinet
+.endif
+
+.if ${PORT_OPTIONS:MHIREDIS}
+LIB_DEPENDS+= hiredis:${PORTSDIR}/databases/hiredis
+CONFIGURE_ARGS+= --enable-hires
+CONFIGURE_ENV+= LIBHIREDIS_CPPFLAGS=-I${LOCALBASE}/include/hiredis \
+ LIBHIREDIS_LDFLAGS=-L${LOCALBASE}/lib
+.else
+CONFIGURE_ARGS+= --disable-hires
+.endif
+
+.include <bsd.port.mk>
diff --git a/devel/gearmand-devel/distinfo b/devel/gearmand-devel/distinfo
new file mode 100644
index 000000000000..65648834f6e2
--- /dev/null
+++ b/devel/gearmand-devel/distinfo
@@ -0,0 +1,2 @@
+SHA256 (gearmand-1.1.8.tar.gz) = 6967cbf5a2002cfe02bcf19cf28e3da6c297236b9e17a8423b96c1a107c911ef
+SIZE (gearmand-1.1.8.tar.gz) = 966354
diff --git a/devel/gearmand-devel/files/gearmand.in b/devel/gearmand-devel/files/gearmand.in
new file mode 100644
index 000000000000..a9c4b3f18391
--- /dev/null
+++ b/devel/gearmand-devel/files/gearmand.in
@@ -0,0 +1,53 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: gearmand
+# 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
+rcvar=gearmand_enable
+
+load_rc_config $name
+
+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-devel/files/patch-configure b/devel/gearmand-devel/files/patch-configure
new file mode 100644
index 000000000000..49219c48fe3f
--- /dev/null
+++ b/devel/gearmand-devel/files/patch-configure
@@ -0,0 +1,40 @@
+--- ./configure.orig 2013-06-06 19:06:29.000000000 -0400
++++ ./configure 2013-07-17 14:33:54.000000000 -0400
+@@ -17976,7 +17976,7 @@
+ done
+ test -n "$CURL_CONFIG" || CURL_CONFIG="no"
+
+- if test "$CURL_CONFIG" == "no"; then :
++ if test "$CURL_CONFIG" = "no"; then :
+
+ :
+
+@@ -17986,7 +17986,7 @@
+
+ else
+
+- if test x"" == x; then :
++ if test x"" = x; then :
+
+ CURL_CFLAGS="`$CURL_CONFIG $curl_config_args --cflags`"
+
+@@ -17996,7 +17996,7 @@
+
+ fi
+
+- if test x"" == x; then :
++ if test x"" = x; then :
+
+ CURL_LIBS="`$CURL_CONFIG $curl_config_args --libs`"
+
+@@ -23954,8 +23954,8 @@
+ LIBS="$PTHREAD_LIBS"
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS -Werror conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS -Werror $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
diff --git a/devel/gearmand-devel/files/patch-libgearman-server__log.cc b/devel/gearmand-devel/files/patch-libgearman-server__log.cc
new file mode 100644
index 000000000000..0846700dbe28
--- /dev/null
+++ b/devel/gearmand-devel/files/patch-libgearman-server__log.cc
@@ -0,0 +1,11 @@
+--- ./libgearman-server/log.cc.orig 2013-06-05 15:55:41.000000000 -0400
++++ ./libgearman-server/log.cc 2013-07-17 14:33:54.000000000 -0400
+@@ -56,6 +56,8 @@
+
+ #ifdef _WIN32
+ # include <malloc.h>
++#elif defined(__FreeBSD__)
++# include <stdlib.h>
+ #else
+ # include <alloca.h>
+ #endif
diff --git a/devel/gearmand-devel/files/patch-libtest__lite.h b/devel/gearmand-devel/files/patch-libtest__lite.h
new file mode 100644
index 000000000000..00fbdce7edde
--- /dev/null
+++ b/devel/gearmand-devel/files/patch-libtest__lite.h
@@ -0,0 +1,11 @@
+--- ./libtest/lite.h.orig 2013-07-17 14:36:43.000000000 -0400
++++ ./libtest/lite.h 2013-07-17 14:37:02.000000000 -0400
+@@ -53,6 +53,8 @@
+
+ #if defined(WIN32)
+ # include <malloc.h>
++#elif defined(__FreeBSD__)
++# include <stdlib.h>
+ #else
+ # include <alloca.h>
+ #endif
diff --git a/devel/gearmand-devel/pkg-descr b/devel/gearmand-devel/pkg-descr
new file mode 100644
index 000000000000..b06b0524b611
--- /dev/null
+++ b/devel/gearmand-devel/pkg-descr
@@ -0,0 +1,8 @@
+Gearman provides a generic framework to farm out work to other
+machines or dispatch function calls to machines that are better suited
+to do the work. It allows you to do work in parallel, to load balance
+processing, and to call functions between languages. It can be used in
+a variety of applications, from high-availability web sites to the
+transport for database replication.
+
+WWW: http://www.gearman.org/
diff --git a/devel/gearmand-devel/pkg-plist b/devel/gearmand-devel/pkg-plist
new file mode 100644
index 000000000000..2761df95af88
--- /dev/null
+++ b/devel/gearmand-devel/pkg-plist
@@ -0,0 +1,50 @@
+bin/gearadmin
+bin/gearman
+include/libgearman-1.0/actions.h
+include/libgearman-1.0/aggregator.h
+include/libgearman-1.0/allocator.h
+include/libgearman-1.0/argument.h
+include/libgearman-1.0/cancel.h
+include/libgearman-1.0/client.h
+include/libgearman-1.0/client_callbacks.h
+include/libgearman-1.0/configure.h
+include/libgearman-1.0/connection.h
+include/libgearman-1.0/constants.h
+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/client.h
+include/libgearman-1.0/interface/status.h
+include/libgearman-1.0/interface/task.h
+include/libgearman-1.0/interface/worker.h
+include/libgearman-1.0/job.h
+include/libgearman-1.0/job_handle.h
+include/libgearman-1.0/kill.h
+include/libgearman-1.0/limits.h
+include/libgearman-1.0/ostream.hpp
+include/libgearman-1.0/parse.h
+include/libgearman-1.0/priority.h
+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
+include/libgearman-1.0/task_attr.h
+include/libgearman-1.0/util.h
+include/libgearman-1.0/version.h
+include/libgearman-1.0/visibility.h
+include/libgearman-1.0/worker.h
+include/libgearman/gearman.h
+lib/libgearman.a
+lib/libgearman.la
+lib/libgearman.so
+lib/libgearman.so.8
+libdata/pkgconfig/gearmand.pc
+sbin/gearmand
+@dirrm include/libgearman-1.0/interface
+@dirrm include/libgearman-1.0
+@dirrm include/libgearman