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