Package init
This commit is contained in:
parent
61885d7a2a
commit
b2a496c16a
50
273.patch
Normal file
50
273.patch
Normal file
@ -0,0 +1,50 @@
|
||||
From d6507e52adcf851d8888b93f9905f0fad1052af2 Mon Sep 17 00:00:00 2001
|
||||
From: Robin Lee <cheeselee@fedoraproject.org>
|
||||
Date: Sun, 16 Feb 2020 02:37:42 +0800
|
||||
Subject: [PATCH] Fix crashing of tests when '-Wp,-D_GLIBCXX_ASSERTIONS' is
|
||||
given
|
||||
|
||||
If 'vec' is a vector, calling 'vec[0]' will crash the program if
|
||||
'vec' is empty and '-Wp,-D_GLIBCXX_ASSERTIONS' given in CXXFLAGS.
|
||||
|
||||
Fixes https://github.com/gearman/gearmand/issues/272
|
||||
---
|
||||
libtest/cmdline.h | 4 ++--
|
||||
tests/hostile.cc | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/libtest/cmdline.h b/libtest/cmdline.h
|
||||
index 692363f6..3503bada 100644
|
||||
--- a/libtest/cmdline.h
|
||||
+++ b/libtest/cmdline.h
|
||||
@@ -153,7 +153,7 @@ class Application {
|
||||
|
||||
const char* stdout_c_str() const
|
||||
{
|
||||
- return &_stdout_buffer[0];
|
||||
+ return _stdout_buffer.size() ? &_stdout_buffer[0] : NULL;
|
||||
}
|
||||
|
||||
libtest::vchar_t stderr_result() const
|
||||
@@ -163,7 +163,7 @@ class Application {
|
||||
|
||||
const char* stderr_c_str() const
|
||||
{
|
||||
- return &_stderr_buffer[0];
|
||||
+ return _stderr_buffer.size() ? &_stderr_buffer[0] : NULL;
|
||||
}
|
||||
|
||||
size_t stderr_result_length() const
|
||||
diff --git a/tests/hostile.cc b/tests/hostile.cc
|
||||
index c4c0487d..c7686206 100644
|
||||
--- a/tests/hostile.cc
|
||||
+++ b/tests/hostile.cc
|
||||
@@ -136,7 +136,7 @@ extern "C" {
|
||||
gearman_return_t rc;
|
||||
void *value= gearman_client_do(&client, WORKER_FUNCTION_NAME,
|
||||
NULL,
|
||||
- &payload[0],
|
||||
+ payload.size() ? &payload[0] : NULL,
|
||||
payload.size() ? random() % payload.size() : 0,
|
||||
NULL, &rc);
|
||||
|
||||
21
gearmand-1.1.12-ppc64le.patch
Normal file
21
gearmand-1.1.12-ppc64le.patch
Normal file
@ -0,0 +1,21 @@
|
||||
diff -up gearmand-1.1.12/configure.ppc64le gearmand-1.1.12/configure
|
||||
--- gearmand-1.1.12/configure.ppc64le 2014-09-09 17:12:22.368039057 +0200
|
||||
+++ gearmand-1.1.12/configure 2014-09-09 17:11:49.584039857 +0200
|
||||
@@ -16219,7 +16219,7 @@ $as_echo_n "checking for boostlib >= $bo
|
||||
libsubdirs="lib"
|
||||
ax_arch=`uname -m`
|
||||
case $ax_arch in
|
||||
- x86_64|ppc64|s390x|sparc64|aarch64)
|
||||
+ x86_64|ppc64*|s390x|sparc64|aarch64)
|
||||
libsubdirs="lib64 lib lib64"
|
||||
;;
|
||||
esac
|
||||
@@ -26051,7 +26051,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
|
||||
for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
|
||||
if test -n "$ac_prev"; then
|
||||
case $ac_word in
|
||||
- i?86 | x86_64 | ppc | ppc64)
|
||||
+ i?86 | x86_64 | ppc | ppc64*)
|
||||
if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
|
||||
ac_arch=$ac_word
|
||||
else
|
||||
BIN
gearmand-1.1.19.1.tar.gz
Normal file
BIN
gearmand-1.1.19.1.tar.gz
Normal file
Binary file not shown.
81
gearmand.init
Normal file
81
gearmand.init
Normal file
@ -0,0 +1,81 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# gearmand Startup script for the Gearman server
|
||||
#
|
||||
# chkconfig: - 85 15
|
||||
# description: Gearman is a distributed job system.
|
||||
# processname: gearmand
|
||||
# config: /etc/sysconfig/gearmand
|
||||
# pidfile: /var/run/gearmand/gearmand.pid
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: gearmand
|
||||
# Required-Start: $local_fs $network
|
||||
# Required-Stop: $local_fs $network
|
||||
# Default-Start:
|
||||
# Default-Stop:
|
||||
# Short-Description: start and stop the Gearman server
|
||||
# Description: Gearman is a distributed job system.
|
||||
### END INIT INFO
|
||||
|
||||
# Source function library.
|
||||
. /etc/rc.d/init.d/functions
|
||||
|
||||
if [ -f /etc/sysconfig/gearmand ]; then
|
||||
. /etc/sysconfig/gearmand
|
||||
fi
|
||||
|
||||
[ -z "${PIDFILE}" ] && pidfile="/var/run/gearmand/gearmand.pid"
|
||||
[ -z "${LOCKFILE}" ] && lockfile="/var/lock/subsys/gearmand"
|
||||
|
||||
gearmand=/usr/sbin/gearmand
|
||||
prog=gearmand
|
||||
|
||||
RETVAL=0
|
||||
|
||||
start() {
|
||||
echo -n $"Starting $prog: "
|
||||
daemon --pidfile=$pidfile --user=gearmand $gearmand -d $OPTIONS
|
||||
RETVAL=$?
|
||||
echo
|
||||
[ $RETVAL = 0 ] && (touch $lockfile; pgrep -f $gearmand > $pidfile)
|
||||
return $RETVAL
|
||||
}
|
||||
|
||||
stop() {
|
||||
echo -n $"Stopping $prog: "
|
||||
killproc -p $pidfile $gearmand
|
||||
RETVAL=$?
|
||||
echo
|
||||
[ $RETVAL = 0 ] && rm -f $lockfile $pidfile
|
||||
}
|
||||
|
||||
# See how we were called.
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
status)
|
||||
status -p $pidfile $gearmand
|
||||
RETVAL=$?
|
||||
;;
|
||||
restart|reload)
|
||||
stop
|
||||
start
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
if status -p $pidfile $gearmand >&/dev/null; then
|
||||
stop
|
||||
start
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $prog {start|stop|restart|reload|condrestart|status|help}"
|
||||
RETVAL=3
|
||||
esac
|
||||
|
||||
exit $RETVAL
|
||||
|
||||
12
gearmand.service
Normal file
12
gearmand.service
Normal file
@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=Gearmand distributed job system
|
||||
After=syslog.target network.target
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=/etc/sysconfig/gearmand
|
||||
User=gearmand
|
||||
Type=forking
|
||||
ExecStart=/usr/sbin/gearmand -d --log-file none --syslog $OPTIONS
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
111
gearmand.spec
Normal file
111
gearmand.spec
Normal file
@ -0,0 +1,111 @@
|
||||
Name: gearmand
|
||||
Version: 1.1.19.1
|
||||
Release: 1
|
||||
Summary: A distributed job system
|
||||
License: BSD
|
||||
URL: http://www.gearman.org
|
||||
Source0: https://github.com/gearman/%{name}/releases/download/%{version}/gearmand-%{version}.tar.gz
|
||||
Source1: gearmand.init
|
||||
Source2: gearmand.sysconfig
|
||||
Source3: gearmand.service
|
||||
Patch0: gearmand-1.1.12-ppc64le.patch
|
||||
Patch1: https://github.com/gearman/gearmand/pull/273.patch
|
||||
ExcludeArch: ppc
|
||||
BuildRequires: gcc-c++ chrpath libuuid-devel boost-devel >= 1.37.0, boost-thread sqlite-devel
|
||||
BuildRequires: tokyocabinet-devel libevent-devel libmemcached-devel, memcached hiredis-devel
|
||||
BuildRequires: gperf mariadb-connector-c-devel openssl-devel libpq-devel zlib-devel systemd
|
||||
%ifarch %{ix86} x86_64 ppc64 ppc64le aarch64 %{arm}
|
||||
BuildRequires: gperftools-devel
|
||||
%endif
|
||||
Requires(pre): shadow-utils
|
||||
Requires: procps
|
||||
%{?systemd_requires}
|
||||
%description
|
||||
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.
|
||||
In other words, it is the nervous system for how distributed processing
|
||||
communicates.
|
||||
|
||||
%package -n libgearman
|
||||
Summary: Development libraries for gearman
|
||||
Provides: libgearman-1.0 = %{version}-%{release}
|
||||
Obsoletes: libgearman-1.0 < %{version}-%{release}
|
||||
%description -n libgearman
|
||||
Development libraries for %{name}.
|
||||
|
||||
%package -n libgearman-devel
|
||||
Summary: Development headers for libgearman
|
||||
Requires: pkgconfig, libgearman = %{version}-%{release} libevent-devel
|
||||
Provides: libgearman-1.0-devel = %{version}-%{release}
|
||||
Obsoletes: libgearman-1.0-devel < %{version}-%{release}
|
||||
%description -n libgearman-devel
|
||||
Development headers for %{name}.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
|
||||
%build
|
||||
%configure --disable-static --disable-silent-rules --enable-ssl
|
||||
make %{_smp_mflags}
|
||||
|
||||
%install
|
||||
make install DESTDIR=%{buildroot}
|
||||
rm -v %{buildroot}%{_libdir}/libgearman*.la
|
||||
chrpath --delete %{buildroot}%{_bindir}/gearman
|
||||
install -p -D -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/gearmand
|
||||
mkdir -p %{buildroot}%{_unitdir}
|
||||
install -m 0644 %{SOURCE3} %{buildroot}%{_unitdir}/%{name}.service
|
||||
|
||||
%check
|
||||
|
||||
%pre
|
||||
getent group gearmand >/dev/null || groupadd -r gearmand
|
||||
getent passwd gearmand >/dev/null || \
|
||||
useradd -r -g gearmand -d / -s /sbin/nologin \
|
||||
-c "Gearmand job server" gearmand
|
||||
exit 0
|
||||
|
||||
%post
|
||||
%systemd_post gearmand.service
|
||||
|
||||
%preun
|
||||
%systemd_preun gearmand.service
|
||||
|
||||
%postun
|
||||
%systemd_postun_with_restart gearmand.service
|
||||
%ldconfig_scriptlets -n libgearman
|
||||
|
||||
%files
|
||||
%license COPYING
|
||||
%doc AUTHORS ChangeLog HACKING THANKS
|
||||
%config(noreplace) %{_sysconfdir}/sysconfig/gearmand
|
||||
%{_sbindir}/gearmand
|
||||
%{_bindir}/gearman
|
||||
%{_bindir}/gearadmin
|
||||
%{_mandir}/man1/*
|
||||
%{_mandir}/man8/*
|
||||
%{_unitdir}/%{name}.service
|
||||
|
||||
%files -n libgearman
|
||||
%license COPYING
|
||||
%{_libdir}/libgearman.so.8
|
||||
%{_libdir}/libgearman.so.8.0.0
|
||||
|
||||
%files -n libgearman-devel
|
||||
%license COPYING
|
||||
%doc AUTHORS ChangeLog HACKING THANKS
|
||||
%dir %{_includedir}/libgearman
|
||||
%{_includedir}/libgearman/
|
||||
%{_libdir}/pkgconfig/gearmand.pc
|
||||
%{_libdir}/libgearman.so
|
||||
%{_includedir}/libgearman-1.0/
|
||||
%{_mandir}/man3/*
|
||||
|
||||
%changelog
|
||||
* Tue Sep 7 2021 zhengyaohui <zhengyaohui1@huawei.com> - 1.1.19.1-1
|
||||
- package init
|
||||
3
gearmand.sysconfig
Normal file
3
gearmand.sysconfig
Normal file
@ -0,0 +1,3 @@
|
||||
### Settings for gearmand
|
||||
# OPTIONS=""
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user