Summary:        Utility to setup encrypted disks
Name:           cryptsetup
Version:        2.4.3
Release:        4%{?dist}
License:        GPLv2+ and LGPLv2+
Group:          System Environment/Base
Vendor:         VMware, Inc.
URL:            https://gitlab.com/cryptsetup/cryptsetup
Distribution:   Photon

Source0: %{name}-v%{version}.tar.gz
%define sha512 %{name}=c3d56a9d89253ad56e729a7faa334ca2b1650229e0527123f5fdb77e6801b920b9e2b5154db6247fadc08591c25c458666f5369e7a894f7ae635e1e31c09d2cf

BuildRequires: systemd-devel
BuildRequires: openssl-devel
BuildRequires: popt-devel
BuildRequires: device-mapper-devel
BuildRequires: gcc
BuildRequires: make
BuildRequires: json-c-devel
BuildRequires: libpwquality-devel
BuildRequires: libargon2-devel
BuildRequires: libssh-devel

Requires: cryptsetup-libs = %{version}-%{release}
Requires: libpwquality
Requires: util-linux-libs
Requires: openssl
Requires: device-mapper-libs
Requires: device-mapper

%description
Cryptsetup is a utility used to conveniently set up disk encryption based
on the DMCrypt kernel module.

%package -n     %{name}-devel
Summary:        Headers and Libraries for Cryptsetup
Group:          Development/Libraries
Requires:       %{name}-libs = %{version}-%{release}

%description -n %{name}-devel
Headers and Libraries for integrating with Cryptsetup

%package -n     %{name}-libs
Summary:        Shared Libraries for Cryptsetup
Group:          Development/Libraries
Requires:       util-linux-libs
Requires:       libargon2
Requires:       json-c
Requires:       openssl
Requires:       device-mapper-libs

%description -n %{name}-libs
Shared libraries for Cryptsetup

%package -n     veritysetup
Summary:        Utility to set up dm-verity volumes
Requires:       %{name}-libs = %{version}-%{release}

%description -n veritysetup
Utility to set up dm-verity volumes.

%package -n     integritysetup
Summary:        Utility to set up dm-integrity volumes
Requires:       %{name}-libs = %{version}-%{release}

%description -n integritysetup
Utility to set up dm-integrity volumes.

%package -n     %{name}-reencrypt
Summary:        Utility to perform offline reencryption of LUKS enabled disks
Requires:       %{name}-libs = %{version}-%{release}

%description -n %{name}-reencrypt
Utility to perform offline reencryption of LUKS enabled disks.

%package -n     %{name}-ssh-token
Summary:        Cryptsetup LUKS2 SSH token
Requires:       %{name}-libs = %{version}-%{release}
Requires:       libssh

%description ssh-token
This package contains the LUKS2 SSH token.

%prep
%autosetup -n %{name}-v%{version}

%build
bash ./autogen.sh
%configure --enable-fips --enable-pwquality --enable-libargon2
%make_build

%install
%make_install
rm -rf %{buildroot}%{_libdir}/*.la

%find_lang %{name}

%post -n %{name}-libs
/sbin/ldconfig

%postun -n %{name}-libs
/sbin/ldconfig

%files
%defattr(-,root,root)
%license COPYING
%doc AUTHORS FAQ docs/*ReleaseNotes
%{_mandir}/man8/cryptsetup.8.gz
%{_sbindir}/cryptsetup

%files -n veritysetup
%defattr(-,root,root)
%license COPYING
%{_mandir}/man8/veritysetup.8.gz
%{_sbindir}/veritysetup

%files -n integritysetup
%defattr(-,root,root)
%license COPYING
%{_mandir}/man8/integritysetup.8.gz
%{_sbindir}/integritysetup

%files reencrypt
%defattr(-,root,root)
%license COPYING
%doc misc/dracut_90reencrypt
%{_mandir}/man8/%{name}-reencrypt.8.gz
%{_sbindir}/%{name}-reencrypt

%files devel
%defattr(-,root,root)
%doc docs/examples/*
%{_includedir}/libcryptsetup.h
%{_libdir}/libcryptsetup.so
%{_libdir}/pkgconfig/libcryptsetup.pc

%files libs -f cryptsetup.lang
%defattr(-,root,root)
%license COPYING COPYING.LGPL
%{_libdir}/libcryptsetup.so.*
%{_tmpfilesdir}/cryptsetup.conf
%ghost %attr(700, -, -) %dir /run/cryptsetup

%files ssh-token
%license COPYING COPYING.LGPL
%{_libdir}/%{name}/libcryptsetup-token-ssh.so
%{_mandir}/man8/cryptsetup-ssh.8.gz
%{_sbindir}/cryptsetup-ssh
%exclude %{_libdir}/%{name}/libcryptsetup-token-ssh.la

%changelog
* Mon Apr 01 2024 Shreenidhi Shedi <shreenidhi.shedi@broadcom.com> 2.4.3-4
- Bump version as a part of util-linux upgrade
* Sun Nov 19 2023 Shreenidhi Shedi <sshedi@vmware.com> 2.4.3-3
- Bump version as a part of openssl upgrade
* Tue Sep 05 2023 Nitesh Kumar <kunitesh@vmware.com> 2.4.3-2
- Version bump up to use libssh v0.10.5
* Wed Apr 20 2022 Gerrit Photon <photon-checkins@vmware.com> 2.4.3-1
- Automatic Version Bump
* Wed Jan 12 2022 Tapas Kundu <tkundu@vmware.com> 2.4.2-1
- Fix CVE-2021-4122
- Update to 2.4.2
* Tue Nov 30 2021 Satya Naga Vasamsetty <svasamsetty@vmware.com> 2.3.5-2
- bump up version for openssl 3.0.0 compatibility
- Add device-mapper package dependency
* Thu Apr 8 2021 Vamsi Krishna Brahmajosyula <vbrahmajosyula@vmware.com> 2.3.5-1
- Initial package.