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