3 %bcond_without initrd # don't build initrd version
4 %bcond_without dietlibc # build initrd version with static glibc instead of dietlibc
6 %define realname cryptsetup
7 Summary: LUKS for dm-crypt implemented in cryptsetup
8 Summary(pl.UTF-8): LUKS dla dm-crypta zaimplementowany w cryptsetup
14 Source0: http://luks.endorphin.org/source/%{realname}-%{version}.tar.bz2
15 # Source0-md5: 00d452eb7a76e39f5749545d48934a10
16 Source1: %{name}-initramfs-root-conf
17 Source2: %{name}-initramfs-root-hook
18 Source3: %{name}-initramfs-root-local-top
19 Source4: %{name}-initramfs-passdev-hook
20 Source5: %{name}-initramfs-README
21 Patch1: %{name}-nostatic.patch
22 Patch2: %{name}-udev.patch
23 Patch3: %{name}-diet.patch
24 URL: http://luks.endorphin.org/
25 BuildRequires: autoconf
26 BuildRequires: automake
27 BuildRequires: device-mapper-devel
28 BuildRequires: gettext-devel
29 BuildRequires: libgcrypt-devel >= 1.1.42
30 BuildRequires: libselinux-devel
31 BuildRequires: libsepol-devel
32 BuildRequires: libtool
33 BuildRequires: libuuid-devel
34 BuildRequires: popt-devel
36 BuildRequires: libgpg-error-static
38 BuildRequires: device-mapper-dietlibc
39 BuildRequires: dietlibc-static
40 BuildRequires: libgcrypt-dietlibc
41 BuildRequires: libuuid-dietlibc
42 BuildRequires: popt-dietlibc
44 BuildRequires: device-mapper-static >= 1.02.07
45 BuildRequires: libgcrypt-static >= 1.1.42
46 BuildRequires: libselinux-static
47 BuildRequires: libsepol-static
48 BuildRequires: libuuid-static
49 BuildRequires: popt-static
52 Provides: cryptsetup = %{version}
54 Conflicts: udev < 1:118-1
55 Conflicts: udev-core < 1:115
56 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
58 %define _sbindir /sbin
59 %define _noautoreqdep libcryptsetup.so.0
62 LUKS is the upcoming standard for Linux hard disk encryption. By
63 providing a standard on-disk-format, it does not only facilitate
64 compatibility among distributions, but also provide secure management
65 of multiple user passwords. In contrast to existing solution, LUKS
66 stores all setup necessary setup information in the partition header,
67 enabling the user to transport or migrate his data seamlessly.
69 This package contains implementation of LUKS for dm-crypt implemented
72 %description -l pl.UTF-8
73 LUKS to nadchodzący standard linuksowego szyfrowania twardego dysku.
74 Dostarczając standardowy format danych na dysku nie tylko ułatwia
75 utrzymanie kompatybilności między dystrybucjami, ale także dostarcza
76 bezpieczne zarządzanie wieloma hasłami użytkowników. W przeciwieństwie
77 do istniejącego rozwiązania LUKS przechowuje wszystkie potrzebne
78 informacje o konfiguracji w nagłówku partycji, pozwalając
79 użytkownikowi przenosić lub migrować dane w sposób przezroczysty.
81 Ten pakiet zawiera implementację LUKS dla dm-crytpa zaimplementowaną w
85 Summary: Header files for cryptsetup library
86 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki cryptsetup
87 Group: Development/Libraries
88 Requires: %{name} = %{version}-%{release}
89 Requires: device-mapper-devel
90 Requires: libgcrypt-devel >= 1.1.42
91 Obsoletes: cryptsetup-devel
94 Header files for cryptsetup library.
96 %description devel -l pl.UTF-8
97 Pliki nagłówkowe biblioteki cryptsetup.
100 Summary: Static cryptsetup library
101 Summary(pl.UTF-8): Statyczna biblioteka cryptsetup
102 Group: Development/Libraries
103 Requires: %{name}-devel = %{version}-%{release}
104 Obsoletes: cryptsetup-static
107 Static version of cryptsetup library.
109 %description static -l pl.UTF-8
110 Statyczna wersja biblioteki cryptsetup.
113 Summary: LUKS for dm-crypt implemented in cryptsetup - initrd version
115 Requires: udev-initrd >= 1:115
116 Conflicts: geninitrd < 10000.10
119 This package contains implementation of LUKS for dm-crypt implemented
120 in cryptsetup - staticaly linked for initrd.
123 Summary: LUKS for dm-crypt implemented in cryptsetup - support scripts for initramfs-tools
124 Summary(pl.UTF-8): LUKS dla dm-crypta zaimplementowany w cryptsetup - skrypty dla initramfs-tools
126 Requires: %{name} = %{version}-%{release}
127 Requires: initramfs-tools
129 %description initramfs
130 LUKS for dm-crypt implemented in cryptsetup - support scripts
133 %description initramfs -l pl.UTF-8
134 LUKS dla dm-crypta zaimplementowany w cryptsetup - skrypty dla
138 %setup -q -n %{realname}-%{version}
143 install %{SOURCE5} README.initramfs
156 CC="diet %{__cc} %{rpmcflags} %{rpmldflags} -Os" \
157 ac_cv_lib_popt_poptConfigFileToString=yes \
158 ac_cv_lib_sepol_sepol_bool_set=no \
159 ac_cv_lib_selinux_is_selinux_enabled=no \
161 --disable-shared-library \
163 --enable-static-cryptsetup \
170 # we have to do it by hand cause libtool "know better" and forces
171 # static libs from /usr/lib
172 diet %{__cc} %{rpmcflags} %{rpmldflags} -Os -I./lib -static \
173 -o cryptsetup-initrd src/cryptsetup.c ./lib/.libs/libcryptsetup.a \
174 -lpopt -lgcrypt -lgpg-error -ldevmapper -luuid -lcompat
177 mv src/cryptsetup cryptsetup-initrd
188 rm -rf $RPM_BUILD_ROOT
189 install -d $RPM_BUILD_ROOT%{_datadir}/initramfs-tools/{conf-hooks.d,hooks,scripts/local-top}
192 DESTDIR=$RPM_BUILD_ROOT
194 install -d $RPM_BUILD_ROOT/%{_lib}
195 mv -f $RPM_BUILD_ROOT%{_libdir}/libcryptsetup.so.* $RPM_BUILD_ROOT/%{_lib}
196 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcryptsetup.so.*.*.*) \
197 $RPM_BUILD_ROOT%{_libdir}/libcryptsetup.so
200 install -d $RPM_BUILD_ROOT%{_libdir}/initrd
201 install cryptsetup-initrd $RPM_BUILD_ROOT%{_libdir}/initrd/cryptsetup
204 install %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/initramfs-tools/conf-hooks.d/cryptsetup
205 install %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/initramfs-tools/hooks/cryptroot
206 install %{SOURCE3} $RPM_BUILD_ROOT%{_datadir}/initramfs-tools/scripts/local-top/cryptroot
207 install %{SOURCE4} $RPM_BUILD_ROOT%{_datadir}/initramfs-tools/hooks/cryptpassdev
209 %find_lang %{realname}
212 rm -rf $RPM_BUILD_ROOT
214 %post -p /sbin/ldconfig
215 %postun -p /sbin/ldconfig
217 %files -f %{realname}.lang
218 %defattr(644,root,root,755)
219 %doc AUTHORS ChangeLog TODO
220 %attr(755,root,root) %{_sbindir}/cryptsetup
221 %attr(755,root,root) /%{_lib}/libcryptsetup.so.*.*.*
222 %attr(755,root,root) %ghost /%{_lib}/libcryptsetup.so.0
223 %{_mandir}/man8/cryptsetup.8*
226 %defattr(644,root,root,755)
227 %attr(755,root,root) %{_libdir}/libcryptsetup.so
228 %{_libdir}/libcryptsetup.la
229 %{_includedir}/libcryptsetup.h
232 %defattr(644,root,root,755)
233 %{_libdir}/libcryptsetup.a
237 %defattr(644,root,root,755)
238 %attr(755,root,root) %{_libdir}/initrd/cryptsetup
242 %defattr(644,root,root,755)
243 %doc README.initramfs
244 %attr(755,root,root) %{_datadir}/initramfs-tools/conf-hooks.d/cryptsetup
245 %attr(755,root,root) %{_datadir}/initramfs-tools/hooks/cryptroot
246 %attr(755,root,root) %{_datadir}/initramfs-tools/hooks/cryptpassdev
247 %attr(755,root,root) %{_datadir}/initramfs-tools/scripts/local-top/cryptroot