Blame SPECS/clevis.spec

cee3b6
Name:           clevis
cee3b6
Version:        18
cee3b6
Release:        102%{?dist}
cee3b6
Summary:        Automated decryption framework
cee3b6
cee3b6
License:        GPLv3+
cee3b6
URL:            https://github.com/latchset/%{name}
cee3b6
Source0:        https://github.com/latchset/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.xz
cee3b6
Source1:        clevis.sysusers
cee3b6
cee3b6
Patch0001: 0001-sss-use-BN_set_word-x-0-instead-of-BN_zero.patch
cee3b6
Patch0002: 0002-systemd-account-for-unlocking-failures-in-clevis-luk.patch
cee3b6
Patch0004: 0004-luks-explicitly-specify-pbkdf-iterations-to-cryptset.patch
cee3b6
Patch0005: 0005-tang-dump-url-on-error-communication.patch
cee3b6
Patch0006: 0006-feat-rename-the-test-pin-to-null-pin.patch
cee3b6
cee3b6
BuildRequires:  git-core
cee3b6
BuildRequires:  gcc
cee3b6
BuildRequires:  meson
cee3b6
BuildRequires:  asciidoc
cee3b6
BuildRequires:  ninja-build
cee3b6
BuildRequires:  bash-completion
cee3b6
cee3b6
BuildRequires:  libjose-devel >= 8
cee3b6
BuildRequires:  libluksmeta-devel >= 8
cee3b6
BuildRequires:  audit-libs-devel
cee3b6
BuildRequires:  libudisks2-devel
cee3b6
BuildRequires:  openssl-devel
cee3b6
cee3b6
BuildRequires:  tpm2-tools >= 4.0.0
cee3b6
BuildRequires:  desktop-file-utils
cee3b6
BuildRequires:  pkgconfig
cee3b6
BuildRequires:  systemd
cee3b6
BuildRequires:  systemd-rpm-macros
cee3b6
BuildRequires:  dracut
cee3b6
BuildRequires:  tang >= 6
cee3b6
BuildRequires:  curl
cee3b6
BuildRequires:  cracklib-dicts
cee3b6
BuildRequires:  luksmeta
cee3b6
BuildRequires:  openssl
cee3b6
BuildRequires:  diffutils
cee3b6
BuildRequires:  cryptsetup
cee3b6
BuildRequires:  jq
cee3b6
cee3b6
Requires:       tpm2-tools >= 4.0.0
cee3b6
Requires:       coreutils
cee3b6
Requires:       jose >= 8
cee3b6
Requires:       curl
cee3b6
Requires:       jq
cee3b6
Requires(pre):  shadow-utils
cee3b6
Recommends:     cracklib-dicts
cee3b6
cee3b6
%description
cee3b6
Clevis is a framework for automated decryption. It allows you to encrypt
cee3b6
data using sophisticated unlocking policies which enable decryption to
cee3b6
occur automatically.
cee3b6
cee3b6
The clevis package provides basic encryption/decryption policy support.
cee3b6
Users can use this directly; but most commonly, it will be used as a
cee3b6
building block for other packages. For example, see the clevis-luks
cee3b6
and clevis-dracut packages for automatic root volume unlocking of LUKSv1
cee3b6
volumes during early boot.
cee3b6
cee3b6
%package luks
cee3b6
Summary:        LUKS integration for clevis
cee3b6
Requires:       %{name}%{?_isa} = %{version}-%{release}
cee3b6
Requires:       cryptsetup
cee3b6
Requires:       luksmeta >= 8
cee3b6
cee3b6
%description luks
cee3b6
LUKS integration for clevis. This package allows you to bind a LUKS
cee3b6
volume to a clevis unlocking policy. For automated unlocking, an unlocker
cee3b6
will also be required. See, for example, clevis-dracut and clevis-udisks2.
cee3b6
cee3b6
%package systemd
cee3b6
Summary:        systemd integration for clevis
cee3b6
Requires:       %{name}-luks%{?_isa} = %{version}-%{release}
cee3b6
%if 0%{?fedora} > 27
cee3b6
Requires:       systemd%{?_isa} >= 235-3
cee3b6
%else
cee3b6
%if 0%{?fedora} == 27
cee3b6
Requires:       systemd%{?_isa} >= 234-9
cee3b6
%else
cee3b6
%if 0%{?fedora} == 26
cee3b6
Requires:       systemd%{?_isa} >= 233-7
cee3b6
%else
cee3b6
Requires:       systemd%{?_isa} >= 236
cee3b6
%endif
cee3b6
%endif
cee3b6
%endif
cee3b6
cee3b6
%description systemd
cee3b6
Automatically unlocks LUKS _netdev block devices from /etc/crypttab.
cee3b6
cee3b6
%package dracut
cee3b6
Summary:        Dracut integration for clevis
cee3b6
Requires:       %{name}-systemd%{?_isa} = %{version}-%{release}
cee3b6
Requires:       dracut-network
cee3b6
cee3b6
%description dracut
cee3b6
Automatically unlocks LUKS block devices in early boot.
cee3b6
cee3b6
%package udisks2
cee3b6
Summary:        UDisks2/Storaged integration for clevis
cee3b6
Requires:       %{name}-luks%{?_isa} = %{version}-%{release}
cee3b6
cee3b6
%description udisks2
cee3b6
Automatically unlocks LUKS block devices in desktop environments that
cee3b6
use UDisks2 or storaged (like GNOME).
cee3b6
cee3b6
%prep
cee3b6
%autosetup -S git
cee3b6
cee3b6
%build
cee3b6
%meson -Duser=clevis -Dgroup=clevis
cee3b6
%meson_build
cee3b6
cee3b6
%install
cee3b6
%meson_install
cee3b6
install -p -D -m 0644 %{SOURCE1} %{buildroot}%{_sysusersdir}/clevis.conf
cee3b6
cee3b6
%check
cee3b6
desktop-file-validate \
cee3b6
  %{buildroot}/%{_sysconfdir}/xdg/autostart/%{name}-luks-udisks2.desktop
cee3b6
%meson_test
cee3b6
cee3b6
%pre
cee3b6
%sysusers_create_compat %{SOURCE1}
cee3b6
# Add clevis user to tss group.
cee3b6
if getent group tss >/dev/null && ! groups %{name} | grep -q "\btss\b"; then
cee3b6
    usermod -a -G tss %{name} &>/dev/null
cee3b6
fi
cee3b6
exit 0
cee3b6
cee3b6
%posttrans
cee3b6
# In case the clevis-luks-askpass is enabled, make sure it's using the
cee3b6
# correct target, which changed in v14.
cee3b6
[ "$(find /etc/systemd/system/ -name "clevis-luks-askpass*")" ] || exit 0
cee3b6
find /etc/systemd/system/ -name "clevis-luks-askpass*" \
cee3b6
     | grep -q cryptsetup.target.wants && exit 0
cee3b6
cee3b6
find /etc/systemd/system/ -name "clevis-luks-askpass*" -exec rm {} +
cee3b6
systemctl enable clevis-luks-askpass.path >/dev/null 2>&1 || :
cee3b6
exit 0
cee3b6
cee3b6
%files
cee3b6
%license COPYING
cee3b6
%{_datadir}/bash-completion/
cee3b6
%{_bindir}/%{name}-decrypt-tang
cee3b6
%{_bindir}/%{name}-decrypt-tpm2
cee3b6
%{_bindir}/%{name}-decrypt-sss
cee3b6
%{_bindir}/%{name}-decrypt-null
cee3b6
%{_bindir}/%{name}-decrypt
cee3b6
%{_bindir}/%{name}-encrypt-tang
cee3b6
%{_bindir}/%{name}-encrypt-tpm2
cee3b6
%{_bindir}/%{name}-encrypt-sss
cee3b6
%{_bindir}/%{name}-encrypt-null
cee3b6
%{_bindir}/%{name}
cee3b6
%{_mandir}/man1/%{name}-encrypt-tang.1*
cee3b6
%{_mandir}/man1/%{name}-encrypt-tpm2.1*
cee3b6
%{_mandir}/man1/%{name}-encrypt-sss.1*
cee3b6
%{_mandir}/man1/%{name}-decrypt.1*
cee3b6
%{_mandir}/man1/%{name}.1*
cee3b6
%{_sysusersdir}/clevis.conf
cee3b6
cee3b6
%files luks
cee3b6
%{_mandir}/man7/%{name}-luks-unlockers.7*
cee3b6
%{_mandir}/man1/%{name}-luks-unlock.1*
cee3b6
%{_mandir}/man1/%{name}-luks-unbind.1*
cee3b6
%{_mandir}/man1/%{name}-luks-bind.1*
cee3b6
%{_mandir}/man1/%{name}-luks-list.1.*
cee3b6
%{_mandir}/man1/%{name}-luks-edit.1.*
cee3b6
%{_mandir}/man1/%{name}-luks-regen.1.*
cee3b6
%{_mandir}/man1/%{name}-luks-report.1.*
cee3b6
%{_mandir}/man1/%{name}-luks-pass.1.*
cee3b6
%{_bindir}/%{name}-luks-unlock
cee3b6
%{_bindir}/%{name}-luks-unbind
cee3b6
%{_bindir}/%{name}-luks-bind
cee3b6
%{_bindir}/%{name}-luks-common-functions
cee3b6
%{_bindir}/%{name}-luks-list
cee3b6
%{_bindir}/%{name}-luks-edit
cee3b6
%{_bindir}/%{name}-luks-regen
cee3b6
%{_bindir}/%{name}-luks-report
cee3b6
%{_bindir}/%{name}-luks-pass
cee3b6
cee3b6
%files systemd
cee3b6
%{_libexecdir}/%{name}-luks-askpass
cee3b6
%{_unitdir}/%{name}-luks-askpass.path
cee3b6
%{_unitdir}/%{name}-luks-askpass.service
cee3b6
cee3b6
%files dracut
cee3b6
%{_prefix}/lib/dracut/modules.d/60%{name}
cee3b6
%{_prefix}/lib/dracut/modules.d/60%{name}-pin-null/module-setup.sh
cee3b6
%{_prefix}/lib/dracut/modules.d/60%{name}-pin-sss/module-setup.sh
cee3b6
%{_prefix}/lib/dracut/modules.d/60%{name}-pin-tang/module-setup.sh
cee3b6
%{_prefix}/lib/dracut/modules.d/60%{name}-pin-tpm2/module-setup.sh
cee3b6
cee3b6
%files udisks2
cee3b6
%{_sysconfdir}/xdg/autostart/%{name}-luks-udisks2.desktop
cee3b6
%attr(4755, root, root) %{_libexecdir}/%{name}-luks-udisks2
cee3b6
cee3b6
%changelog
cee3b6
* Wed Jan 26 2022 Sergio Correia <scorreia@redhat.com> - 18-102
cee3b6
- Support a null pin
cee3b6
  Resolves: rhbz#2028091
cee3b6
cee3b6
* Wed Jan 26 2022 Sergio Correia <scorreia@redhat.com> - 18-101
cee3b6
- Revert "Enable debugging in clevis scripts when rd.debug is set"
cee3b6
  Related: rhbz#2022420
cee3b6
cee3b6
* Thu Jan 20 2022 Sergio Arroutbi <sarroutb@redhat.com> - 18-100
cee3b6
- Dump server information on server error communication
cee3b6
  Resolves: rhbz#2022423
cee3b6
cee3b6
* Tue Jan 04 2022 Sergio Correia <scorreia@redhat.com> - 18-7
cee3b6
- Explicitly specify pbkdf iterations to cryptsetup
cee3b6
  Resolves: rhbz#2022416
cee3b6
cee3b6
* Tue Jan 04 2022 Sergio Correia <scorreia@redhat.com> - 18-6
cee3b6
- Enable debugging in clevis scripts when rd.debug is set
cee3b6
  Resolves: rhbz#2022420
cee3b6
cee3b6
* Wed Nov 17 2021 Sergio Correia <scorreia@redhat.com> - 18-5
cee3b6
- Account for unlocking failures in clevis-luks-askpass
cee3b6
  Resolves: rhbz#2022421
cee3b6
cee3b6
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 18-4
cee3b6
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
cee3b6
  Related: rhbz#1991688
cee3b6
cee3b6
* Wed Jun 16 2021 Mohan Boddu <mboddu@redhat.com> - 18-3
cee3b6
- Rebuilt for RHEL 9 BETA for openssl 3.0
cee3b6
  Related: rhbz#1971065
cee3b6
cee3b6
* Fri May 07 2021 Sergio Correia <scorreia@redhat.com> - 18-2
cee3b6
- Port to OpenSSL 3
cee3b6
  Resolves: rhbz#1956760
cee3b6
cee3b6
* Tue May 04 2021 Sergio Correia <scorreia@redhat.com> - 18-1
cee3b6
- Update to new clevis upstream release, v18
cee3b6
  Resolves: rhbz#1956760
cee3b6
cee3b6
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 16-3
cee3b6
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
cee3b6
cee3b6
* Tue Mar 16 2021 Sergio Correia <scorreia@redhat.com> - 16-2
cee3b6
- Fix for -t option in clevis luks bind - backport upstream commit ea0d0c20
cee3b6
cee3b6
* Tue Feb 09 2021 Sergio Correia <scorreia@redhat.com> - 16-1
cee3b6
- Update to new clevis upstream release, v16.
cee3b6
cee3b6
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 15-4
cee3b6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
cee3b6
cee3b6
* Mon Nov 23 08:14:40 GMT 2020 Peter Robinson <pbrobinson@fedoraproject.org> - 15-3
cee3b6
- Upstream patch for tpm-tools 5.0 support
cee3b6
cee3b6
* Thu Oct 29 2020 Sergio Correia <scorreia@redhat.com> - 15-2
cee3b6
- Add jq to dependencies
cee3b6
cee3b6
* Wed Oct 28 2020 Sergio Correia <scorreia@redhat.com> - 15-1
cee3b6
- Update to new clevis upstream release, v15.
cee3b6
cee3b6
* Tue Sep 08 2020 Sergio Correia <scorreia@redhat.com> - 14-5
cee3b6
- Suppress output in pre scriptlet when adjusting users/groups
cee3b6
  Resolves: rhbz#1876729
cee3b6
cee3b6
* Tue Sep 08 2020 Sergio Correia <scorreia@redhat.com> - 14-4
cee3b6
- Backport upstream PR#230 - clevis-luks-askpass now exits cleanly
cee3b6
  when receives a SIGTERM
cee3b6
  Resolves: rhbz#1876001
cee3b6
cee3b6
* Sat Sep 05 2020 Sergio Correia <scorreia@redhat.com> - 14-3
cee3b6
- If clevis-luks-askpass is enabled, it may be using a wrong target,
cee3b6
  since that changed in v14. Check and update it, if required.
cee3b6
cee3b6
* Mon Aug 31 2020 Sergio Correia <scorreia@redhat.com> - 14-2
cee3b6
- Update sources file with new v14 release.
cee3b6
cee3b6
* Mon Aug 31 2020 Sergio Correia <scorreia@redhat.com> - 14-1
cee3b6
- Update to new clevis upstream release, v14.
cee3b6
cee3b6
* Sun Aug 02 2020 Benjamin Gilbert <bgilbert@redhat.com> - 13-3
cee3b6
- Downgrade cracklib-dicts to Recommends
cee3b6
cee3b6
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 13-2
cee3b6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
cee3b6
cee3b6
* Sun May 10 2020 Sergio Correia <scorreia@redhat.com> - 13-1
cee3b6
- Update to new clevis upstream release, v13.
cee3b6
cee3b6
* Thu May 07 2020 Sergio Correia <scorreia@redhat.com> - 12-4
cee3b6
- cracklib-dicts should be also listed as a build dependency, since
cee3b6
  it's required for running some of the tests
cee3b6
cee3b6
* Mon Apr 06 2020 Sergio Correia <scorreia@redhat.com> - 12-3
cee3b6
- Make cracklib-dicts a regular dependency
cee3b6
cee3b6
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 12-2
cee3b6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
cee3b6
cee3b6
* Mon Jan 20 2020 Sergio Correia <scorreia@redhat.com> - 12-1
cee3b6
- Update to new clevis upstream release, v12.
cee3b6
cee3b6
* Thu Dec 19 2019 Sergio Correia <scorreia@redhat.com> - 11-11
cee3b6
- Backport upstream PR#70 - Handle case where we try to use a partially
cee3b6
  used luksmeta slot
cee3b6
  Resolves: rhbz#1672371
cee3b6
cee3b6
* Thu Dec 05 2019 Sergio Correia <scorreia@redhat.com> - 11-10
cee3b6
- Disable LUKS2 tests for now, since they fail randomly in Koji
cee3b6
  builders, killing the build
cee3b6
cee3b6
* Wed Dec 04 2019 Sergio Correia <scorreia@redhat.com> - 11-9
cee3b6
- Backport of upstream patches and the following fixes:
cee3b6
  - Rework the logic for reading the existing key
cee3b6
  - fix for different output from 'luksAddKey' command w/cryptsetup v2.0.2 (
cee3b6
  - pins/tang: check that key derivation key is available
cee3b6
cee3b6
* Wed Oct 30 2019 Peter Robinson <pbrobinson@fedoraproject.org> 11-8
cee3b6
- Drop need network patch
cee3b6
cee3b6
* Fri Sep 06 2019 Javier Martinez Canillas <javierm@redhat.com> - 11-7
cee3b6
- Add support for tpm2-tools 4.0
cee3b6
cee3b6
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 11-6
cee3b6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
cee3b6
cee3b6
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 11-5
cee3b6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
cee3b6
cee3b6
* Thu Dec  6 2018 Peter Robinson <pbrobinson@fedoraproject.org> 11-4
cee3b6
- Update patch for work around
cee3b6
cee3b6
* Thu Dec  6 2018 Peter Robinson <pbrobinson@fedoraproject.org> 11-3
cee3b6
- Work around network requirement for early boot
cee3b6
cee3b6
* Fri Nov 09 2018 Javier Martinez Canillas <javierm@redhat.com> - 11-2
cee3b6
- Delete remaining references to the removed http pin
cee3b6
- Install cryptsetup and tpm2_pcrlist in the initramfs
cee3b6
- Add device TCTI library to the initramfs
cee3b6
  Resolves: rhbz#1644876
cee3b6
cee3b6
* Tue Aug 14 2018 Nathaniel McCallum <npmccallum@redhat.com> - 11-1
cee3b6
- Update to v11
cee3b6
cee3b6
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 10-2
cee3b6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
cee3b6
cee3b6
* Wed Mar 21 2018 Nathaniel McCallum <npmccallum@redhat.com> - 10-1
cee3b6
- Update to v10
cee3b6
cee3b6
* Tue Feb 13 2018 Nathaniel McCallum <npmccallum@redhat.com> - 9-1
cee3b6
- Update to v9
cee3b6
cee3b6
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 8-2
cee3b6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
cee3b6
cee3b6
* Mon Nov 13 2017 Nathaniel McCallum <npmccallum@redhat.com> - 8-1
cee3b6
- Update to v8
cee3b6
cee3b6
* Wed Nov 08 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 7-2
cee3b6
- Rebuild for cryptsetup-2.0.0
cee3b6
cee3b6
* Fri Oct 27 2017 Nathaniel McCallum <npmccallum@redhat.com> - 7-1
cee3b6
- Update to v7
cee3b6
cee3b6
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6-3
cee3b6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
cee3b6
cee3b6
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6-2
cee3b6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
cee3b6
cee3b6
* Tue Jun 27 2017 Nathaniel McCallum <npmccallum@redhat.com> - 6-1
cee3b6
- New upstream release
cee3b6
- Specify unprivileged user/group during configuration
cee3b6
- Move clevis user/group creation to base clevis package
cee3b6
cee3b6
* Mon Jun 26 2017 Nathaniel McCallum <npmccallum@redhat.com> - 5-1
cee3b6
- New upstream release
cee3b6
- Run clevis decryption from udisks2 under an unprivileged user
cee3b6
cee3b6
* Wed Jun 14 2017 Nathaniel McCallum <npmccallum@redhat.com> - 4-1
cee3b6
- New upstream release
cee3b6
cee3b6
* Wed Jun 14 2017 Nathaniel McCallum <npmccallum@redhat.com> - 3-1
cee3b6
- New upstream release
cee3b6
cee3b6
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2-2
cee3b6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
cee3b6
cee3b6
* Fri Nov 18 2016 Nathaniel McCallum <npmccallum@redhat.com> - 2-1
cee3b6
- New upstream release
cee3b6
cee3b6
* Mon Nov 14 2016 Nathaniel McCallum <npmccallum@redhat.com> - 1-1
cee3b6
- First release