Signed-off-by: Federico Simoncelli fsimonce@redhat.com --- src/main.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/main.c b/src/main.c index f8c74af..c513dc4 100644 --- a/src/main.c +++ b/src/main.c @@ -1210,7 +1210,7 @@ static void setup_groups(void) sngroups = ngroups_max;
rv = getgrouplist(com.uname, com.gid, sgroup, &sngroups); - if (rv < -1) { + if (rv < 0) { log_error("cannot get the user %s groups %i", com.uname, errno); goto out; }
Signed-off-by: Federico Simoncelli fsimonce@redhat.com --- init.d/sanlock | 31 +++++++++++++++++++++---------- 1 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/init.d/sanlock b/init.d/sanlock index b2cf012..ae5843b 100644 --- a/init.d/sanlock +++ b/init.d/sanlock @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # # sanlock - SAN-based lock manager # @@ -42,28 +42,39 @@ start() { daemon $prog daemon $SANLOCKOPTS retval=$? echo - [ $retval -eq 0 ] + return $retval }
stop() { - echo -n $"Stopping $prog: " + echo -n $"Sending stop signal $prog: " killproc -p $lockfile $prog -TERM retval=$? echo - [ $retval -eq 0 ] -}
-wait_for_stop() { + if [ $retval -ne 0 ]; then + return $retval + fi + + echo -n $"Waiting for $prog to stop:" + timeout=10 while [ -e $lockfile ]; do - sleep .5 + sleep 1 + timeout=$((timeout - 1)) + if [ "$timeout" -le 0 ]; then + failure; echo + return 1 + fi done + + success; echo + return $retval }
restart() { - stop - wait_for_stop - start + stop && start + retval=$? + return $retval }
reload() {
--- sanlock.spec | 259 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 259 insertions(+), 0 deletions(-) create mode 100644 sanlock.spec
diff --git a/sanlock.spec b/sanlock.spec new file mode 100644 index 0000000..242a185 --- /dev/null +++ b/sanlock.spec @@ -0,0 +1,259 @@ +Name: sanlock +Version: 2.2 +Release: 2%{?dist} +Summary: A shared disk lock manager + +Group: System Environment/Base +License: GPLv2 and GPLv2+ and LGPLv2+ +URL: https://fedorahosted.org/sanlock/ +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: libblkid-devel libaio-devel python python-devel +Requires: %{name}-lib = %{version}-%{release} +Source0: https://fedorahosted.org/releases/s/a/sanlock/%%7Bname%7D-%%7Bversion%7D.tar... + +%description +sanlock uses disk paxos to manage leases on shared storage. +Hosts connected to a common SAN can use this to synchronize their +access to the shared disks. + +%prep +%setup -q + +%build +# upstream does not require configure +# upstream does not support _smp_mflags +CFLAGS=$RPM_OPT_FLAGS make -C wdmd +CFLAGS=$RPM_OPT_FLAGS make -C src +CFLAGS=$RPM_OPT_FLAGS make -C python + +%install +rm -rf $RPM_BUILD_ROOT +make -C src \ + install LIBDIR=%{_libdir} \ + DESTDIR=$RPM_BUILD_ROOT +make -C wdmd \ + install LIBDIR=%{_libdir} \ + DESTDIR=$RPM_BUILD_ROOT +make -C python \ + install LIBDIR=%{_libdir} \ + DESTDIR=$RPM_BUILD_ROOT + +%if 0%{?fedora} >= 16 +install -D -m 0755 init.d/sanlock $RPM_BUILD_ROOT/lib/systemd/systemd-sanlock +install -D -m 0644 init.d/sanlock.service $RPM_BUILD_ROOT/%{_unitdir}/sanlock.service +install -D -m 0755 init.d/wdmd $RPM_BUILD_ROOT/lib/systemd/systemd-wdmd +install -D -m 0644 init.d/wdmd.service $RPM_BUILD_ROOT/%{_unitdir}/wdmd.service +%else +install -D -m 755 init.d/sanlock $RPM_BUILD_ROOT/%{_initddir}/sanlock +install -D -m 755 init.d/wdmd $RPM_BUILD_ROOT/%{_initddir}/wdmd +%endif + +install -Dm 0644 src/logrotate.sanlock \ + $RPM_BUILD_ROOT/etc/logrotate.d/sanlock + +install -Dm 0644 src/sysconfig.sanlock \ + $RPM_BUILD_ROOT/etc/sysconfig/sanlock + +%clean +rm -rf $RPM_BUILD_ROOT + +%pre +getent group sanlock > /dev/null || /usr/sbin/groupadd \ + -g 179 sanlock +getent passwd sanlock > /dev/null || /usr/sbin/useradd \ + -u 179 -c "sanlock" -s /sbin/nologin -r \ + -g 179 -d /var/run/sanlock sanlock + +%post +if [ $1 -eq 1 ] ; then +%if 0%{?fedora} >= 16 + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +%else + /sbin/chkconfig --add sanlock + /sbin/chkconfig --add wdmd +%endif +fi + +%preun +if [ $1 = 0 ]; then +%if 0%{?fedora} >= 16 + /bin/systemctl --no-reload sanlock.service > /dev/null 2>&1 || : + /bin/systemctl --no-reload wdmd.service > /dev/null 2>&1 || : + /bin/systemctl stop sanlock.service > /dev/null 2>&1 || : + /bin/systemctl stop wdmd.service > /dev/null 2>&1 || : +%else + /sbin/service sanlock stop > /dev/null 2>&1 + /sbin/service wdmd stop > /dev/null 2>&1 + /sbin/chkconfig --del sanlock + /sbin/chkconfig --del wdmd +%endif +fi + +%postun +if [ $1 -ge 1 ] ; then +%if 0%{?fedora} >= 16 + /bin/systemctl try-restart sanlock.service >/dev/null 2>&1 || : + /bin/systemctl try-restart wdmd.service >/dev/null 2>&1 || : +%else + /sbin/service sanlock condrestart >/dev/null 2>&1 || : + /sbin/service wdmd condrestart >/dev/null 2>&1 || : +%endif +fi + +%files +%defattr(-,root,root,-) +%if 0%{?fedora} >= 16 +/lib/systemd/systemd-sanlock +/lib/systemd/systemd-wdmd +%{_unitdir}/sanlock.service +%{_unitdir}/wdmd.service +%else +%{_initddir}/sanlock +%{_initddir}/wdmd +%endif +%{_sbindir}/sanlock +%{_sbindir}/wdmd +%{_mandir}/man8/wdmd* +%{_mandir}/man8/sanlock* +%config(noreplace) %{_sysconfdir}/logrotate.d/sanlock +%config(noreplace) %{_sysconfdir}/sysconfig/sanlock + +%package lib +Summary: A shared disk lock manager library +Group: System Environment/Libraries + +%description lib +The %{name}-lib package contains the runtime libraries for sanlock, +a shared disk lock manager. +Hosts connected to a common SAN can use this to synchronize their +access to the shared disks. + +%post lib -p /sbin/ldconfig + +%postun lib -p /sbin/ldconfig + +%files lib +%defattr(-,root,root,-) +%{_libdir}/libsanlock.so.* +%{_libdir}/libsanlock_client.so.* +%{_libdir}/libwdmd.so.* + +%package python +Summary: Python bindings for the sanlock library +Group: Development/Libraries +Requires: %{name}-lib = %{version}-%{release} + +%description python +The %{name}-python package contains a module that permits applications +written in the Python programming language to use the interface +supplied by the sanlock library. + +%files python +%defattr(-,root,root,-) +%{python_sitearch}/Sanlock-1.0-py*.egg-info +%{python_sitearch}/sanlock.so + +%package devel +Summary: Development files for %{name} +Group: Development/Libraries +Requires: %{name}-lib = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%files devel +%defattr(-,root,root,-) +%{_libdir}/libwdmd.so +%{_includedir}/wdmd.h +%{_libdir}/libsanlock.so +%{_libdir}/libsanlock_client.so +%{_includedir}/sanlock.h +%{_includedir}/sanlock_rv.h +%{_includedir}/sanlock_admin.h +%{_includedir}/sanlock_resource.h +%{_includedir}/sanlock_direct.h + +%changelog +* Fri May 25 2012 Federico Simoncelli fsimonce@redhat.com 2.2-2 +- Support multiple platforms in the spec file + +* Mon May 07 2012 David Teigland teigland@redhat.com - 2.2-1 +- Update to sanlock-2.2 + +* Thu Apr 05 2012 David Teigland teigland@redhat.com - 2.1-2 +- Install service files instead of init files + +* Wed Mar 21 2012 David Teigland teigland@redhat.com - 2.1-1 +- Update to sanlock-2.1 + +* Fri Mar 02 2012 David Teigland teigland@redhat.com - 2.0-1 +- Update to sanlock-2.0 + +* Tue Sep 20 2011 David Teigland teigland@redhat.com - 1.8-2 +- fix useradd command in spec file + +* Fri Sep 16 2011 Chris Feist <cfeist@redhat.com - 1.8-1 +- Update to sanlock-1.8 + +* Fri Aug 19 2011 Dan HorĂ¡k <dan[at]danny.cz> - 1.6-2 +- build on all arches again + +* Sun Aug 07 2011 Chris Feist cfeist@redhat.com - 1.7-4 +- Fix for minor file include issues + +* Fri Aug 05 2011 David Teigland teigland@redhat.com - 1.7-3 +- fix man page mode + +* Fri Aug 05 2011 David Teigland teigland@redhat.com - 1.7-1 +- Update to sanlock-1.7 + +* Fri Jul 08 2011 David Teigland teigland@redhat.com - 1.6-1 +- Update to sanlock-1.6 + +* Thu Jun 30 2011 David Teigland teigland@redhat.com - 1.5-1 +- Update to sanlock-1.5 + +* Tue Jun 21 2011 David Teigland teigland@redhat.com - 1.4-1 +- Update to sanlock-1.4 + +* Fri Jun 10 2011 David Teigland teigland@redhat.com - 1.3-6 +- fix python version, build i686 also + +* Thu Jun 09 2011 David Teigland teigland@redhat.com - 1.3-5 +- build exclusive x86_64, at least for now + +* Thu Jun 09 2011 David Teigland teigland@redhat.com - 1.3-4 +- build only x86_64, at least for now + +* Thu Jun 09 2011 David Teigland teigland@redhat.com - 1.3-3 +- fix libwdmd linking + +* Thu Jun 09 2011 David Teigland teigland@redhat.com - 1.3-2 +- shut up build warnings for wdmd and sanlock + +* Thu Jun 09 2011 David Teigland teigland@redhat.com - 1.3-1 +- Update to sanlock-1.3 + +* Mon May 09 2011 Chris Feist cfeist@redhat.com - 1.2.0-3 +- Add python and python-devel to build requires + +* Mon May 09 2011 Chris Feist cfeist@redhat.com - 1.2.0-1 +- Use latest sources +- Sync .spec file + +* Mon Apr 4 2011 Federico Simoncelli fsimonce@redhat.com - 1.1.0-3 +- Add sanlock_admin.h header + +* Fri Feb 18 2011 Chris Feist cfeist@redhat.com - 1.1.0-2 +- Fixed install for wdmd + +* Thu Feb 17 2011 Chris Feist cfeist@redhat.com - 1.1.0-1 +- Updated to latest sources +- Now include wdmd + +* Tue Feb 8 2011 Angus Salkeld asalkeld@redhat.com - 1.0-2 +- SPEC: Add docs and make more consistent with the fedora template + +* Mon Jan 10 2011 Fabio M. Di Nitto fdinitto@redhat.com - 1.0-1 +- first cut at rpm packaging
sanlock-devel@lists.fedorahosted.org