File: sanlock.spec.in

package info (click to toggle)
sanlock 3.8.2-2
  • links: PTS
  • area: main
  • in suites: bullseye
  • size: 2,024 kB
  • sloc: ansic: 25,909; sh: 1,251; python: 1,099; makefile: 362
file content (200 lines) | stat: -rw-r--r-- 5,949 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
# NOTE: this spec should be used only for developmemnt.
#
# To find the real sanlock spec use:
# - Fedora: fedpkg clone sanlock
# - RHEL: rhpkg clone sanlock
#
# This spec was created from Fedora spec and modified to work on CentOS.

Name:           sanlock
Version:        @VERSION@
Release:        @RELEASE@%{?dist}
Summary:        A shared storage lock manager

License:        GPLv2 and GPLv2+ and LGPLv2+
URL:            https://pagure.io/sanlock/
BuildRequires:  gcc
BuildRequires:  libaio-devel
BuildRequires:  libblkid-devel
BuildRequires:  libuuid-devel
BuildRequires:  make
BuildRequires:  python3
BuildRequires:  python3-devel
BuildRequires:  systemd-units
Requires:       %{name}-lib = %{version}-%{release}
Requires(pre):  /usr/sbin/groupadd
Requires(pre):  /usr/sbin/useradd
Requires(post): systemd-units
Requires(post): systemd-sysv
Requires(preun): systemd-units
Requires(postun): systemd-units
Source0:        https://releases.pagure.org/sanlock/%{name}-%{version}.tar.gz

%global python_package python3-%{name}

%description
The sanlock daemon manages leases for applications on hosts using shared storage.

%prep
%setup -q

%build
%if 0%{?fedora}
%set_build_flags
%endif
# 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 PY_VERSION=3
CFLAGS=$RPM_OPT_FLAGS make -C reset

%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 \
        PY_VERSION=3
make -C reset \
        install LIBDIR=%{_libdir} \
        DESTDIR=$RPM_BUILD_ROOT


install -D -m 0644 init.d/sanlock.service.native $RPM_BUILD_ROOT/%{_unitdir}/sanlock.service
install -D -m 0755 init.d/wdmd $RPM_BUILD_ROOT/usr/lib/systemd/systemd-wdmd
install -D -m 0644 init.d/wdmd.service.native $RPM_BUILD_ROOT/%{_unitdir}/wdmd.service
install -D -m 0644 init.d/sanlk-resetd.service $RPM_BUILD_ROOT/%{_unitdir}/sanlk-resetd.service

install -D -m 0644 src/logrotate.sanlock \
    $RPM_BUILD_ROOT/etc/logrotate.d/sanlock

install -D -m 0644 src/sanlock.conf \
    $RPM_BUILD_ROOT/etc/sanlock/sanlock.conf

install -D -m 0644 init.d/wdmd.sysconfig \
    $RPM_BUILD_ROOT/etc/sysconfig/wdmd

install -Dd -m 0755 $RPM_BUILD_ROOT/etc/wdmd.d
install -Dd -m 0775 $RPM_BUILD_ROOT/%{_rundir}/sanlock
install -Dd -m 0775 $RPM_BUILD_ROOT/%{_rundir}/sanlk-resetd

%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 /run/sanlock sanlock
/usr/sbin/usermod -a -G disk sanlock

%post
%systemd_post wdmd.service sanlock.service

%preun
%systemd_preun wdmd.service sanlock.service

%postun
%systemd_postun wdmd.service sanlock.service

%files
/usr/lib/systemd/systemd-wdmd
%{_unitdir}/sanlock.service
%{_unitdir}/wdmd.service
%{_sbindir}/sanlock
%{_sbindir}/wdmd
%dir %{_sysconfdir}/wdmd.d
%dir %{_sysconfdir}/sanlock
%dir %attr(-,sanlock,sanlock) %{_rundir}/sanlock
%{_mandir}/man8/wdmd*
%{_mandir}/man8/sanlock*
%config(noreplace) %{_sysconfdir}/logrotate.d/sanlock
%config(noreplace) %{_sysconfdir}/sanlock/sanlock.conf
%config(noreplace) %{_sysconfdir}/sysconfig/wdmd
%doc init.d/sanlock
%doc init.d/sanlock.service
%doc init.d/wdmd.service

%package        lib
Summary:        A shared storage lock manager library

%description    lib
The %{name}-lib package contains the runtime libraries for sanlock,
a shared storage lock manager.
Hosts connected to a common SAN can use this to synchronize their
access to the shared disks.

%ldconfig_scriptlets lib

%files          lib
%{_libdir}/libsanlock.so.*
%{_libdir}/libsanlock_client.so.*
%{_libdir}/libwdmd.so.*

%package        -n %{python_package}
Summary:        Python bindings for the sanlock library
Requires:       %{name}-lib = %{version}-%{release}
%if 0%{?fedora}
%{?python_provide:%python_provide %{python_package}}
%endif # fedora

%description    -n %{python_package}
The %{python_package} 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_package}
%{python3_sitearch}/sanlock_python-*.egg-info
%{python3_sitearch}/sanlock*.so

%package        devel
Summary:        Development files for %{name}
Requires:       %{name}-lib = %{version}-%{release}

%description    devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.

%files          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

%package -n     sanlk-reset
Summary:        Host reset daemon and client using sanlock
Requires:       sanlock = %{version}-%{release}
Requires:       sanlock-lib = %{version}-%{release}

%description -n sanlk-reset
The sanlk-reset package contains the reset daemon and client.
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.

%files -n       sanlk-reset
%{_sbindir}/sanlk-reset
%{_sbindir}/sanlk-resetd
%{_unitdir}/sanlk-resetd.service
%dir %attr(-,root,root) %{_rundir}/sanlk-resetd
%{_mandir}/man8/sanlk-reset*


%changelog
* Wed Jun 12 2019 Nir Soffer <nsoffer@redhat.com> - 3.8.0-1
- Convert spec to python 3

* Mon Mar 25 2019 Nir Soffer <nsoffer@redhat.com> - 3.7.0-1
- Import spec from Fedora master branch (371e11a)
- Fix spec to work on CentOS (20efe91)