sys-block/sedutil: new package for Chromium OS
authorMike Frysinger <vapier@gentoo.org>
Tue, 17 May 2016 01:46:00 +0000 (21:46 -0400)
committerMike Frysinger <vapier@gentoo.org>
Tue, 17 May 2016 02:53:46 +0000 (22:53 -0400)
sys-block/sedutil/Manifest [new file with mode: 0644]
sys-block/sedutil/files/nvme.h [new file with mode: 0644]
sys-block/sedutil/metadata.xml [new file with mode: 0644]
sys-block/sedutil/sedutil-1.12.ebuild [new file with mode: 0644]

diff --git a/sys-block/sedutil/Manifest b/sys-block/sedutil/Manifest
new file mode 100644 (file)
index 0000000..5662aa3
--- /dev/null
@@ -0,0 +1 @@
+DIST sedutil-1.12.tar.gz 214066 SHA256 5509d4279cfb316f33730c5cb06f8162ae212c7f4d31d206642d67cc8be245c1 SHA512 f17fbb5a6d71d5bdd59d0fc85eed11036a8e365545133bc1374a733ce1975d6c8dd2cdc500bd46cffbec1f2bef621a98ca392e0dd314734c1ef12c073d70b0de WHIRLPOOL 299e35256de3c49a717fff727f45a1aaeeb2f65e1e3fb8afc4ba0af1626101e0f95618f182a32d90fee6278d980670df2c444219346fb6783fbe630d11209970
diff --git a/sys-block/sedutil/files/nvme.h b/sys-block/sedutil/files/nvme.h
new file mode 100644 (file)
index 0000000..448aca0
--- /dev/null
@@ -0,0 +1,90 @@
+/* stub to deal with renamed/neutered nvme.h header */
+
+#include <linux/types.h>
+#include <linux/nvme_ioctl.h>
+
+struct nvme_id_power_state {
+       __le16                  max_power;      /* centiwatts */
+       __u8                    rsvd2;
+       __u8                    flags;
+       __le32                  entry_lat;      /* microseconds */
+       __le32                  exit_lat;       /* microseconds */
+       __u8                    read_tput;
+       __u8                    read_lat;
+       __u8                    write_tput;
+       __u8                    write_lat;
+       __le16                  idle_power;
+       __u8                    idle_scale;
+       __u8                    rsvd19;
+       __le16                  active_power;
+       __u8                    active_work_scale;
+       __u8                    rsvd23[9];
+};
+
+enum {
+       NVME_PS_FLAGS_MAX_POWER_SCALE   = 1 << 0,
+       NVME_PS_FLAGS_NON_OP_STATE      = 1 << 1,
+};
+
+struct nvme_id_ctrl {
+       __le16                  vid;
+       __le16                  ssvid;
+       char                    sn[20];
+       char                    mn[40];
+       char                    fr[8];
+       __u8                    rab;
+       __u8                    ieee[3];
+       __u8                    mic;
+       __u8                    mdts;
+       __le16                  cntlid;
+       __le32                  ver;
+       __u8                    rsvd84[172];
+       __le16                  oacs;
+       __u8                    acl;
+       __u8                    aerl;
+       __u8                    frmw;
+       __u8                    lpa;
+       __u8                    elpe;
+       __u8                    npss;
+       __u8                    avscc;
+       __u8                    apsta;
+       __le16                  wctemp;
+       __le16                  cctemp;
+       __u8                    rsvd270[242];
+       __u8                    sqes;
+       __u8                    cqes;
+       __u8                    rsvd514[2];
+       __le32                  nn;
+       __le16                  oncs;
+       __le16                  fuses;
+       __u8                    fna;
+       __u8                    vwc;
+       __le16                  awun;
+       __le16                  awupf;
+       __u8                    nvscc;
+       __u8                    rsvd531;
+       __le16                  acwu;
+       __u8                    rsvd534[2];
+       __le32                  sgls;
+       __u8                    rsvd540[1508];
+       struct nvme_id_power_state      psd[32];
+       __u8                    vs[1024];
+};
+
+enum nvme_admin_opcode {
+       nvme_admin_delete_sq            = 0x00,
+       nvme_admin_create_sq            = 0x01,
+       nvme_admin_get_log_page         = 0x02,
+       nvme_admin_delete_cq            = 0x04,
+       nvme_admin_create_cq            = 0x05,
+       nvme_admin_identify             = 0x06,
+       nvme_admin_abort_cmd            = 0x08,
+       nvme_admin_set_features         = 0x09,
+       nvme_admin_get_features         = 0x0a,
+       nvme_admin_async_event          = 0x0c,
+       nvme_admin_activate_fw          = 0x10,
+       nvme_admin_download_fw          = 0x11,
+       nvme_admin_format_nvm           = 0x80,
+       nvme_admin_security_send        = 0x81,
+       nvme_admin_security_recv        = 0x82,
+};
diff --git a/sys-block/sedutil/metadata.xml b/sys-block/sedutil/metadata.xml
new file mode 100644 (file)
index 0000000..d42fdfa
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+       <email>base-system@gentoo.org</email>
+</maintainer>
+<upstream>
+       <remote-id type="github">Drive-Trust-Alliance/sedutil</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/sys-block/sedutil/sedutil-1.12.ebuild b/sys-block/sedutil/sedutil-1.12.ebuild
new file mode 100644 (file)
index 0000000..7e65008
--- /dev/null
@@ -0,0 +1,46 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit toolchain-funcs
+
+DESCRIPTION="The Drive Trust Alliance Self Encrypting Drive Utility"
+HOMEPAGE="https://github.com/Drive-Trust-Alliance/sedutil"
+SRC_URI="https://github.com/Drive-Trust-Alliance/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+src_prepare() {
+       # https://github.com/Drive-Trust-Alliance/sedutil/pull/49
+       find -name '*.mk' -exec sed -E -i 's: -(Werror|g|O[0-9]?) : :g' {} + || die
+       mkdir linux/linux || die
+       cp "${FILESDIR}"/nvme.h linux/linux/ || die
+}
+
+src_configure() {
+       case $(tc-arch) in
+       x86)   sedutil_arch="Release_i686" ;;
+       amd64) sedutil_arch="Release_x86_64" ;;
+       *)     die "unsupported architecture" ;;
+       esac
+}
+
+src_compile() {
+       emake \
+               -C "linux/CLI" \
+               V=1 \
+               CONF="${sedutil_arch}" \
+               CC="$(tc-getCC)" \
+               CXX="$(tc-getCXX)" \
+               CFLAGS="${CFLAGS}" \
+               CXXFLAGS="${CXXFLAGS}"
+}
+
+src_install() {
+       dobin "linux/CLI/dist/${sedutil_arch}/GNU-Linux/sedutil-cli"
+       dodoc README.md
+}