]> git.pld-linux.org Git - packages/cryptsetup.git/blobdiff - cryptsetup.spec
- up to 2.2.2
[packages/cryptsetup.git] / cryptsetup.spec
index 54150eb9a2887097aff963cc088e6ea90b8a6537..8541a1b90102fea558c7f4f93f17144e88f6fef3 100644 (file)
@@ -1,55 +1,68 @@
 #
 # Conditonal build:
-%bcond_without initrd          # don't build initrd version
-%bcond_without dietlibc        # build initrd version with static glibc instead of dietlibc
-#
-%define        realname        cryptsetup
+%bcond_with    initrd          # don't build initrd version
+%bcond_with    dietlibc        # build initrd version with static glibc instead of dietlibc
+%bcond_with    gcrypt          # use gcrypt for crypto (instead of openssl)
+%bcond_with    passwdqc        # password quality checking via libpasswdqc [conflicts with pwquality]
+%bcond_with    pwquality       # password quality checking via libpwquality [conflicts with passwdqc]
+%bcond_without tests           # "make check" run
+
 Summary:       LUKS for dm-crypt implemented in cryptsetup
 Summary(pl.UTF-8):     LUKS dla dm-crypta zaimplementowany w cryptsetup
-Name:          cryptsetup-luks
-Version:       1.1.2
+Name:          cryptsetup
+Version:       2.2.2
 Release:       1
 License:       GPL v2
 Group:         Base
-Source0:       http://cryptsetup.googlecode.com/files/%{realname}-%{version}.tar.bz2
-# Source0-md5: f3928c1f1d49fcee39bb1e8d42fe707a
-Source1:       %{name}-initramfs-root-conf
-Source2:       %{name}-initramfs-root-hook
-Source3:       %{name}-initramfs-root-local-top
-Source4:       %{name}-initramfs-passdev-hook
-Source5:       %{name}-initramfs-README
-Patch0:                %{name}-nostatic.patch
-URL:           http://code.google.com/p/cryptsetup/
-BuildRequires: autoconf >= 2.57
-BuildRequires: automake
-BuildRequires: device-mapper-devel >= 1.02.03
-BuildRequires: gettext-devel >= 0.15
-BuildRequires: libgcrypt-devel >= 1.1.42
+Source0:       https://www.kernel.org/pub/linux/utils/cryptsetup/v2.2/%{name}-%{version}.tar.xz
+# Source0-md5: 2b64ca9ea16e823df359eacf9c02414b
+Patch0:                diet.patch
+URL:           https://gitlab.com/cryptsetup/cryptsetup
+BuildRequires: autoconf >= 2.67
+BuildRequires: automake >= 1:1.12
+BuildRequires: device-mapper-devel >= 1.02.27
+BuildRequires: gettext-tools >= 0.18.3
+BuildRequires: json-c-devel
+BuildRequires: libargon2-devel >= 20171227
+BuildRequires: libblkid-devel
+%{?with_gcrypt:BuildRequires:  libgcrypt-devel >= 1.6.1}
+BuildRequires: libgpg-error-devel
+%{?with_pwquality:BuildRequires:       libpwquality-devel >= 1.0.0}
 BuildRequires: libselinux-devel
 BuildRequires: libsepol-devel
-BuildRequires: libtool
+BuildRequires: libtool >= 2:2.0
 BuildRequires: libuuid-devel
+%{!?with_gcrypt:BuildRequires: openssl-devel >= 0.9.8}
+%{?with_passwdqc:BuildRequires:        passwdqc-devel}
+BuildRequires: pkgconfig
 BuildRequires: popt-devel >= 1.7
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
 %if %{with initrd}
 BuildRequires: libgpg-error-static
        %if %{with dietlibc}
-BuildRequires: device-mapper-dietlibc
-BuildRequires:  dietlibc-static
-BuildRequires: libgcrypt-dietlibc
+BuildRequires: device-mapper-dietlibc >= 1.02.27
+BuildRequires: dietlibc-static
+BuildRequires: libgcrypt-dietlibc >= 1.6.1
 BuildRequires: libuuid-dietlibc
 BuildRequires: popt-dietlibc
        %else
-BuildRequires: device-mapper-static >= 1.02.07
-BuildRequires: libgcrypt-static >= 1.1.42
+BuildRequires: device-mapper-static >= 1.02.27
+BuildRequires: libgcrypt-static >= 1.6.1
 BuildRequires: libselinux-static
 BuildRequires: libsepol-static
 BuildRequires: libuuid-static
 BuildRequires: popt-static
+BuildRequires: udev-static
        %endif
 %endif
+%{?with_gcrypt:Requires:       libgcrypt >= 1.6.1}
+%{?with_pwquality:Requires:    libpwquality >= 1.0.0}
 Requires:      popt >= 1.7
-Provides:      cryptsetup = %{version}
-Obsoletes:     cryptsetup
+Provides:      cryptsetup-luks = %{version}-%{release}
+Obsoletes:     cryptsetup-luks < 1.4.1-2
+%{!?with_initrd:Obsoletes:     cryptsetup-initrd < %{version}-%{release}}
+Obsoletes:     python-pycryptsetup < 2.1.0
 Conflicts:     udev < 1:118-1
 Conflicts:     udev-core < 1:115
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -84,9 +97,12 @@ Summary:     Header files for cryptsetup library
 Summary(pl.UTF-8):     Pliki nagłówkowe biblioteki cryptsetup
 Group:         Development/Libraries
 Requires:      %{name} = %{version}-%{release}
-Requires:      device-mapper-devel
-Requires:      libgcrypt-devel >= 1.1.42
-Obsoletes:     cryptsetup-devel
+Requires:      device-mapper-devel >= 1.02.27
+Requires:      libargon2-devel >= 20171227
+%{?with_gcrypt:Requires:       libgcrypt-devel >= 1.6.1}
+%{!?with_gcrypt:Requires:      openssl-devel >= 0.9.8}
+Provides:      cryptsetup-luks-devel = %{version}-%{release}
+Obsoletes:     cryptsetup-luks-devel < 1.4.1-2
 
 %description devel
 Header files for cryptsetup library.
@@ -99,7 +115,8 @@ Summary:     Static cryptsetup library
 Summary(pl.UTF-8):     Statyczna biblioteka cryptsetup
 Group:         Development/Libraries
 Requires:      %{name}-devel = %{version}-%{release}
-Obsoletes:     cryptsetup-static
+Provides:      cryptsetup-luks-static = %{version}-%{release}
+Obsoletes:     cryptsetup-luks-static < 1.4.1-2
 
 %description static
 Static version of cryptsetup library.
@@ -109,34 +126,26 @@ Statyczna wersja biblioteki cryptsetup.
 
 %package initrd
 Summary:       LUKS for dm-crypt implemented in cryptsetup - initrd version
+Summary(pl.UTF-8):     LUKS dla dm-crypta zaimplementowany w cryptsetup - wersja initrd
 Group:         Base
 Requires:      udev-initrd >= 1:115
+Provides:      cryptsetup-luks-initrd = %{version}-%{release}
+Obsoletes:     cryptsetup-luks-initrd < 1.4.1-2
 Conflicts:     geninitrd < 10000.10
 
 %description initrd
 This package contains implementation of LUKS for dm-crypt implemented
-in cryptsetup - staticaly linked for initrd.
+in cryptsetup - statically linked for initrd.
 
-%package initramfs
-Summary:       LUKS for dm-crypt implemented in cryptsetup - support scripts for initramfs-tools
-Summary(pl.UTF-8):     LUKS dla dm-crypta zaimplementowany w cryptsetup - skrypty dla initramfs-tools
-Group:         Base
-Requires:      %{name} = %{version}-%{release}
-Requires:      initramfs-tools
-
-%description initramfs
-LUKS for dm-crypt implemented in cryptsetup - support scripts
-for initramfs-tools.
-
-%description initramfs -l pl.UTF-8
-LUKS dla dm-crypta zaimplementowany w cryptsetup - skrypty dla
-initramfs-tools.
+%description initrd -l pl.UTF-8
+Ten pakiet zawiera implementację LUKS dla dm-crypta zaimplementowaną w
+cryptsetup - wersję statycznie zlinkowaną dla initrd.
 
 %prep
-%setup -q -n %{realname}-%{version}
-%patch0 -p1
+%setup -q
+%{?with_diet:%patch0 -p1}
 
-install %{SOURCE5} README.initramfs
+%{__rm} po/stamp-po
 
 %build
 %{__gettextize}
@@ -147,25 +156,34 @@ install %{SOURCE5} README.initramfs
 %{__automake}
 
 %if %{with initrd}
+CC="%{__cc}"
 %configure \
 %if %{with dietlibc}
-       CC="diet %{__cc} %{rpmcflags} %{rpmldflags} -Os" \
+       CC="diet ${CC#ccache } %{rpmcppflags} %{rpmcflags} %{rpmldflags} -Os" \
+       LIBS="-lcompat" \
        ac_cv_lib_popt_poptConfigFileToString=yes \
        ac_cv_lib_sepol_sepol_bool_set=no \
        ac_cv_lib_selinux_is_selinux_enabled=no \
 %endif
-       --disable-shared-library \
+%if "%{?configure_cache}" == "1"
+       --cache-file=%{?configure_cache_file}%{!?configure_cache_file:configure}-initrd.cache \
+%endif
+       --disable-nls \
+       --disable-shared \
+       --disable-silent-rules \
        --enable-static \
        --enable-static-cryptsetup \
-       --disable-nls
+       --with-crypto-backend=gcrypt \
+       --with-luks2-lock-path=/var/run/%{name} \
+       --with-tmpfilesdir=%{systemdtmpfilesdir}
 
-%{__make} -C luks
 %{__make} -C lib
 
 %if %{with dietlibc}
 # we have to do it by hand cause libtool "know better" and forces
 # static libs from /usr/lib
-diet %{__cc} %{rpmcflags} %{rpmldflags} -Os -I./lib -static \
+CC="%{__cc}"
+diet ${CC#ccache } %{rpmcppflags} %{rpmcflags} %{rpmldflags} -Os -I. -I./lib -static \
        -o cryptsetup-initrd src/cryptsetup.c ./lib/.libs/libcryptsetup.a \
        -lpopt -lgcrypt -lgpg-error -ldevmapper -luuid -lcompat
 %else
@@ -177,12 +195,23 @@ mv src/cryptsetup cryptsetup-initrd
 %endif
 
 %configure \
-       --enable-static
+       --enable-libargon2 \
+       %{?with_passwdqc:--enable-passwdqc=/etc/passwdqc.conf} \
+       %{?with_pwquality:--enable-pwquality} \
+       --disable-silent-rules \
+       --enable-static \
+       --enable-udev \
+       %{?with_gcrypt:--with-crypto-backend=gcrypt} \
+       --with-luks2-lock-path=/var/run/%{name} \
+       --with-tmpfilesdir=%{systemdtmpfilesdir}
 %{__make}
 
+%{?with_tests:%{__make} check}
+
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_datadir}/initramfs-tools/{conf-hooks.d,hooks,scripts/local-top}
+
+install -d $RPM_BUILD_ROOT/var/run/cryptsetup
 
 %{__make} install \
        DESTDIR=$RPM_BUILD_ROOT
@@ -194,15 +223,10 @@ ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libcryptsetup.so.*.*.*) \
 
 %if %{with initrd}
 install -d $RPM_BUILD_ROOT%{_libdir}/initrd
-install cryptsetup-initrd $RPM_BUILD_ROOT%{_libdir}/initrd/cryptsetup
+install -p cryptsetup-initrd $RPM_BUILD_ROOT%{_libdir}/initrd/cryptsetup
 %endif
 
-install %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/initramfs-tools/conf-hooks.d/cryptsetup
-install %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/initramfs-tools/hooks/cryptroot
-install %{SOURCE3} $RPM_BUILD_ROOT%{_datadir}/initramfs-tools/scripts/local-top/cryptroot
-install %{SOURCE4} $RPM_BUILD_ROOT%{_datadir}/initramfs-tools/hooks/cryptpassdev
-
-%find_lang %{realname}
+%find_lang %{name}
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -210,13 +234,21 @@ rm -rf $RPM_BUILD_ROOT
 %post  -p /sbin/ldconfig
 %postun        -p /sbin/ldconfig
 
-%files -f %{realname}.lang
+%files -f %{name}.lang
 %defattr(644,root,root,755)
-%doc AUTHORS ChangeLog TODO
+%doc AUTHORS FAQ README TODO docs/{ChangeLog.old,v*-ReleaseNotes,on-disk-format.pdf}
 %attr(755,root,root) %{_sbindir}/cryptsetup
+%attr(755,root,root) %{_sbindir}/cryptsetup-reencrypt
+%attr(755,root,root) %{_sbindir}/integritysetup
+%attr(755,root,root) %{_sbindir}/veritysetup
 %attr(755,root,root) /%{_lib}/libcryptsetup.so.*.*.*
-%attr(755,root,root) %ghost /%{_lib}/libcryptsetup.so.1
+%attr(755,root,root) %ghost /%{_lib}/libcryptsetup.so.12
 %{_mandir}/man8/cryptsetup.8*
+%{_mandir}/man8/cryptsetup-reencrypt.8*
+%{_mandir}/man8/integritysetup.8*
+%{_mandir}/man8/veritysetup.8*
+%{systemdtmpfilesdir}/cryptsetup.conf
+%attr(700,root,root) %dir /var/run/cryptsetup
 
 %files devel
 %defattr(644,root,root,755)
@@ -234,11 +266,3 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/initrd/cryptsetup
 %endif
-
-%files initramfs
-%defattr(644,root,root,755)
-%doc README.initramfs
-%attr(755,root,root) %{_datadir}/initramfs-tools/conf-hooks.d/cryptsetup
-%attr(755,root,root) %{_datadir}/initramfs-tools/hooks/cryptroot
-%attr(755,root,root) %{_datadir}/initramfs-tools/hooks/cryptpassdev
-%attr(755,root,root) %{_datadir}/initramfs-tools/scripts/local-top/cryptroot
This page took 0.571172 seconds and 4 git commands to generate.