3 %bcond_with initrd # don't build initrd version
4 %bcond_with dietlibc # build initrd version with static glibc instead of dietlibc
5 %bcond_with passwdqc # password quality checking via libpasswdqc [conflicts with pwquality]
6 %bcond_with pwquality # password quality checking via libpwquality [conflicts with passwdqc]
7 %bcond_without python # Python binding
8 %bcond_without tests # "make check" run
10 Summary: LUKS for dm-crypt implemented in cryptsetup
11 Summary(pl.UTF-8): LUKS dla dm-crypta zaimplementowany w cryptsetup
17 Source0: https://www.kernel.org/pub/linux/utils/cryptsetup/v2.0/%{name}-%{version}.tar.xz
18 # Source0-md5: ed42b31f67d05b05e392d1943d467b8d
20 URL: https://gitlab.com/cryptsetup/cryptsetup
21 BuildRequires: autoconf >= 2.67
22 BuildRequires: automake >= 1:1.12
23 BuildRequires: device-mapper-devel >= 1.02.27
24 BuildRequires: gettext-tools >= 0.18.3
25 BuildRequires: json-c-devel
26 BuildRequires: libargon2-devel >= 20171227
27 BuildRequires: libblkid-devel
28 BuildRequires: libgcrypt-devel >= 1.6.1
29 BuildRequires: libgpg-error-devel
30 %{?with_pwquality:BuildRequires: libpwquality-devel >= 1.0.0}
31 BuildRequires: libselinux-devel
32 BuildRequires: libsepol-devel
33 BuildRequires: libtool >= 2:2.0
34 BuildRequires: libuuid-devel
35 %{?with_passwdqc:BuildRequires: passwdqc-devel}
36 BuildRequires: pkgconfig
37 BuildRequires: popt-devel >= 1.7
39 BuildRequires: python-devel >= 1:2.6
40 BuildRequires: rpm-pythonprov
42 BuildRequires: tar >= 1:1.22
45 BuildRequires: libgpg-error-static
47 BuildRequires: device-mapper-dietlibc >= 1.02.27
48 BuildRequires: dietlibc-static
49 BuildRequires: libgcrypt-dietlibc >= 1.6.1
50 BuildRequires: libuuid-dietlibc
51 BuildRequires: popt-dietlibc
53 BuildRequires: device-mapper-static >= 1.02.27
54 BuildRequires: libgcrypt-static >= 1.6.1
55 BuildRequires: libselinux-static
56 BuildRequires: libsepol-static
57 BuildRequires: libuuid-static
58 BuildRequires: popt-static
59 BuildRequires: udev-static
62 Requires: libgcrypt >= 1.6.1
63 %{?with_pwquality:Requires: libpwquality >= 1.0.0}
65 Provides: cryptsetup-luks = %{version}-%{release}
66 Obsoletes: cryptsetup-luks < 1.4.1-2
67 %{!?with_initrd:Obsoletes: cryptsetup-initrd < %{version}-%{release}}
68 Conflicts: udev < 1:118-1
69 Conflicts: udev-core < 1:115
70 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
72 %define _sbindir /sbin
75 LUKS is the upcoming standard for Linux hard disk encryption. By
76 providing a standard on-disk-format, it does not only facilitate
77 compatibility among distributions, but also provide secure management
78 of multiple user passwords. In contrast to existing solution, LUKS
79 stores all setup necessary setup information in the partition header,
80 enabling the user to transport or migrate his data seamlessly.
82 This package contains implementation of LUKS for dm-crypt implemented
85 %description -l pl.UTF-8
86 LUKS to nadchodzący standard linuksowego szyfrowania twardego dysku.
87 Dostarczając standardowy format danych na dysku nie tylko ułatwia
88 utrzymanie kompatybilności między dystrybucjami, ale także dostarcza
89 bezpieczne zarządzanie wieloma hasłami użytkowników. W przeciwieństwie
90 do istniejącego rozwiązania LUKS przechowuje wszystkie potrzebne
91 informacje o konfiguracji w nagłówku partycji, pozwalając
92 użytkownikowi przenosić lub migrować dane w sposób przezroczysty.
94 Ten pakiet zawiera implementację LUKS dla dm-crytpa zaimplementowaną w
98 Summary: Header files for cryptsetup library
99 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki cryptsetup
100 Group: Development/Libraries
101 Requires: %{name} = %{version}-%{release}
102 Requires: device-mapper-devel >= 1.02.27
103 Requires: libargon2-devel >= 20171227
104 Requires: libgcrypt-devel >= 1.6.1
105 Provides: cryptsetup-luks-devel = %{version}-%{release}
106 Obsoletes: cryptsetup-luks-devel < 1.4.1-2
109 Header files for cryptsetup library.
111 %description devel -l pl.UTF-8
112 Pliki nagłówkowe biblioteki cryptsetup.
115 Summary: Static cryptsetup library
116 Summary(pl.UTF-8): Statyczna biblioteka cryptsetup
117 Group: Development/Libraries
118 Requires: %{name}-devel = %{version}-%{release}
119 Provides: cryptsetup-luks-static = %{version}-%{release}
120 Obsoletes: cryptsetup-luks-static < 1.4.1-2
123 Static version of cryptsetup library.
125 %description static -l pl.UTF-8
126 Statyczna wersja biblioteki cryptsetup.
128 %package -n python-pycryptsetup
129 Summary: Python binding for cryptsetup library
130 Summary(pl.UTF-8): Wiązanie Pythona do biblioteki cryptsetup
131 Group: Libraries/Python
132 Requires: %{name} = %{version}-%{release}
133 %pyrequires_eq python-libs
135 %description -n python-pycryptsetup
136 Python binding for cryptsetup library.
138 %description -n python-pycryptsetup -l pl.UTF-8
139 Wiązanie Pythona do biblioteki cryptsetup.
142 Summary: LUKS for dm-crypt implemented in cryptsetup - initrd version
143 Summary(pl.UTF-8): LUKS dla dm-crypta zaimplementowany w cryptsetup - wersja initrd
145 Requires: udev-initrd >= 1:115
146 Provides: cryptsetup-luks-initrd = %{version}-%{release}
147 Obsoletes: cryptsetup-luks-initrd < 1.4.1-2
148 Conflicts: geninitrd < 10000.10
151 This package contains implementation of LUKS for dm-crypt implemented
152 in cryptsetup - statically linked for initrd.
154 %description initrd -l pl.UTF-8
155 Ten pakiet zawiera implementację LUKS dla dm-crypta zaimplementowaną w
156 cryptsetup - wersję statycznie zlinkowaną dla initrd.
160 %{?with_diet:%patch0 -p1}
176 CC="diet ${CC#ccache } %{rpmcppflags} %{rpmcflags} %{rpmldflags} -Os" \
178 ac_cv_lib_popt_poptConfigFileToString=yes \
179 ac_cv_lib_sepol_sepol_bool_set=no \
180 ac_cv_lib_selinux_is_selinux_enabled=no \
182 %if "%{?configure_cache}" == "1"
183 --cache-file=%{?configure_cache_file}%{!?configure_cache_file:configure}-initrd.cache \
186 --disable-silent-rules \
189 --enable-static-cryptsetup \
190 --with-tmpfilesdir=%{systemdtmpfilesdir} \
191 --with-luks2-lock-path=/var/run/%{name}
196 # we have to do it by hand cause libtool "know better" and forces
197 # static libs from /usr/lib
199 diet ${CC#ccache } %{rpmcppflags} %{rpmcflags} %{rpmldflags} -Os -I. -I./lib -static \
200 -o cryptsetup-initrd src/cryptsetup.c ./lib/.libs/libcryptsetup.a \
201 -lpopt -lgcrypt -lgpg-error -ldevmapper -luuid -lcompat
204 mv src/cryptsetup cryptsetup-initrd
212 %{?with_passwdqc:--enable-passwdqc=/etc/passwdqc.conf} \
213 %{?with_pwquality:--enable-pwquality} \
214 %{?with_python:--enable-python} \
215 --disable-silent-rules \
218 --with-tmpfilesdir=%{systemdtmpfilesdir} \
219 --with-luks2-lock-path=/var/run/%{name}
222 %{?with_tests:%{__make} check}
225 rm -rf $RPM_BUILD_ROOT
227 install -d $RPM_BUILD_ROOT/var/run/cryptsetup
230 DESTDIR=$RPM_BUILD_ROOT
232 install -d $RPM_BUILD_ROOT/%{_lib}
233 mv -f $RPM_BUILD_ROOT%{_libdir}/libcryptsetup.so.* $RPM_BUILD_ROOT/%{_lib}
234 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcryptsetup.so.*.*.*) \
235 $RPM_BUILD_ROOT%{_libdir}/libcryptsetup.so
238 install -d $RPM_BUILD_ROOT%{_libdir}/initrd
239 install -p cryptsetup-initrd $RPM_BUILD_ROOT%{_libdir}/initrd/cryptsetup
242 %{?with_python:%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/pycryptsetup.la}
247 rm -rf $RPM_BUILD_ROOT
249 %post -p /sbin/ldconfig
250 %postun -p /sbin/ldconfig
252 %files -f %{name}.lang
253 %defattr(644,root,root,755)
254 %doc AUTHORS FAQ README TODO docs/{ChangeLog.old,v*-ReleaseNotes,on-disk-format.pdf}
255 %attr(755,root,root) %{_sbindir}/cryptsetup
256 %attr(755,root,root) %{_sbindir}/cryptsetup-reencrypt
257 %attr(755,root,root) %{_sbindir}/integritysetup
258 %attr(755,root,root) %{_sbindir}/veritysetup
259 %attr(755,root,root) /%{_lib}/libcryptsetup.so.*.*.*
260 %attr(755,root,root) %ghost /%{_lib}/libcryptsetup.so.12
261 %{_mandir}/man8/cryptsetup.8*
262 %{_mandir}/man8/cryptsetup-reencrypt.8*
263 %{_mandir}/man8/integritysetup.8*
264 %{_mandir}/man8/veritysetup.8*
265 %{systemdtmpfilesdir}/cryptsetup.conf
266 %attr(700,root,root) %dir /var/run/cryptsetup
269 %defattr(644,root,root,755)
270 %attr(755,root,root) %{_libdir}/libcryptsetup.so
271 %{_libdir}/libcryptsetup.la
272 %{_includedir}/libcryptsetup.h
273 %{_pkgconfigdir}/libcryptsetup.pc
276 %defattr(644,root,root,755)
277 %{_libdir}/libcryptsetup.a
280 %files -n python-pycryptsetup
281 %defattr(644,root,root,755)
282 %attr(755,root,root) %{py_sitedir}/pycryptsetup.so
287 %defattr(644,root,root,755)
288 %attr(755,root,root) %{_libdir}/initrd/cryptsetup