Initial sanlock package for openSUSE
OBS-URL: https://build.opensuse.org/package/show/Virtualization/sanlock?expand=0&rev=1
This commit is contained in:
commit
52c43cd53d
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
3
sanlock-1.9.tar.gz
Normal file
3
sanlock-1.9.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:01b3e8a0f9466e42b841fb9d64574ae6b0fb4527cd94f18d45c22031b2f61504
|
||||
size 119767
|
30
sanlock-SCHED_RESET_ON_FORK-undefined.patch
Normal file
30
sanlock-SCHED_RESET_ON_FORK-undefined.patch
Normal file
@ -0,0 +1,30 @@
|
||||
Index: src/main.c
|
||||
===================================================================
|
||||
--- src/main.c.orig
|
||||
+++ src/main.c
|
||||
@@ -50,6 +50,10 @@
|
||||
#include "client_cmd.h"
|
||||
#include "cmd.h"
|
||||
|
||||
+#ifndef SCHED_RESET_ON_FORK
|
||||
+#define SCHED_RESET_ON_FORK 0
|
||||
+#endif
|
||||
+
|
||||
struct thread_pool {
|
||||
int num_workers;
|
||||
int max_workers;
|
||||
Index: wdmd/main.c
|
||||
===================================================================
|
||||
--- wdmd/main.c.orig
|
||||
+++ wdmd/main.c
|
||||
@@ -43,6 +43,10 @@
|
||||
|
||||
#define RELEASE_VERSION "1.9"
|
||||
|
||||
+#ifndef SCHED_RESET_ON_FORK
|
||||
+#define SCHED_RESET_ON_FORK 0
|
||||
+#endif
|
||||
+
|
||||
#define DEFAULT_TEST_INTERVAL 10
|
||||
#define DEFAULT_FIRE_TIMEOUT 60
|
||||
#define DEFAULT_HIGH_PRIORITY 1
|
24
sanlock-old_blkid.patch
Normal file
24
sanlock-old_blkid.patch
Normal file
@ -0,0 +1,24 @@
|
||||
Index: src/diskio.c
|
||||
===================================================================
|
||||
--- src/diskio.c.orig
|
||||
+++ src/diskio.c
|
||||
@@ -33,6 +33,7 @@
|
||||
|
||||
static int set_disk_properties(struct sync_disk *disk)
|
||||
{
|
||||
+#ifdef BLKID_VERSION
|
||||
blkid_probe probe;
|
||||
blkid_topology topo;
|
||||
uint32_t sector_size, ss_logical, ss_physical;
|
||||
@@ -64,7 +65,10 @@ static int set_disk_properties(struct sy
|
||||
ss_physical, disk->path);
|
||||
return -1;
|
||||
}
|
||||
-
|
||||
+#else
|
||||
+ /* HACK, should really read this from sysfs */
|
||||
+ uint32_t sector_size = 512;
|
||||
+#endif
|
||||
disk->sector_size = sector_size;
|
||||
return 0;
|
||||
}
|
13
sanlock-python-prefix.patch
Normal file
13
sanlock-python-prefix.patch
Normal file
@ -0,0 +1,13 @@
|
||||
Index: python/Makefile
|
||||
===================================================================
|
||||
--- python/Makefile.orig
|
||||
+++ python/Makefile
|
||||
@@ -8,7 +8,7 @@ all:
|
||||
python setup.py build
|
||||
|
||||
install:
|
||||
- python setup.py install --root=$(DESTDIR)
|
||||
+ python setup.py install --root=$(DESTDIR) --prefix=$(PREFIX)
|
||||
|
||||
clean:
|
||||
rm -rf build
|
11
sanlock.changes
Normal file
11
sanlock.changes
Normal file
@ -0,0 +1,11 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 18 10:17:57 MST 2012 - jfehlig@suse.com
|
||||
|
||||
- Update to sanlock 1.9
|
||||
- Add SUSE init script for sanlock and wdmd
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Dec 22 01:15:39 CET 2011 - ro@suse.de
|
||||
|
||||
- initial package based on package from openstack
|
||||
|
73
sanlock.init
Normal file
73
sanlock.init
Normal file
@ -0,0 +1,73 @@
|
||||
#!/bin/sh
|
||||
|
||||
### BEGIN INIT INFO
|
||||
# Provides: sanlock
|
||||
# Required-Start: $time $syslog wdmd $remote_fs
|
||||
# Required-Stop: $syslog
|
||||
# Should-Start:
|
||||
# Should-Stop:
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: starts and stops sanlock daemon
|
||||
# Description: starts and stops sanlock daemon
|
||||
### END INIT INFO
|
||||
|
||||
SANLOCK_BIN=/usr/sbin/sanlock
|
||||
SANLOCK_PIDFILE=/var/run/sanlock/sanlock.pid
|
||||
test -x $SANLOCK_BIN || { echo "$SANLOCK_BIN not installed";
|
||||
if [ "$1" = "stop" ]; then exit 0;
|
||||
else exit 5; fi; }
|
||||
|
||||
[ -f /etc/sysconfig/sanlock ] && . /etc/sysconfig/sanlock
|
||||
|
||||
. /etc/rc.status
|
||||
rc_reset
|
||||
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
if [ -e $SANLOCK_PIDFILE ]; then
|
||||
if checkproc $SANLOCK_BIN ; then
|
||||
echo -n "sanlock is already running."
|
||||
rc_status -v
|
||||
exit
|
||||
else
|
||||
echo "Removing stale PID file $SANLOCK_PIDFILE."
|
||||
rm -f $SANLOCK_PIDFILE
|
||||
fi
|
||||
fi
|
||||
echo -n "Starting sanlock "
|
||||
startproc $SANLOCK_BIN daemon $SANLOCKOPTS
|
||||
rc_status -v
|
||||
;;
|
||||
stop)
|
||||
echo -n "Shutting down sanlock "
|
||||
killproc -TERM $SANLOCK_BIN > /dev/null 2>&1
|
||||
rm -f $SANLOCK_PIDFILE
|
||||
rc_status -v
|
||||
;;
|
||||
try-restart)
|
||||
$0 status >/dev/null && $0 restart
|
||||
rc_status
|
||||
;;
|
||||
restart)
|
||||
$0 stop
|
||||
$0 start
|
||||
rc_status
|
||||
;;
|
||||
reload)
|
||||
killproc -HUP $SANLOCK_BIN
|
||||
rc_status -v
|
||||
;;
|
||||
status)
|
||||
echo -n "Checking status of sanlock "
|
||||
checkproc $SANLOCK_BIN
|
||||
rc_status -v
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart|try-restart|reload|status}"
|
||||
rc_failed 2
|
||||
rc_exit
|
||||
;;
|
||||
esac
|
||||
rc_exit
|
162
sanlock.spec
Normal file
162
sanlock.spec
Normal file
@ -0,0 +1,162 @@
|
||||
#
|
||||
# spec file for package sanlock
|
||||
#
|
||||
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
Name: sanlock
|
||||
Version: 1.9
|
||||
Release: 1%{?dist}
|
||||
Summary: A shared disk lock manager
|
||||
|
||||
Group: System Environment/Base
|
||||
License: GPLv2, GPLv2+, 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/%{name}-%{version}.tar.gz
|
||||
Source1: sanlock.init
|
||||
Source2: wdmd.init
|
||||
Patch0: sanlock-SCHED_RESET_ON_FORK-undefined.patch
|
||||
Patch1: sanlock-python-prefix.patch
|
||||
Patch2: sanlock-old_blkid.patch
|
||||
|
||||
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
|
||||
|
||||
%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
|
||||
%patch0
|
||||
%patch1
|
||||
%patch2
|
||||
|
||||
%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
|
||||
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 PREFIX=%_prefix
|
||||
install -D -m 755 %SOURCE1 $RPM_BUILD_ROOT/etc/init.d/sanlock
|
||||
install -D -m 755 %SOURCE2 $RPM_BUILD_ROOT/etc/init.d/wdmd
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%pre
|
||||
/usr/sbin/useradd -u 179 -g 179 -c "sanlock" -s /sbin/nologin -r \
|
||||
-d /var/run/sanlock sanlock 2> /dev/null || :
|
||||
|
||||
##%post
|
||||
##/sbin/chkconfig --add sanlock
|
||||
##/sbin/chkconfig --add wdmd
|
||||
|
||||
%preun
|
||||
%{stop_on_removal sanlock}
|
||||
%{stop_on_removal wdmd}
|
||||
##if [ $1 = 0 ]; then
|
||||
## /sbin/service sanlock stop > /dev/null 2>&1
|
||||
## /sbin/service wdmd stop > /dev/null 2>&1
|
||||
## /sbin/chkconfig --del sanlock
|
||||
## /sbin/chkconfig --del wdmd
|
||||
##fi
|
||||
|
||||
%postun
|
||||
%{insserv_cleanup}
|
||||
#/sbin/service sanlock condrestart >/dev/null 2>&1 || :
|
||||
#/sbin/service wdmd condrestart >/dev/null 2>&1 || :
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
/etc/init.d/sanlock
|
||||
/etc/init.d/wdmd
|
||||
%{_sbindir}/sanlock
|
||||
%{_sbindir}/wdmd
|
||||
%{_mandir}/man8/wdmd*
|
||||
%{_mandir}/man8/sanlock*
|
||||
|
||||
%package -n libsanlock1
|
||||
Provides: sanlock-lib
|
||||
Summary: A shared disk lock manager library
|
||||
Group: System Environment/Libraries
|
||||
|
||||
%description -n libsanlock1
|
||||
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 -n libsanlock1 -p /sbin/ldconfig
|
||||
|
||||
%postun -n libsanlock1 -p /sbin/ldconfig
|
||||
|
||||
%files -n libsanlock1
|
||||
%defattr(-,root,root,-)
|
||||
%{_libdir}/libsanlock.so.*
|
||||
%{_libdir}/libsanlock_client.so.*
|
||||
%{_libdir}/libwdmd.so.*
|
||||
|
||||
%package -n python-%name
|
||||
Provides: sanlock-python
|
||||
Summary: Python bindings for the sanlock library
|
||||
Group: Development/Libraries
|
||||
Requires: %{name}-lib = %{version}-%{release}
|
||||
|
||||
%description -n python-%name
|
||||
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 -n python-%name
|
||||
%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
|
81
wdmd.init
Normal file
81
wdmd.init
Normal file
@ -0,0 +1,81 @@
|
||||
#!/bin/sh
|
||||
|
||||
### BEGIN INIT INFO
|
||||
# Provides: wdmd
|
||||
# Required-Start: $time $syslog
|
||||
# Required-Stop: $syslog
|
||||
# Should-Start:
|
||||
# Should-Stop:
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: starts and stops wdmd daemon
|
||||
# Description: starts and stops wdmd daemon
|
||||
### END INIT INFO
|
||||
|
||||
WDMD_BIN=/usr/sbin/wdmd
|
||||
WDMD_PIDFILE=/var/run/wdmd/wdmd.pid
|
||||
|
||||
WDMDGROUP="sanlock"
|
||||
WDMDOPTS="-G $WDMDGROUP"
|
||||
|
||||
test -x $WDMD_BIN || { echo "$WDMD_BIN not installed";
|
||||
if [ "$1" = "stop" ]; then exit 0;
|
||||
else exit 5; fi; }
|
||||
|
||||
[ -f /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
|
||||
|
||||
. /etc/rc.status
|
||||
rc_reset
|
||||
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
if [ ! -d /var/run/$prog ]; then
|
||||
mkdir -p /var/run/$prog
|
||||
fi
|
||||
|
||||
if [ -e $WDMD_PIDFILE ]; then
|
||||
if checkproc $WDMD_BIN ; then
|
||||
echo -n "wdmd is already running."
|
||||
rc_status -v
|
||||
exit
|
||||
else
|
||||
echo "Removing stale PID file $WDMD_PIDFILE."
|
||||
rm -f $WDMD_PIDFILE
|
||||
fi
|
||||
fi
|
||||
echo -n "Starting wdmd "
|
||||
startproc $WDMD_BIN
|
||||
rc_status -v
|
||||
;;
|
||||
stop)
|
||||
echo -n "Shutting down wdmd "
|
||||
killproc -TERM $WDMD_BIN > /dev/null 2>&1
|
||||
rm -f $WDMD_PIDFILE
|
||||
rc_status -v
|
||||
;;
|
||||
try-restart)
|
||||
$0 status >/dev/null && $0 restart
|
||||
rc_status
|
||||
;;
|
||||
restart)
|
||||
$0 stop
|
||||
$0 start
|
||||
rc_status
|
||||
;;
|
||||
reload)
|
||||
killproc -HUP $WDMD_BIN
|
||||
rc_status -v
|
||||
;;
|
||||
status)
|
||||
echo -n "Checking status of wdmd "
|
||||
checkproc $WDMD_BIN
|
||||
rc_status -v
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart|try-restart|reload|status}"
|
||||
rc_failed 2
|
||||
rc_exit
|
||||
;;
|
||||
esac
|
||||
rc_exit
|
Loading…
Reference in New Issue
Block a user