Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Virtualization
sanlock
sanlock.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File sanlock.spec of Package sanlock
# # spec file for package sanlock # # Copyright (c) 2024 SUSE LLC # # 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 https://bugs.opensuse.org/ # %global flavor @BUILD_FLAVOR@%{nil} %if "%{flavor}" == "python" %global pprefix python- %define oldpython python %bcond_without python %bcond_without python2 %else %global pprefix %{nil} %bcond_with python %bcond_with python2 %endif %define with_fence_sanlockd 0 %define with_sanlk_reset 0 %if 0%{?suse_version} > 1320 %define with_fence_sanlockd 1 %define with_sanlk_reset 1 %endif #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %define _fillupdir %{_localstatedir}/adm/fillup-templates %endif %define pname sanlock Name: %{pprefix}%{pname} Version: 3.9.3 Release: 0 %if ! %{with python} Summary: A shared disk lock manager License: GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later Group: System/Base %else Summary: Python bindings for the sanlock library License: GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later Group: System/Base %endif URL: https://pagure.io/sanlock Source0: %{pname}-%{version}.tar.xz Source1: sysconfig.sanlock Source2: sysconfig.wdmd Source3: fence_sanlockd.init # Upstream patches # SUSE patches Patch100: sanlock-SCHED_RESET_ON_FORK-undefined.patch Patch101: sanlock-python-prefix.patch Patch102: suse-systemd.patch Patch103: suse-no-date-time.patch Patch104: harden_fence_sanlockd.service.patch Patch105: harden_sanlk-resetd.service.patch BuildRequires: %{python_module devel} BuildRequires: %{python_module setuptools} BuildRequires: libaio-devel BuildRequires: pkgconfig BuildRequires: python-rpm-macros BuildRequires: systemd-rpm-macros BuildRequires: pkgconfig(blkid) BuildRequires: pkgconfig(uuid) %if ! %{with python} Requires(pre): %fillup_prereq Requires(pre): shadow Provides: group(sanlock) Provides: user(sanlock) Recommends: logrotate %{?systemd_requires} %if 0%{?suse_version} >= 1500 Requires(pre): group(disk) %endif %else BuildRequires: %{pname}-devel = %{version} Provides: sanlock-python %if "%{python_flavor}" == "python2" Provides: %{oldpython}-%{pname} %endif %endif %python_subpackages %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. %if %{with python} This package provides a module that permits applications written in the Python programming language to use the interface supplied by the sanlock library. %endif %package -n libsanlock1 Summary: A shared disk lock manager library Group: Development/Libraries/C and C++ Provides: sanlock-lib = %{version} %description -n libsanlock1 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. %package -n %{pname}-devel Summary: Development files for %{pname} Group: Development/Libraries/C and C++ Requires: libsanlock1 = %{version}-%{release} %description -n %{pname}-devel The %{pname}-devel package contains libraries and header files for developing applications that use %{pname}. %package -n fence-sanlock Summary: Fence agent using sanlock and wdmd Group: System/Base Requires: sanlock = %{version}-%{release} %description -n fence-sanlock Fence agent and daemon for using sanlock and wdmd as a cluster fence agent. %package -n sanlk-reset Summary: Host reset daemon and client using sanlock Group: System/Base Requires: libsanlock1 = %{version}-%{release} Requires: sanlock = %{version}-%{release} %description -n sanlk-reset The reset daemon and client for sanlock. A cooperating host running the daemon can be reset by a host running the client, so long as both maintain access to a common sanlock lockspace. %prep %setup -q -n %{pname}-%{version} %patch -P 100 %patch -P 101 %patch -P 102 -p1 %patch -P 103 -p1 %patch -P 104 -p1 %patch -P 105 -p1 %build %if ! %{with python} # upstream does not require configure # upstream does not support _smp_mflags CFLAGS="%{optflags}" make -j1 -C wdmd CFLAGS="%{optflags}" make -j1 -C src %if %{with_fence_sanlockd} CFLAGS="%{optflags}" make -j1 -C fence_sanlock %endif %if %{with_sanlk_reset} CFLAGS="%{optflags}" make -j1 -C reset %endif %else pushd python CFLAGS="%{optflags} -fno-strict-aliasing" %python_build popd %endif %install %if ! %{with python} %make_install LIBDIR=%{_libdir} -C src %make_install LIBDIR=%{_libdir} -C wdmd %if %{with_fence_sanlockd} %make_install LIBDIR=%{_libdir} -C fence_sanlock %endif %if %{with_sanlk_reset} %make_install LIBDIR=%{_libdir} -C reset %endif install -D -m 644 src/sanlock.conf %{buildroot}/%{_sysconfdir}/sanlock/sanlock.conf install -D -m 644 %{SOURCE1} %{buildroot}/%{_fillupdir}/sysconfig.sanlock install -D -m 644 %{SOURCE2} %{buildroot}/%{_fillupdir}/sysconfig.wdmd install -D -m 644 init.d/sanlock.service %{buildroot}/%{_unitdir}/sanlock.service ln -s service %{buildroot}%{_sbindir}/rcsanlock install -D -m 644 init.d/wdmd.service %{buildroot}/%{_unitdir}/wdmd.service ln -s service %{buildroot}%{_sbindir}/rcwdmd %if %{with_fence_sanlockd} install -D -m 0755 %{SOURCE3} %{buildroot}%{_prefix}/lib/systemd/systemd-fence_sanlockd install -D -m 0644 init.d/fence_sanlockd.service %{buildroot}/%{_unitdir}/fence_sanlockd.service ln -s service %{buildroot}%{_sbindir}/rcfence_sanlockd %endif %if %{with_sanlk_reset} install -D -m 0644 init.d/sanlk-resetd.service %{buildroot}/%{_unitdir}/sanlk-resetd.service ln -s service %{buildroot}%{_sbindir}/rcsanlk-resetd %endif install -Dm 0644 src/logrotate.sanlock \ %{buildroot}%{_sysconfdir}/logrotate.d/sanlock install -Dd -m 0755 %{buildroot}%{_sysconfdir}/wdmd.d %else pushd python %python_install popd %endif %if ! %{with python} %pre -n %{pname} getent group sanlock > /dev/null || groupadd \ -g 179 sanlock getent passwd sanlock > /dev/null || useradd \ -u 179 -c "sanlock" -s /sbin/nologin -r \ -g 179 -G disk -d %{_localstatedir}/run/sanlock sanlock %service_add_pre wdmd.service %service_add_pre sanlock.service %pre -n fence-sanlock %service_add_pre fence_sanlockd.service %pre -n sanlk-reset %service_add_pre sanlk-resetd.service %post -n %{pname} %service_add_post wdmd.service sanlock.service %fillup_only -n wdmd %fillup_only -n sanlock %post -n libsanlock1 -p /sbin/ldconfig %if %{with_fence_sanlockd} %post -n fence-sanlock %service_add_post fence_sanlockd.service %endif %post -n sanlk-reset %service_add_post sanlk-resetd.service %preun -n %{pname} %service_del_preun wdmd.service sanlock.service %preun -n fence-sanlock %service_del_preun fence_sanlockd.service %preun -n sanlk-reset %service_del_preun sanlk-resetd.service %postun -n %{pname} %service_del_postun wdmd.service sanlock.service %postun -n libsanlock1 -p /sbin/ldconfig %postun -n fence-sanlock %service_del_postun fence_sanlockd.service %postun -n sanlk-reset %service_del_postun sanlk-resetd.service %files -n %{pname} %dir %attr(0700, root, root) %{_sysconfdir}/wdmd.d/ %dir %attr(0700, root, root) %{_sysconfdir}/sanlock/ %config(noreplace) %{_sysconfdir}/sanlock/sanlock.conf %{_sbindir}/rcsanlock %{_fillupdir}/sysconfig.sanlock %{_sbindir}/rcwdmd %{_fillupdir}/sysconfig.wdmd %{_unitdir}/sanlock.service %{_unitdir}/wdmd.service %{_sbindir}/sanlock %{_sbindir}/wdmd %{_mandir}/man8/wdmd* %{_mandir}/man8/sanlock* %config(noreplace) %{_sysconfdir}/logrotate.d/sanlock %files -n libsanlock1 %{_libdir}/libsanlock.so.* %{_libdir}/libsanlock_client.so.* %{_libdir}/libwdmd.so.* %files -n %{pname}-devel %{_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 %{_libdir}/pkgconfig/libsanlock.pc %{_libdir}/pkgconfig/libsanlock_client.pc %if %{with_fence_sanlockd} %files -n fence-sanlock %{_sbindir}/fence_sanlockd %{_prefix}/lib/systemd/systemd-fence_sanlockd %{_unitdir}/fence_sanlockd.service %{_sbindir}/fence_sanlock %{_sbindir}/fence_sanlockd %{_sbindir}/rcfence_sanlockd %{_mandir}/man8/fence_sanlock* %endif %if %{with_sanlk_reset} %files -n sanlk-reset %{_sbindir}/sanlk-reset %{_sbindir}/sanlk-resetd %{_sbindir}/rcsanlk-resetd %{_unitdir}/sanlk-resetd.service %{_mandir}/man8/sanlk-reset.8%{?ext_man} %{_mandir}/man8/sanlk-resetd.8%{?ext_man} %endif %else %files %{python_files} %{python_sitearch}/sanlock*.so %{python_sitearch}/sanlock_python-%{version}*info %endif %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor