]> git.pld-linux.org Git - packages/cryptsetup.git/blob - cryptsetup.spec
- added dietlib-static to BRs for /usr/lib/dietlibc/*/libc.a
[packages/cryptsetup.git] / cryptsetup.spec
1 #
2 # Conditonal build:
3 %bcond_without  initrd          # don't build initrd version
4 %bcond_without  dietlibc        # build initrd version with static glibc instead of dietlibc
5 #
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
9 Name:           cryptsetup-luks
10 Version:        1.0.6
11 Release:        10
12 License:        GPL v2
13 Group:          Base
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
35 %if %{with initrd}
36 BuildRequires:  libgpg-error-static
37         %if %{with dietlibc}
38 BuildRequires:  device-mapper-dietlibc
39 BuildRequires:  dietlibc-static
40 BuildRequires:  libgcrypt-dietlibc
41 BuildRequires:  libuuid-dietlibc
42 BuildRequires:  popt-dietlibc
43         %else
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
50         %endif
51 %endif
52 Provides:       cryptsetup = %{version}
53 Obsoletes:      cryptsetup
54 Conflicts:      udev < 1:118-1
55 Conflicts:      udev-core < 1:115
56 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
57
58 %define         _sbindir        /sbin
59 %define         _noautoreqdep   libcryptsetup.so.0
60
61 %description
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.
68
69 This package contains implementation of LUKS for dm-crypt implemented
70 in cryptsetup.
71
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.
80
81 Ten pakiet zawiera implementację LUKS dla dm-crytpa zaimplementowaną w
82 cryptsetup.
83
84 %package devel
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
92
93 %description devel
94 Header files for cryptsetup library.
95
96 %description devel -l pl.UTF-8
97 Pliki nagłówkowe biblioteki cryptsetup.
98
99 %package static
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
105
106 %description static
107 Static version of cryptsetup library.
108
109 %description static -l pl.UTF-8
110 Statyczna wersja biblioteki cryptsetup.
111
112 %package initrd
113 Summary:        LUKS for dm-crypt implemented in cryptsetup - initrd version
114 Group:          Base
115 Requires:       udev-initrd >= 1:115
116 Conflicts:      geninitrd < 10000.10
117
118 %description initrd
119 This package contains implementation of LUKS for dm-crypt implemented
120 in cryptsetup - staticaly linked for initrd.
121
122 %package initramfs
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
125 Group:          Base
126 Requires:       %{name} = %{version}-%{release}
127 Requires:       initramfs-tools
128
129 %description initramfs
130 LUKS for dm-crypt implemented in cryptsetup - support scripts
131 for initramfs-tools.
132
133 %description initramfs -l pl.UTF-8
134 LUKS dla dm-crypta zaimplementowany w cryptsetup - skrypty dla
135 initramfs-tools.
136
137 %prep
138 %setup -q -n %{realname}-%{version}
139 %patch1 -p1
140 %patch2 -p1
141 %patch3 -p1
142
143 install %{SOURCE5} README.initramfs
144
145 %build
146 %{__gettextize}
147 %{__libtoolize}
148 %{__aclocal} -I m4
149 %{__autoconf}
150 %{__autoheader}
151 %{__automake}
152
153 %if %{with initrd}
154 %configure \
155 %if %{with dietlibc}
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 \
160 %endif
161         --disable-shared-library \
162         --enable-static \
163         --enable-static-cryptsetup \
164         --disable-nls
165
166 %{__make} -C luks
167 %{__make} -C lib
168
169 %if %{with dietlibc}
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
175 %else
176 %{__make} -C src
177 mv src/cryptsetup cryptsetup-initrd
178 %endif
179
180 %{__make} clean
181 %endif
182
183 %configure \
184         --enable-static
185 %{__make}
186
187 %install
188 rm -rf $RPM_BUILD_ROOT
189 install -d $RPM_BUILD_ROOT%{_datadir}/initramfs-tools/{conf-hooks.d,hooks,scripts/local-top}
190
191 %{__make} install \
192         DESTDIR=$RPM_BUILD_ROOT
193
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
198
199 %if %{with initrd}
200 install -d $RPM_BUILD_ROOT%{_libdir}/initrd
201 install cryptsetup-initrd $RPM_BUILD_ROOT%{_libdir}/initrd/cryptsetup
202 %endif
203
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
208
209 %find_lang %{realname}
210
211 %clean
212 rm -rf $RPM_BUILD_ROOT
213
214 %post   -p /sbin/ldconfig
215 %postun -p /sbin/ldconfig
216
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*
224
225 %files devel
226 %defattr(644,root,root,755)
227 %attr(755,root,root) %{_libdir}/libcryptsetup.so
228 %{_libdir}/libcryptsetup.la
229 %{_includedir}/libcryptsetup.h
230
231 %files static
232 %defattr(644,root,root,755)
233 %{_libdir}/libcryptsetup.a
234
235 %if %{with initrd}
236 %files initrd
237 %defattr(644,root,root,755)
238 %attr(755,root,root) %{_libdir}/initrd/cryptsetup
239 %endif
240
241 %files initramfs
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
This page took 0.080321 seconds and 3 git commands to generate.