2016-11-18 21:20:24 +00:00
|
|
|
Name: clevis
|
2024-09-25 15:38:01 +00:00
|
|
|
Version: 21
|
2022-08-05 19:54:37 +00:00
|
|
|
Release: %autorelease
|
2016-11-18 21:20:24 +00:00
|
|
|
Summary: Automated decryption framework
|
|
|
|
|
2023-05-31 10:06:33 +00:00
|
|
|
License: GPL-3.0-or-later
|
2016-11-18 21:20:24 +00:00
|
|
|
URL: https://github.com/latchset/%{name}
|
2018-08-14 03:37:17 +00:00
|
|
|
Source0: https://github.com/latchset/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.xz
|
2020-12-17 10:33:25 +00:00
|
|
|
Source1: clevis.sysusers
|
2016-11-18 21:20:24 +00:00
|
|
|
|
2024-10-01 15:16:19 +00:00
|
|
|
Patch0: 0001-PKCS-11-pin-fix-dracut-for-unconfigured-device.patch
|
|
|
|
Patch1: 0002-Fix-potential-race-condition.patch
|
|
|
|
|
2020-11-23 08:15:01 +00:00
|
|
|
BuildRequires: git-core
|
2018-07-09 17:06:43 +00:00
|
|
|
BuildRequires: gcc
|
2018-08-14 03:37:17 +00:00
|
|
|
BuildRequires: meson
|
|
|
|
BuildRequires: asciidoc
|
|
|
|
BuildRequires: ninja-build
|
|
|
|
BuildRequires: bash-completion
|
|
|
|
|
2017-06-14 14:24:19 +00:00
|
|
|
BuildRequires: libjose-devel >= 8
|
2017-10-23 16:09:45 +00:00
|
|
|
BuildRequires: libluksmeta-devel >= 8
|
|
|
|
BuildRequires: audit-libs-devel
|
2016-11-18 21:20:24 +00:00
|
|
|
BuildRequires: libudisks2-devel
|
|
|
|
BuildRequires: openssl-devel
|
|
|
|
|
2020-11-23 08:15:01 +00:00
|
|
|
BuildRequires: tpm2-tools >= 4.0.0
|
2016-11-18 21:20:24 +00:00
|
|
|
BuildRequires: desktop-file-utils
|
|
|
|
BuildRequires: pkgconfig
|
|
|
|
BuildRequires: systemd
|
2020-12-17 10:33:25 +00:00
|
|
|
BuildRequires: systemd-rpm-macros
|
2016-11-18 21:20:24 +00:00
|
|
|
BuildRequires: dracut
|
2017-06-14 14:26:13 +00:00
|
|
|
BuildRequires: tang >= 6
|
2017-06-14 14:24:19 +00:00
|
|
|
BuildRequires: curl
|
2019-12-04 22:13:32 +00:00
|
|
|
BuildRequires: luksmeta
|
|
|
|
BuildRequires: openssl
|
2020-05-10 14:10:44 +00:00
|
|
|
BuildRequires: diffutils
|
2021-03-16 13:48:57 +00:00
|
|
|
BuildRequires: cryptsetup
|
2020-05-10 14:10:44 +00:00
|
|
|
BuildRequires: jq
|
2024-09-25 15:38:01 +00:00
|
|
|
BuildRequires: pcsc-lite
|
|
|
|
BuildRequires: opensc
|
2016-11-18 21:20:24 +00:00
|
|
|
|
2020-11-23 08:15:01 +00:00
|
|
|
Requires: tpm2-tools >= 4.0.0
|
2016-11-18 21:20:24 +00:00
|
|
|
Requires: coreutils
|
2017-06-14 14:24:19 +00:00
|
|
|
Requires: jose >= 8
|
|
|
|
Requires: curl
|
2020-10-29 13:33:10 +00:00
|
|
|
Requires: jq
|
2017-06-27 11:28:46 +00:00
|
|
|
Requires(pre): shadow-utils
|
2022-06-28 11:04:49 +00:00
|
|
|
Requires(post): systemd
|
2024-04-01 13:24:48 +00:00
|
|
|
Requires: clevis-pin-tpm2
|
2016-11-18 21:20:24 +00:00
|
|
|
|
|
|
|
%description
|
|
|
|
Clevis is a framework for automated decryption. It allows you to encrypt
|
|
|
|
data using sophisticated unlocking policies which enable decryption to
|
|
|
|
occur automatically.
|
|
|
|
|
|
|
|
The clevis package provides basic encryption/decryption policy support.
|
|
|
|
Users can use this directly; but most commonly, it will be used as a
|
|
|
|
building block for other packages. For example, see the clevis-luks
|
2023-02-28 19:41:52 +00:00
|
|
|
and clevis-dracut packages for automatic root volume unlocking of
|
|
|
|
LUKSv1/LUKSv2 volumes during early boot.
|
2016-11-18 21:20:24 +00:00
|
|
|
|
|
|
|
%package luks
|
2020-05-10 14:10:44 +00:00
|
|
|
Summary: LUKS integration for clevis
|
2016-11-18 21:20:24 +00:00
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
Requires: cryptsetup
|
2017-10-23 16:09:45 +00:00
|
|
|
Requires: luksmeta >= 8
|
2016-11-18 21:20:24 +00:00
|
|
|
|
|
|
|
%description luks
|
2020-05-10 14:10:44 +00:00
|
|
|
LUKS integration for clevis. This package allows you to bind a LUKS
|
2016-11-18 21:20:24 +00:00
|
|
|
volume to a clevis unlocking policy. For automated unlocking, an unlocker
|
|
|
|
will also be required. See, for example, clevis-dracut and clevis-udisks2.
|
|
|
|
|
2017-10-23 16:09:45 +00:00
|
|
|
%package systemd
|
|
|
|
Summary: systemd integration for clevis
|
|
|
|
Requires: %{name}-luks%{?_isa} = %{version}-%{release}
|
|
|
|
%if 0%{?fedora} > 27
|
|
|
|
Requires: systemd%{?_isa} >= 235-3
|
|
|
|
%else
|
|
|
|
%if 0%{?fedora} == 27
|
|
|
|
Requires: systemd%{?_isa} >= 234-9
|
|
|
|
%else
|
|
|
|
%if 0%{?fedora} == 26
|
|
|
|
Requires: systemd%{?_isa} >= 233-7
|
|
|
|
%else
|
|
|
|
Requires: systemd%{?_isa} >= 236
|
|
|
|
%endif
|
|
|
|
%endif
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%description systemd
|
2020-05-10 14:10:44 +00:00
|
|
|
Automatically unlocks LUKS _netdev block devices from /etc/crypttab.
|
2017-10-23 16:09:45 +00:00
|
|
|
|
2016-11-18 21:20:24 +00:00
|
|
|
%package dracut
|
|
|
|
Summary: Dracut integration for clevis
|
2017-10-23 16:09:45 +00:00
|
|
|
Requires: %{name}-systemd%{?_isa} = %{version}-%{release}
|
2016-11-18 21:20:24 +00:00
|
|
|
Requires: dracut-network
|
|
|
|
|
|
|
|
%description dracut
|
2020-05-10 14:10:44 +00:00
|
|
|
Automatically unlocks LUKS block devices in early boot.
|
2016-11-18 21:20:24 +00:00
|
|
|
|
|
|
|
%package udisks2
|
|
|
|
Summary: UDisks2/Storaged integration for clevis
|
|
|
|
Requires: %{name}-luks%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
|
|
%description udisks2
|
2020-05-10 14:10:44 +00:00
|
|
|
Automatically unlocks LUKS block devices in desktop environments that
|
2016-11-18 21:20:24 +00:00
|
|
|
use UDisks2 or storaged (like GNOME).
|
|
|
|
|
2024-10-11 11:10:46 +00:00
|
|
|
%package pin-pkcs11
|
|
|
|
Summary: PKCS#11 for clevis
|
|
|
|
Requires: %{name}-systemd%{?_isa} = %{version}-%{release}
|
|
|
|
Requires: %{name}-luks%{?_isa} = %{version}-%{release}
|
|
|
|
Requires: %{name}-dracut%{?_isa} = %{version}-%{release}
|
|
|
|
Requires: pcsc-lite
|
|
|
|
Requires: opensc
|
|
|
|
|
|
|
|
%description pin-pkcs11
|
|
|
|
Automatically unlocks LUKS block devices through a PKCS#11 device.
|
|
|
|
|
2016-11-18 21:20:24 +00:00
|
|
|
%prep
|
2020-09-05 14:10:27 +00:00
|
|
|
%autosetup -S git
|
2016-11-18 21:20:24 +00:00
|
|
|
|
|
|
|
%build
|
2018-08-14 03:37:17 +00:00
|
|
|
%meson -Duser=clevis -Dgroup=clevis
|
|
|
|
%meson_build
|
2016-11-18 21:20:24 +00:00
|
|
|
|
|
|
|
%install
|
2018-08-14 03:37:17 +00:00
|
|
|
%meson_install
|
2020-12-17 10:33:25 +00:00
|
|
|
install -p -D -m 0644 %{SOURCE1} %{buildroot}%{_sysusersdir}/clevis.conf
|
2016-11-18 21:20:24 +00:00
|
|
|
|
|
|
|
%check
|
|
|
|
desktop-file-validate \
|
|
|
|
%{buildroot}/%{_sysconfdir}/xdg/autostart/%{name}-luks-udisks2.desktop
|
2018-08-14 03:37:17 +00:00
|
|
|
%meson_test
|
2016-11-18 21:20:24 +00:00
|
|
|
|
2017-06-27 11:28:46 +00:00
|
|
|
%pre
|
2020-12-17 10:33:25 +00:00
|
|
|
%sysusers_create_compat %{SOURCE1}
|
2020-08-31 11:44:43 +00:00
|
|
|
# Add clevis user to tss group.
|
|
|
|
if getent group tss >/dev/null && ! groups %{name} | grep -q "\btss\b"; then
|
2020-09-08 13:34:44 +00:00
|
|
|
usermod -a -G tss %{name} &>/dev/null
|
2020-08-31 11:44:43 +00:00
|
|
|
fi
|
2017-06-26 15:43:58 +00:00
|
|
|
exit 0
|
|
|
|
|
2016-11-18 21:20:24 +00:00
|
|
|
%files
|
|
|
|
%license COPYING
|
2018-08-14 03:37:17 +00:00
|
|
|
%{_datadir}/bash-completion/
|
2017-06-14 14:24:19 +00:00
|
|
|
%{_bindir}/%{name}-decrypt-tang
|
2018-02-13 20:59:07 +00:00
|
|
|
%{_bindir}/%{name}-decrypt-tpm2
|
2017-06-14 14:24:19 +00:00
|
|
|
%{_bindir}/%{name}-decrypt-sss
|
2022-07-08 13:46:05 +00:00
|
|
|
%{_bindir}/%{name}-decrypt-null
|
2017-06-14 14:24:19 +00:00
|
|
|
%{_bindir}/%{name}-decrypt
|
|
|
|
%{_bindir}/%{name}-encrypt-tang
|
2018-02-13 20:59:07 +00:00
|
|
|
%{_bindir}/%{name}-encrypt-tpm2
|
2017-06-14 14:24:19 +00:00
|
|
|
%{_bindir}/%{name}-encrypt-sss
|
2022-07-08 13:46:05 +00:00
|
|
|
%{_bindir}/%{name}-encrypt-null
|
2016-11-18 21:20:24 +00:00
|
|
|
%{_bindir}/%{name}
|
2017-06-14 14:24:19 +00:00
|
|
|
%{_mandir}/man1/%{name}-encrypt-tang.1*
|
2018-02-13 20:59:07 +00:00
|
|
|
%{_mandir}/man1/%{name}-encrypt-tpm2.1*
|
2017-06-14 14:24:19 +00:00
|
|
|
%{_mandir}/man1/%{name}-encrypt-sss.1*
|
|
|
|
%{_mandir}/man1/%{name}-decrypt.1*
|
|
|
|
%{_mandir}/man1/%{name}.1*
|
2020-12-17 10:33:25 +00:00
|
|
|
%{_sysusersdir}/clevis.conf
|
2016-11-18 21:20:24 +00:00
|
|
|
|
|
|
|
%files luks
|
2017-11-13 16:47:39 +00:00
|
|
|
%{_mandir}/man7/%{name}-luks-unlockers.7*
|
2017-10-23 16:09:45 +00:00
|
|
|
%{_mandir}/man1/%{name}-luks-unlock.1*
|
2018-03-21 18:44:56 +00:00
|
|
|
%{_mandir}/man1/%{name}-luks-unbind.1*
|
2017-10-23 16:09:45 +00:00
|
|
|
%{_mandir}/man1/%{name}-luks-bind.1*
|
2020-05-10 14:10:44 +00:00
|
|
|
%{_mandir}/man1/%{name}-luks-list.1.*
|
2020-10-28 19:17:05 +00:00
|
|
|
%{_mandir}/man1/%{name}-luks-edit.1.*
|
|
|
|
%{_mandir}/man1/%{name}-luks-regen.1.*
|
|
|
|
%{_mandir}/man1/%{name}-luks-report.1.*
|
2021-02-09 17:53:16 +00:00
|
|
|
%{_mandir}/man1/%{name}-luks-pass.1.*
|
2017-10-23 16:09:45 +00:00
|
|
|
%{_bindir}/%{name}-luks-unlock
|
2018-03-21 18:44:56 +00:00
|
|
|
%{_bindir}/%{name}-luks-unbind
|
2017-10-23 16:09:45 +00:00
|
|
|
%{_bindir}/%{name}-luks-bind
|
2020-05-10 14:10:44 +00:00
|
|
|
%{_bindir}/%{name}-luks-common-functions
|
|
|
|
%{_bindir}/%{name}-luks-list
|
2020-10-28 19:17:05 +00:00
|
|
|
%{_bindir}/%{name}-luks-edit
|
|
|
|
%{_bindir}/%{name}-luks-regen
|
|
|
|
%{_bindir}/%{name}-luks-report
|
2021-02-09 17:53:16 +00:00
|
|
|
%{_bindir}/%{name}-luks-pass
|
2017-10-23 16:09:45 +00:00
|
|
|
|
|
|
|
%files systemd
|
|
|
|
%{_libexecdir}/%{name}-luks-askpass
|
2024-04-01 13:24:48 +00:00
|
|
|
%{_libexecdir}/%{name}-luks-unlocker
|
2017-10-23 16:09:45 +00:00
|
|
|
%{_unitdir}/%{name}-luks-askpass.path
|
|
|
|
%{_unitdir}/%{name}-luks-askpass.service
|
2016-11-18 21:20:24 +00:00
|
|
|
|
|
|
|
%files dracut
|
|
|
|
%{_prefix}/lib/dracut/modules.d/60%{name}
|
2022-07-08 13:46:05 +00:00
|
|
|
%{_prefix}/lib/dracut/modules.d/60%{name}-pin-null/module-setup.sh
|
2020-01-20 12:29:15 +00:00
|
|
|
%{_prefix}/lib/dracut/modules.d/60%{name}-pin-sss/module-setup.sh
|
|
|
|
%{_prefix}/lib/dracut/modules.d/60%{name}-pin-tang/module-setup.sh
|
|
|
|
%{_prefix}/lib/dracut/modules.d/60%{name}-pin-tpm2/module-setup.sh
|
2024-10-11 11:10:46 +00:00
|
|
|
|
|
|
|
%files pin-pkcs11
|
|
|
|
%{_libexecdir}/%{name}-luks-pkcs11-askpass
|
|
|
|
%{_libexecdir}/%{name}-luks-pkcs11-askpin
|
|
|
|
%{_bindir}/%{name}-decrypt-pkcs11
|
|
|
|
%{_bindir}/%{name}-encrypt-pkcs11
|
|
|
|
%{_bindir}/%{name}-pkcs11-afunix-socket-unlock
|
|
|
|
%{_bindir}/%{name}-pkcs11-common
|
|
|
|
%{_unitdir}/%{name}-luks-pkcs11-askpass.service
|
|
|
|
%{_unitdir}/%{name}-luks-pkcs11-askpass.socket
|
|
|
|
%{_mandir}/man1/%{name}-encrypt-pkcs11.1*
|
2024-09-25 15:38:01 +00:00
|
|
|
%{_prefix}/lib/dracut/modules.d/60%{name}-pin-pkcs11/module-setup.sh
|
|
|
|
%{_prefix}/lib/dracut/modules.d/60%{name}-pin-pkcs11/%{name}-pkcs11-prehook.sh
|
|
|
|
%{_prefix}/lib/dracut/modules.d/60%{name}-pin-pkcs11/%{name}-pkcs11-hook.sh
|
2016-11-18 21:20:24 +00:00
|
|
|
|
|
|
|
%files udisks2
|
|
|
|
%{_sysconfdir}/xdg/autostart/%{name}-luks-udisks2.desktop
|
|
|
|
%attr(4755, root, root) %{_libexecdir}/%{name}-luks-udisks2
|
|
|
|
|
2022-06-28 11:04:49 +00:00
|
|
|
%post systemd
|
|
|
|
systemctl preset %{name}-luks-askpass.path >/dev/null 2>&1 || :
|
|
|
|
|
2022-08-05 19:54:37 +00:00
|
|
|
%autochangelog
|