summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-admin/coreboot-utils/Manifest1
-rw-r--r--app-admin/coreboot-utils/coreboot-utils-4.18.ebuild66
-rw-r--r--app-admin/coreboot-utils/files/coreboot-utils-4.18-flags.patch35
-rw-r--r--app-admin/coreboot-utils/files/coreboot-utils-4.18-musl.patch75
-rw-r--r--app-admin/coreboot-utils/metadata.xml7
-rw-r--r--app-arch/cpio/files/cpio-2.13-sysmacros-glibc-2.26.patch4
6 files changed, 187 insertions, 1 deletions
diff --git a/app-admin/coreboot-utils/Manifest b/app-admin/coreboot-utils/Manifest
new file mode 100644
index 000000000000..3a7daa58eb9a
--- /dev/null
+++ b/app-admin/coreboot-utils/Manifest
@@ -0,0 +1 @@
+DIST coreboot-4.18.tar.xz 57868424 BLAKE2B 981d8c1cf007be15a85d5860dcfcfa6fa637f66438ff4ef6619491aaf0192e622bfbe9608deb13a975d899c94430bc3d1f0eb3a5a3dc6598f49a726b8ff641e1 SHA512 b363850d31074950bc710bd0a47a896a6c6ef23c53d720ae90ec2257697a3eeeb211e163199064b5e532e5b1e86cdecf997276d742435deeaaacfb19b83f4e6d
diff --git a/app-admin/coreboot-utils/coreboot-utils-4.18.ebuild b/app-admin/coreboot-utils/coreboot-utils-4.18.ebuild
new file mode 100644
index 000000000000..a9115a5fe9d9
--- /dev/null
+++ b/app-admin/coreboot-utils/coreboot-utils-4.18.ebuild
@@ -0,0 +1,66 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="A selection from coreboot/utils useful in general"
+HOMEPAGE="https://www.coreboot.org/"
+SRC_URI="https://coreboot.org/releases/coreboot-${PV}.tar.xz"
+
+LICENSE="GPL-2+ GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="sys-apps/pciutils
+ sys-libs/zlib"
+RDEPEND="${DEPEND}"
+BDEPEND=""
+
+S="${WORKDIR}/coreboot-${PV}"
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.18-musl.patch
+ "${FILESDIR}"/${PN}-4.18-flags.patch
+)
+
+coreboot_utils=(
+ #cbfstool has textrels and is not really necessary outside coreboot
+ cbmem
+ ifdtool
+ intelmetool
+ inteltool
+ me_cleaner
+ nvramtool
+ pmh7tool
+ superiotool
+)
+
+src_prepare() {
+ default
+ # drop some CFLAGS that hurt compilation on modern toolchains or
+ # force optimisation
+ # can't do this in one sed, because it all happens back-to-back
+ for e in '-O[01234567s]' '-g' '-Werror' '-ansi' '-pendantic' ; do
+ sed -i -e 's/ '"${e}"'\( \|$\)/ /g' util/*/Makefile{.inc,} || die
+ done
+}
+
+src_compile() {
+ # selection from README.md that seem useful outside coreboot
+
+ tc-export CC
+ export HOSTCFLAGS="${CFLAGS}"
+ for tool in ${coreboot_utils[*]} ; do
+ [[ -f util/${tool}/Makefile ]] || continue
+ emake -C util/${tool} V=1
+ done
+}
+
+src_install() {
+ exeinto /usr/sbin
+ for tool in ${coreboot_utils[*]} ; do
+ [[ -e util/${tool}/${tool} ]] && doexe util/${tool}/${tool}
+ [[ -e util/${tool}/${tool}.py ]] && doexe util/${tool}/${tool}.py
+ done
+}
diff --git a/app-admin/coreboot-utils/files/coreboot-utils-4.18-flags.patch b/app-admin/coreboot-utils/files/coreboot-utils-4.18-flags.patch
new file mode 100644
index 000000000000..e42e6b2921da
--- /dev/null
+++ b/app-admin/coreboot-utils/files/coreboot-utils-4.18-flags.patch
@@ -0,0 +1,35 @@
+- ifdtool: respect LDFLAGS
+- nvramtool: respect CFLAGS
+- pmh7tool: respect CC, CFLAGS
+
+--- a/util/ifdtool/Makefile.inc 2022-10-16 20:14:31.000000000 +0000
++++ b/util/ifdtool/Makefile.inc 2022-12-25 11:38:47.572534621 +0000
+@@ -16,4 +16,4 @@
+
+ $(objutil)/ifdtool/ifdtool: $(addprefix $(objutil)/ifdtool/,$(ifdtoolobj))
+ printf " IFDTOOL\n"
+- $(HOSTCC) $(addprefix $(objutil)/ifdtool/,$(ifdtoolobj)) -o $@
++ $(HOSTCC) $(LDFLAGS) $(addprefix $(objutil)/ifdtool/,$(ifdtoolobj)) -o $@
+--- a/util/nvramtool/Makefile 2022-10-16 20:14:31.000000000 +0000
++++ b/util/nvramtool/Makefile 2022-12-25 11:39:15.924345609 +0000
+@@ -11,7 +11,7 @@
+ CC ?= gcc
+ INSTALL = /usr/bin/env install
+ PREFIX = /usr/local
+-CFLAGS = -O2 -g -Wall -Wextra -Wmissing-prototypes -I. -DCMOS_HAL=1
++CFLAGS += -O2 -g -Wall -Wextra -Wmissing-prototypes -I. -DCMOS_HAL=1
+ #CFLAGS = -Os -Wall
+
+ CLI_OBJS = cli/nvramtool.o cli/opts.o
+--- a/util/pmh7tool/Makefile 2022-10-16 20:14:31.000000000 +0000
++++ b/util/pmh7tool/Makefile 2022-12-25 11:39:38.491195945 +0000
+@@ -1,7 +1,7 @@
+ ## SPDX-License-Identifier: GPL-2.0-only
+
+-CC = gcc
+-CFLAGS = -O2 -Wall -Wextra -Werror
++CC ?= gcc
++CFLAGS ?= -O2 -Wall -Wextra -Werror
+ PROGRAM = pmh7tool
+ INSTALL = /usr/bin/env install
+ PREFIX = /usr/local
diff --git a/app-admin/coreboot-utils/files/coreboot-utils-4.18-musl.patch b/app-admin/coreboot-utils/files/coreboot-utils-4.18-musl.patch
new file mode 100644
index 000000000000..435977ac9c0b
--- /dev/null
+++ b/app-admin/coreboot-utils/files/coreboot-utils-4.18-musl.patch
@@ -0,0 +1,75 @@
+Author: Fabian Groffen <grobian@gentoo.org>
+Date: Wed Dec 14 17:28:13 2022 +0100
+
+ musl: clumpsy buildfixes
+
+diff --git a/src/arch/x86/include/arch/mmio.h b/src/arch/x86/include/arch/mmio.h
+index c2aa0fb910..b2a37a03dd 100644
+--- a/src/arch/x86/include/arch/mmio.h
++++ b/src/arch/x86/include/arch/mmio.h
+@@ -5,6 +5,10 @@
+
+ #include <stdint.h>
+
++#ifndef __always_inline
++#define __always_inline inline
++#endif
++
+ static __always_inline uint8_t read8(const volatile void *addr)
+ {
+ return *((volatile uint8_t *)(addr));
+diff --git a/util/inteltool/inteltool.h b/util/inteltool/inteltool.h
+index 5b40721262..2d0da33d72 100644
+--- a/util/inteltool/inteltool.h
++++ b/util/inteltool/inteltool.h
+@@ -12,6 +12,7 @@
+ #if defined(__GLIBC__)
+ #include <sys/io.h>
+ #endif
++#include <sys/io.h>
+ #if (defined(__MACH__) && defined(__APPLE__))
+ /* DirectHW is available here: https://www.coreboot.org/DirectHW */
+ #define __DARWIN__
+diff --git a/util/superiotool/superiotool.c b/util/superiotool/superiotool.c
+index ed18c13e62..fa2c6ce35d 100644
+--- a/util/superiotool/superiotool.c
++++ b/util/superiotool/superiotool.c
+@@ -320,6 +320,7 @@ int main(int argc, char *argv[])
+ }
+ }
+
++#if 0
+ #if defined(__FreeBSD__)
+ if ((io_fd = open("/dev/io", O_RDWR)) < 0) {
+ perror("/dev/io");
+@@ -330,6 +331,7 @@ int main(int argc, char *argv[])
+ printf("Superiotool must be run as root.\n");
+ exit(1);
+ }
++#endif
+
+ print_version();
+
+diff --git a/util/superiotool/superiotool.h b/util/superiotool/superiotool.h
+index a621ae5274..d5f44fece4 100644
+--- a/util/superiotool/superiotool.h
++++ b/util/superiotool/superiotool.h
+@@ -24,6 +24,10 @@
+ # endif
+ #endif
+
++#include <sys/types.h>
++#include <stdint.h>
++#include <sys/io.h>
++
+ #if defined(__FreeBSD__)
+ #include <sys/types.h>
+ #include <machine/cpufunc.h>
+@@ -89,6 +93,7 @@ static __inline__ uint32_t inl(uint16_t port)
+ __asm__ __volatile__ ("inl %1,%0":"=a" (value):"Nd" (port));
+ return value;
+ }
++
+ #endif
+
+ #define USAGE "Usage: superiotool [-d] [-e] [-a] [-l] [-V] [-v] [-h]\n\n\
diff --git a/app-admin/coreboot-utils/metadata.xml b/app-admin/coreboot-utils/metadata.xml
new file mode 100644
index 000000000000..e33cf762c720
--- /dev/null
+++ b/app-admin/coreboot-utils/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>grobian@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/app-arch/cpio/files/cpio-2.13-sysmacros-glibc-2.26.patch b/app-arch/cpio/files/cpio-2.13-sysmacros-glibc-2.26.patch
index 0f902f060f86..abd1b663496d 100644
--- a/app-arch/cpio/files/cpio-2.13-sysmacros-glibc-2.26.patch
+++ b/app-arch/cpio/files/cpio-2.13-sysmacros-glibc-2.26.patch
@@ -1,10 +1,12 @@
--- a/am/ax_compile_check_rettype.m4
+++ b/am/ax_compile_check_rettype.m4
-@@ -70,6 +70,7 @@ AC_CACHE_VAL(AC_CV_NAME,
+@@ -70,6 +70,9 @@ AC_CACHE_VAL(AC_CV_NAME,
[for ac_type in char short int long "long long" $4
do
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
++#ifdef HAVE_SYS_SYSMACROS_H
+#include <sys/sysmacros.h>
++#endif
#include <sys/types.h>
$3
]], [[switch (0) case 0: case (sizeof ($1($2)) == sizeof ($ac_type)):;]])], [AC_CV_NAME=$ac_type])