File clevis.spec of Package clevis
#
# spec file for package clevis
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: clevis
Version: 19
Release: 0
Summary: A pluggable framework for automated decryption
License: GPL-3.0-or-later
URL: https://github.com/latchset/clevis
Source0: https://github.com/latchset/clevis/releases/download/v%{version}/%{name}-%{version}.tar.xz
Patch0: cryptsetup-path.patch
BuildRequires: asciidoc
BuildRequires: cryptsetup
BuildRequires: curl
BuildRequires: jq
BuildRequires: keyutils
BuildRequires: libpwquality-tools
BuildRequires: meson
BuildRequires: ninja
BuildRequires: pkgconfig
BuildRequires: socat
BuildRequires: tpm2.0-tools >= 3.0.0
BuildRequires: pkgconfig(audit) >= 2.7.8
BuildRequires: pkgconfig(bash-completion)
BuildRequires: pkgconfig(dracut)
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(jansson) >= 2.10
BuildRequires: pkgconfig(jose) >= 8
BuildRequires: pkgconfig(libcrypto)
BuildRequires: pkgconfig(libcryptsetup) >= 2.0.2
BuildRequires: pkgconfig(luksmeta) >= 8
BuildRequires: pkgconfig(systemd)
BuildRequires: pkgconfig(udisks2)
Requires: curl
Requires: jose >= 8
Requires: tpm2.0-tools >= 3.0.0
%description
Clevis is a pluggable framework for automated decryption. It can be used to
provide automated decryption of data or even automated unlocking of LUKS
volumes.
%package luks
Summary: LUKS integration for Clevis
Requires: %{name} = %{version}
Requires: cryptsetup
Requires: libpwquality-tools
#Requires: luksmeta >= 8
%description luks
LUKS integration for Clevis.
%package systemd
Summary: Systemd integration for Clevis
Requires: %{name}-luks = %{version}
Requires: ncat
Requires: systemd
%description systemd
Automatically unlock LUKS devices in /etc/crypttab with Clevis.
%package dracut
Summary: Dracut integration for Clevis
Requires: %{name}-systemd = %{version}
Requires: dracut
%description dracut
Automatically unlock LUKS devices in /etc/crypttab with Clevis at early boot.
%package udisks2
Summary: UDisks2 integration for Clevis
Requires: %{name}-luks = %{version}
%description udisks2
Automatically unlock LUKS devices in UDisks2 with Clevis.
%package bash-completion
Summary: Bash completion for Clevis
Requires: %{name} = %{version}
Requires: bash-completion
Supplements: packageand(%{name}:bash)
%description bash-completion
This package provides Bash completion for Clevis.
%prep
%autosetup -p1
%build
%meson
%meson_build
%install
%meson_install
%pre systemd
%service_add_pre clevis-luks-askpass.path clevis-luks-askpass.service
%post systemd
%service_add_post clevis-luks-askpass.path clevis-luks-askpass.service
%preun systemd
%service_del_preun clevis-luks-askpass.path clevis-luks-askpass.service
%postun systemd
%service_del_postun clevis-luks-askpass.path clevis-luks-askpass.service
%post dracut
%{?regenerate_initrd_post}
%postun dracut
%{?regenerate_initrd_post}
%posttrans dracut
%{?regenerate_initrd_posttrans}
%files
%license COPYING
%{_bindir}/clevis
%{_bindir}/clevis-decrypt
%{_bindir}/clevis-decrypt-*
%{_bindir}/clevis-encrypt-*
%{_mandir}/man1/clevis.1%{?ext_man}
%{_mandir}/man1/clevis-decrypt.1%{?ext_man}
%{_mandir}/man1/clevis-encrypt-*.1%{?ext_man}
%files luks
%{_bindir}/clevis-luks-*
%{_mandir}/man[17]/clevis-luks-*.[17]%{?ext_man}
%files systemd
%{_libexecdir}/clevis-luks-askpass
%{_unitdir}/*
%files dracut
%{_prefix}/lib/dracut/modules.d/**
%files udisks2
%{_libexecdir}/clevis-luks-udisks2
%{_sysconfdir}/xdg/autostart/clevis-luks-udisks2.desktop
%files bash-completion
%{_datadir}/bash-completion/completions/clevis
%changelog