Accepting request 636836 from home:michael-chang:sedutil-pkg
I want to maintain sedutil in Factory and would like to use Base:System as the devel/feeder project. OBS-URL: https://build.opensuse.org/request/show/636836 OBS-URL: https://build.opensuse.org/package/show/Base:System/sedutil?expand=0&rev=1
This commit is contained in:
commit
faf3134176
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
27
kernel_nvme_header.patch
Normal file
27
kernel_nvme_header.patch
Normal file
@ -0,0 +1,27 @@
|
||||
Index: sedutil-1.15.1/configure.ac
|
||||
===================================================================
|
||||
--- sedutil-1.15.1.orig/configure.ac
|
||||
+++ sedutil-1.15.1/configure.ac
|
||||
@@ -14,6 +14,7 @@ AC_PROG_CC
|
||||
|
||||
# Checks for header files.
|
||||
AC_CHECK_HEADERS([arpa/inet.h fcntl.h malloc.h stdint.h stdlib.h string.h sys/ioctl.h unistd.h])
|
||||
+AC_CHECK_HEADERS([linux/nvme.h linux/nvme_ioctl.h])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_CHECK_HEADER_STDBOOL
|
||||
Index: sedutil-1.15.1/linux/DtaDevLinuxNvme.h
|
||||
===================================================================
|
||||
--- sedutil-1.15.1.orig/linux/DtaDevLinuxNvme.h
|
||||
+++ sedutil-1.15.1/linux/DtaDevLinuxNvme.h
|
||||
@@ -18,8 +18,9 @@ along with sedutil. If not, see <http:/
|
||||
|
||||
* C:E********************************************************************** */
|
||||
#pragma once
|
||||
+#include <config.h>
|
||||
#include <linux/version.h>
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)
|
||||
+#ifdef HAVE_LINUX_NVME_IOCTL_H
|
||||
#include <linux/nvme_ioctl.h>
|
||||
#else
|
||||
#include <linux/nvme.h>
|
4
linuxpba.sh
Normal file
4
linuxpba.sh
Normal file
@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
if getargbool 0 linuxpba ; then
|
||||
linuxpba 2>/dev/null
|
||||
fi
|
19
module-setup.sh
Normal file
19
module-setup.sh
Normal file
@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
# called by dracut
|
||||
check() {
|
||||
require_binaries linuxpba sedutil-cli || return 1
|
||||
return 255
|
||||
}
|
||||
|
||||
# called by dracut
|
||||
depends() {
|
||||
return 0
|
||||
}
|
||||
|
||||
# called by dracut
|
||||
install() {
|
||||
inst_hook cmdline 00 "$moddir/linuxpba.sh"
|
||||
inst_multiple linuxpba sedutil-cli
|
||||
}
|
||||
|
3
sedutil-1.15.1.tar.gz
Normal file
3
sedutil-1.15.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9259466b4f73af276153c5245834a56f48f8721ea7263611b5d5e8326bc43d9e
|
||||
size 297551
|
94
sedutil-pba.pl
Normal file
94
sedutil-pba.pl
Normal file
@ -0,0 +1,94 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# PreBoot Authentication Image Creator for
|
||||
# Unlocking Self Encrypting Drive
|
||||
#
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use File::Path qw(make_path remove_tree);
|
||||
use File::Temp qw(tempdir);
|
||||
use File::Copy qw(copy);
|
||||
|
||||
die "no sedutil module for dracut, stopped" unless (`dracut --list-modules 2>/dev/null` =~ /\bsedutil\b/);
|
||||
|
||||
my $kver = `uname -r`;
|
||||
chomp $kver;
|
||||
my $scratch = tempdir('mkpba-XXXXX') or die "$!, stopped";
|
||||
my $bdir = "boot";
|
||||
my $gdir = "$bdir/grub";
|
||||
my $initrd = "initrd-$kver";
|
||||
my $kern = "vmlinuz-$kver";
|
||||
my $cfg = "grub.cfg";
|
||||
my $iso = "linuxpba-$kver.iso";
|
||||
my $rescue = "sedutil-rescue-$kver.iso";
|
||||
my $keep = 0;
|
||||
|
||||
make_path("$scratch/$bdir", "$scratch/$gdir", {verbose => 1}) == 2
|
||||
or die "$!, stopped";
|
||||
|
||||
system ("dracut", "--force", "-m", "sedutil base", "$scratch/$bdir/$initrd") == 0
|
||||
or die "stopped";
|
||||
|
||||
copy("/$bdir/$kern", "$scratch/$bdir")
|
||||
or die "$!, stopped";
|
||||
|
||||
open(CFG, ">", "$scratch/$gdir/$cfg")
|
||||
or die "$!, stopped";
|
||||
|
||||
print CFG <<"END";
|
||||
set gfxpayload=keep
|
||||
|
||||
ext=""
|
||||
if [ x\$grub_platform = xefi ]; then
|
||||
ext=efi
|
||||
fi
|
||||
|
||||
echo 'Loading Linux $kver ...'
|
||||
linux\$ext /$bdir/$kern libata.allow_tpm=1 quiet rd.hostonly=0 linuxpba
|
||||
echo 'Loading sedutilpba-$kver.img ...'
|
||||
initrd\$ext /$bdir/$initrd
|
||||
echo 'Boot ...'
|
||||
boot
|
||||
END
|
||||
|
||||
close(CFG);
|
||||
|
||||
system ("grub2-script-check", "--verbose", "$scratch/$gdir/$cfg") == 0
|
||||
or die "stopped";
|
||||
|
||||
system ("grub2-mkrescue", "-o", $iso, $scratch) == 0
|
||||
or die "stopped";
|
||||
|
||||
system ("dracut", "--force", "-m", "sedutil base", "--include", "./$iso", "/$iso", "$scratch/$bdir/$initrd") == 0
|
||||
or die "stopped";
|
||||
|
||||
open(CFG, ">", "$scratch/$gdir/$cfg")
|
||||
or die "$!, stopped";
|
||||
|
||||
print CFG <<"END";
|
||||
set gfxpayload=keep
|
||||
|
||||
ext=""
|
||||
if [ x\$grub_platform = xefi ]; then
|
||||
ext=efi
|
||||
fi
|
||||
|
||||
echo 'Loading Linux $kver ...'
|
||||
linux\$ext /$bdir/$kern libata.allow_tpm=1 quiet rd.hostonly=0 rd.break=cmdline
|
||||
echo 'Loading sedutilpba-$kver.img ...'
|
||||
initrd\$ext /$bdir/$initrd
|
||||
echo 'Boot ...'
|
||||
boot
|
||||
END
|
||||
|
||||
close(CFG);
|
||||
|
||||
system ("grub2-script-check", "--verbose", "$scratch/$gdir/$cfg") == 0
|
||||
or die "stopped";
|
||||
|
||||
system ("grub2-mkrescue", "-o", $rescue, $scratch) == 0
|
||||
or die "stopped";
|
||||
|
||||
remove_tree($scratch, {verbose => 1}) unless ($keep);
|
4
sedutil.changes
Normal file
4
sedutil.changes
Normal file
@ -0,0 +1,4 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 20 07:54:37 UTC 2017 - mchang@suse.com
|
||||
|
||||
- Initial version
|
87
sedutil.spec
Normal file
87
sedutil.spec
Normal file
@ -0,0 +1,87 @@
|
||||
#
|
||||
# spec file for package sedutil
|
||||
#
|
||||
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# 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 http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
%define _dracutmodulesdir %{_libexecdir}/dracut/modules.d
|
||||
Name: sedutil
|
||||
Version: 1.15.1
|
||||
Release: 0
|
||||
Summary: Tools to manage the activation and use of self encrypting drives
|
||||
License: GPL-3.0+
|
||||
Group: System/Management
|
||||
Url: https://github.com/Drive-Trust-Alliance/sedutil/wiki
|
||||
Source0: https://github.com/Drive-Trust-Alliance/%{name}/archive/%{release}/%{name}-%{version}.tar.gz
|
||||
Source1: module-setup.sh
|
||||
Source2: linuxpba.sh
|
||||
Source3: sedutil-pba.pl
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Patch: kernel_nvme_header.patch
|
||||
ExclusiveArch: x86_64
|
||||
|
||||
%description
|
||||
The Drive Trust Alliance software (sedutil) is an Open Source (GPLv3)
|
||||
effort to make Self Encrypting Drive technology freely available to
|
||||
everyone. It is a combination of the two known available Open Source
|
||||
code bases today: msed and OpalTool.
|
||||
|
||||
sedutil is a Self-Encrypting Drive (SED) management program and
|
||||
Pre-Boot Authorization (PBA) image that will allow the activation and
|
||||
use of self encrypting drives that comply with the Trusted Computing
|
||||
Group Opal 2.0 SSC.
|
||||
|
||||
This package provides the sedutil-cli and linuxpba binaries, but not
|
||||
the PBA image itself.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch -p1
|
||||
|
||||
%build
|
||||
autoreconf -fi
|
||||
%configure
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
%make_install
|
||||
|
||||
install -m 0755 -d %{buildroot}/%{_dracutmodulesdir}/00sedutil/
|
||||
install -m 0755 %{SOURCE1} %{buildroot}/%{_dracutmodulesdir}/00sedutil/
|
||||
install -m 0755 %{SOURCE2} %{buildroot}/%{_dracutmodulesdir}/00sedutil/
|
||||
install -m 0755 %{SOURCE3} %{buildroot}/%{_sbindir}/
|
||||
|
||||
%post
|
||||
%postun
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%doc README.md Common/Copyright.txt Common/ReadMe.txt linux/PSIDRevert_LINUX.txt
|
||||
%license Common/LICENSE.txt
|
||||
%{_mandir}/man8/sedutil-cli.8*
|
||||
%{_sbindir}/sedutil-cli
|
||||
%{_sbindir}/linuxpba
|
||||
%dir %{_libexecdir}/dracut
|
||||
%dir %{_libexecdir}/dracut/modules.d
|
||||
%dir %{_dracutmodulesdir}/00sedutil/
|
||||
%{_dracutmodulesdir}/00sedutil/module-setup.sh
|
||||
%{_dracutmodulesdir}/00sedutil/linuxpba.sh
|
||||
%{_sbindir}/sedutil-pba.pl
|
||||
|
||||
%changelog
|
||||
|
Loading…
Reference in New Issue
Block a user