]> git.pld-linux.org Git - packages/cryptsetup.git/blame - cryptsetup.spec
up to 2.7.2
[packages/cryptsetup.git] / cryptsetup.spec
CommitLineData
5eb10616
JB
1#
2# Conditonal build:
3ee30d05 3%bcond_with initrd # don't build initrd version
c2608e02 4%bcond_with dietlibc # build initrd version with static glibc instead of dietlibc
b240e50f 5%bcond_with gcrypt # use gcrypt for crypto (instead of openssl)
f13756af
JB
6%bcond_with passwdqc # password quality checking via libpasswdqc [conflicts with pwquality]
7%bcond_with pwquality # password quality checking via libpwquality [conflicts with passwdqc]
92620a6e 8%bcond_without static_libs # static library
2b412273 9%bcond_without tests # "make check" run
ef897fda 10
2488c838 11Summary: LUKS for dm-crypt implemented in cryptsetup
29f5822a 12Summary(pl.UTF-8): LUKS dla dm-crypta zaimplementowany w cryptsetup
ef897fda 13Name: cryptsetup
53196639 14Version: 2.7.2
4e79a0b3 15Release: 1
d7593791 16License: GPL v2
6351d6a5 17Group: Base
1ce5308b 18Source0: https://www.kernel.org/pub/linux/utils/cryptsetup/v2.7/%{name}-%{version}.tar.xz
53196639 19# Source0-md5: d13fa531c37f05824d67ae92f3c6f73b
ef897fda 20Patch0: diet.patch
b3d74a9a 21Patch1: no_pty_tests.patch
207d2b78 22URL: https://gitlab.com/cryptsetup/cryptsetup
c905abc3 23BuildRequires: autoconf >= 2.67
d4db5a85
JB
24BuildRequires: automake >= 1:1.12
25BuildRequires: device-mapper-devel >= 1.02.27
b5de8ad0 26BuildRequires: gettext-tools >= 0.21
e13ad7cf
AM
27BuildRequires: json-c-devel
28BuildRequires: libargon2-devel >= 20171227
021afb9d 29BuildRequires: libblkid-devel
b240e50f 30%{?with_gcrypt:BuildRequires: libgcrypt-devel >= 1.6.1}
d4db5a85 31BuildRequires: libgpg-error-devel
196834e2 32%{?with_pwquality:BuildRequires: libpwquality-devel >= 1.0.0}
0b90291e
JB
33BuildRequires: libselinux-devel
34BuildRequires: libsepol-devel
b5de8ad0 35BuildRequires: libssh-devel
c905abc3 36BuildRequires: libtool >= 2:2.0
0b90291e 37BuildRequires: libuuid-devel
1ce5308b 38BuildRequires: linux-libc-headers >= 7:6.4
b240e50f 39%{!?with_gcrypt:BuildRequires: openssl-devel >= 0.9.8}
f13756af 40%{?with_passwdqc:BuildRequires: passwdqc-devel}
d4db5a85 41BuildRequires: pkgconfig
79b6c53c 42BuildRequires: popt-devel >= 1.7
92620a6e 43BuildRequires: rpmbuild(macros) >= 1.527
4e79a0b3 44BuildRequires: ruby-asciidoctor
15278b5b
JB
45BuildRequires: tar >= 1:1.22
46BuildRequires: xz
d07d45f7 47%if %{with initrd}
21d48aec
JR
48BuildRequires: libgpg-error-static
49 %if %{with dietlibc}
df4d3321 50BuildRequires: device-mapper-dietlibc >= 1.02.27
ef897fda 51BuildRequires: dietlibc-static
15278b5b 52BuildRequires: libgcrypt-dietlibc >= 1.6.1
21d48aec
JR
53BuildRequires: libuuid-dietlibc
54BuildRequires: popt-dietlibc
55 %else
df4d3321 56BuildRequires: device-mapper-static >= 1.02.27
15278b5b 57BuildRequires: libgcrypt-static >= 1.6.1
a6fd3218 58BuildRequires: libselinux-static
8d9e50de 59BuildRequires: libsepol-static
a6fd3218 60BuildRequires: libuuid-static
61BuildRequires: popt-static
c2608e02 62BuildRequires: udev-static
21d48aec 63 %endif
5eb10616 64%endif
2cbcb55c 65Requires: %{name}-libs%{?_isa} = %{version}-%{release}
d1a372bb 66Requires: device-mapper >= 1.02.27
b240e50f 67%{?with_gcrypt:Requires: libgcrypt >= 1.6.1}
196834e2 68%{?with_pwquality:Requires: libpwquality >= 1.0.0}
79b6c53c 69Requires: popt >= 1.7
f96aa109
JR
70Provides: cryptsetup-luks = %{version}-%{release}
71Obsoletes: cryptsetup-luks < 1.4.1-2
3ee30d05 72%{!?with_initrd:Obsoletes: cryptsetup-initrd < %{version}-%{release}}
b240e50f 73Obsoletes: python-pycryptsetup < 2.1.0
751c89df
ER
74Conflicts: udev < 1:118-1
75Conflicts: udev-core < 1:115
6351d6a5 76BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
77
78%define _sbindir /sbin
79
80%description
6e98e6fb 81LUKS is the upcoming standard for Linux hard disk encryption. By
82providing a standard on-disk-format, it does not only facilitate
83compatibility among distributions, but also provide secure management
84of multiple user passwords. In contrast to existing solution, LUKS
85stores all setup necessary setup information in the partition header,
86enabling the user to transport or migrate his data seamlessly.
6351d6a5 87
6e98e6fb 88This package contains implementation of LUKS for dm-crypt implemented
89in cryptsetup.
6351d6a5 90
77f30028
JR
91%description -l pl.UTF-8
92LUKS to nadchodzący standard linuksowego szyfrowania twardego dysku.
93Dostarczając standardowy format danych na dysku nie tylko ułatwia
94utrzymanie kompatybilności między dystrybucjami, ale także dostarcza
95bezpieczne zarządzanie wieloma hasłami użytkowników. W przeciwieństwie
96do istniejącego rozwiązania LUKS przechowuje wszystkie potrzebne
97informacje o konfiguracji w nagłówku partycji, pozwalając
98użytkownikowi przenosić lub migrować dane w sposób przezroczysty.
12cca230 99
77f30028 100Ten pakiet zawiera implementację LUKS dla dm-crytpa zaimplementowaną w
12cca230
JB
101cryptsetup.
102
2cbcb55c
JP
103%package libs
104Summary: cryptsetup shared library
105Summary(pl.UTF-8): Biblioteka współdzielona cryptsetup
106Group: Libraries
107
108%description libs
109cryptsetup shared library.
110
111%description libs -l pl.UTF-8
112Biblioteka współdzielona cryptsetup.
113
6351d6a5 114%package devel
115Summary: Header files for cryptsetup library
29f5822a 116Summary(pl.UTF-8): Pliki nagłówkowe biblioteki cryptsetup
6351d6a5 117Group: Development/Libraries
2cbcb55c 118Requires: %{name}-libs%{?_isa} = %{version}-%{release}
d4db5a85 119Requires: device-mapper-devel >= 1.02.27
6007b91c 120Requires: json-c-devel
de879d31 121Requires: libargon2-devel >= 20171227
6007b91c 122Requires: libblkid-devel
b240e50f 123%{?with_gcrypt:Requires: libgcrypt-devel >= 1.6.1}
6007b91c 124Requires: libuuid-devel
b240e50f 125%{!?with_gcrypt:Requires: openssl-devel >= 0.9.8}
ef897fda
ER
126Provides: cryptsetup-luks-devel = %{version}-%{release}
127Obsoletes: cryptsetup-luks-devel < 1.4.1-2
6351d6a5 128
129%description devel
130Header files for cryptsetup library.
131
77f30028
JR
132%description devel -l pl.UTF-8
133Pliki nagłówkowe biblioteki cryptsetup.
6351d6a5 134
135%package static
136Summary: Static cryptsetup library
29f5822a 137Summary(pl.UTF-8): Statyczna biblioteka cryptsetup
6351d6a5 138Group: Development/Libraries
139Requires: %{name}-devel = %{version}-%{release}
ef897fda
ER
140Provides: cryptsetup-luks-static = %{version}-%{release}
141Obsoletes: cryptsetup-luks-static < 1.4.1-2
6351d6a5 142
143%description static
144Static version of cryptsetup library.
145
77f30028 146%description static -l pl.UTF-8
6351d6a5 147Statyczna wersja biblioteki cryptsetup.
148
d07d45f7
ER
149%package initrd
150Summary: LUKS for dm-crypt implemented in cryptsetup - initrd version
1c89131c 151Summary(pl.UTF-8): LUKS dla dm-crypta zaimplementowany w cryptsetup - wersja initrd
d07d45f7 152Group: Base
311e3692 153Requires: udev-initrd >= 1:115
ef897fda
ER
154Provides: cryptsetup-luks-initrd = %{version}-%{release}
155Obsoletes: cryptsetup-luks-initrd < 1.4.1-2
2dd5e1c3 156Conflicts: geninitrd < 10000.10
d07d45f7
ER
157
158%description initrd
159This package contains implementation of LUKS for dm-crypt implemented
1c89131c
JB
160in cryptsetup - statically linked for initrd.
161
162%description initrd -l pl.UTF-8
ef897fda
ER
163Ten pakiet zawiera implementację LUKS dla dm-crypta zaimplementowaną w
164cryptsetup - wersję statycznie zlinkowaną dla initrd.
d07d45f7 165
6351d6a5 166%prep
ef897fda 167%setup -q
396f27d3 168%{?with_diet:%patch0 -p1}
b3d74a9a 169%patch1 -p1
6351d6a5 170
c627e74c
JB
171%{__rm} po/stamp-po
172
6351d6a5 173%build
8d9e50de 174%{__gettextize}
d7593791 175%{__libtoolize}
8d9e50de 176%{__aclocal} -I m4
177%{__autoconf}
d7593791 178%{__autoheader}
8d9e50de 179%{__automake}
d07d45f7
ER
180
181%if %{with initrd}
802ed4ef 182CC="%{__cc}"
a6fd3218 183%configure \
21d48aec 184%if %{with dietlibc}
04af2f11 185 CC="diet ${CC#ccache } %{rpmcppflags} %{rpmcflags} %{rpmldflags} -Os" \
8a7a87e4 186 LIBS="-lcompat" \
21d48aec
JR
187 ac_cv_lib_popt_poptConfigFileToString=yes \
188 ac_cv_lib_sepol_sepol_bool_set=no \
189 ac_cv_lib_selinux_is_selinux_enabled=no \
802ed4ef
ER
190%endif
191%if "%{?configure_cache}" == "1"
192 --cache-file=%{?configure_cache_file}%{!?configure_cache_file:configure}-initrd.cache \
21d48aec 193%endif
196834e2 194 --disable-nls \
8a7a87e4 195 --disable-shared \
b240e50f 196 --disable-silent-rules \
5eb10616 197 --enable-static \
e13ad7cf 198 --enable-static-cryptsetup \
b240e50f
JB
199 --with-crypto-backend=gcrypt \
200 --with-luks2-lock-path=/var/run/%{name} \
201 --with-tmpfilesdir=%{systemdtmpfilesdir}
21d48aec 202
21d48aec
JR
203%{__make} -C lib
204
205%if %{with dietlibc}
206# we have to do it by hand cause libtool "know better" and forces
207# static libs from /usr/lib
802ed4ef 208CC="%{__cc}"
04af2f11 209diet ${CC#ccache } %{rpmcppflags} %{rpmcflags} %{rpmldflags} -Os -I. -I./lib -static \
593621cb
JR
210 -o cryptsetup-initrd src/cryptsetup.c ./lib/.libs/libcryptsetup.a \
211 -lpopt -lgcrypt -lgpg-error -ldevmapper -luuid -lcompat
21d48aec
JR
212%else
213%{__make} -C src
6007b91c 214%{__mv} src/cryptsetup cryptsetup-initrd
21d48aec 215%endif
23904b26 216
d07d45f7
ER
217%{__make} clean
218%endif
219
220%configure \
e13ad7cf 221 --enable-libargon2 \
f13756af
JB
222 %{?with_passwdqc:--enable-passwdqc=/etc/passwdqc.conf} \
223 %{?with_pwquality:--enable-pwquality} \
021afb9d 224 --disable-silent-rules \
92620a6e 225 %{__enable_disable static_libs static} \
021afb9d 226 --enable-udev \
b240e50f
JB
227 %{?with_gcrypt:--with-crypto-backend=gcrypt} \
228 --with-luks2-lock-path=/var/run/%{name} \
229 --with-tmpfilesdir=%{systemdtmpfilesdir}
6351d6a5 230%{__make}
231
b0d1eeaa
AM
232%{?with_tests:%{__make} check}
233
6351d6a5 234%install
235rm -rf $RPM_BUILD_ROOT
236
e13ad7cf
AM
237install -d $RPM_BUILD_ROOT/var/run/cryptsetup
238
6351d6a5 239%{__make} install \
240 DESTDIR=$RPM_BUILD_ROOT
241
242install -d $RPM_BUILD_ROOT/%{_lib}
5be6882d 243%{__mv} $RPM_BUILD_ROOT%{_libdir}/libcryptsetup.so.* $RPM_BUILD_ROOT/%{_lib}
d7593791 244ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcryptsetup.so.*.*.*) \
6351d6a5 245 $RPM_BUILD_ROOT%{_libdir}/libcryptsetup.so
246
92620a6e
JP
247%{__rm} $RPM_BUILD_ROOT%{_libdir}/cryptsetup/libcryptsetup-*.la
248%{?with_static_libs:%{__rm} $RPM_BUILD_ROOT%{_libdir}/cryptsetup/libcryptsetup-*.a}
5be6882d 249
d07d45f7 250%if %{with initrd}
927d0cdf 251install -d $RPM_BUILD_ROOT%{_libdir}/initrd
802ed4ef 252install -p cryptsetup-initrd $RPM_BUILD_ROOT%{_libdir}/initrd/cryptsetup
d07d45f7
ER
253%endif
254
ef897fda 255%find_lang %{name}
6351d6a5 256
257%clean
258rm -rf $RPM_BUILD_ROOT
259
2cbcb55c
JP
260%post libs -p /sbin/ldconfig
261%postun libs -p /sbin/ldconfig
6351d6a5 262
ef897fda 263%files -f %{name}.lang
6351d6a5 264%defattr(644,root,root,755)
4e79a0b3 265%doc AUTHORS FAQ.md README.md docs/{ChangeLog.old,v*-ReleaseNotes,on-disk-format.pdf}
6351d6a5 266%attr(755,root,root) %{_sbindir}/cryptsetup
5be6882d 267%attr(755,root,root) %{_sbindir}/cryptsetup-ssh
e13ad7cf 268%attr(755,root,root) %{_sbindir}/integritysetup
56c60c79 269%attr(755,root,root) %{_sbindir}/veritysetup
5be6882d
JB
270%dir %{_libdir}/cryptsetup
271%attr(755,root,root) %{_libdir}/cryptsetup/libcryptsetup-token-ssh.so
d7593791 272%{_mandir}/man8/cryptsetup.8*
4e79a0b3 273%{_mandir}/man8/cryptsetup-*.8*
e13ad7cf 274%{_mandir}/man8/integritysetup.8*
56c60c79 275%{_mandir}/man8/veritysetup.8*
e13ad7cf
AM
276%{systemdtmpfilesdir}/cryptsetup.conf
277%attr(700,root,root) %dir /var/run/cryptsetup
6351d6a5 278
2cbcb55c
JP
279%files libs
280%defattr(644,root,root,755)
281%attr(755,root,root) /%{_lib}/libcryptsetup.so.*.*.*
282%attr(755,root,root) %ghost /%{_lib}/libcryptsetup.so.12
283
6351d6a5 284%files devel
285%defattr(644,root,root,755)
286%attr(755,root,root) %{_libdir}/libcryptsetup.so
287%{_libdir}/libcryptsetup.la
d7593791 288%{_includedir}/libcryptsetup.h
79b6c53c 289%{_pkgconfigdir}/libcryptsetup.pc
6351d6a5 290
92620a6e 291%if %{with static_libs}
a6fd3218 292%files static
293%defattr(644,root,root,755)
294%{_libdir}/libcryptsetup.a
92620a6e 295%endif
d07d45f7
ER
296
297%if %{with initrd}
298%files initrd
299%defattr(644,root,root,755)
927d0cdf 300%attr(755,root,root) %{_libdir}/initrd/cryptsetup
d07d45f7 301%endif
This page took 0.417147 seconds and 4 git commands to generate.