From cd5fcff04c13aea38f29d32cd385e89ae75cac3d Mon Sep 17 00:00:00 2001 From: Sayan Chowdhury Date: Tue, 16 May 2023 11:44:28 +0530 Subject: [PATCH] sys-apps/pciutils: Sync with Gentoo It's from Gentoo commit 1f6e00fbb2e1491e868b5b10472023fe8854a75b. --- .../portage-stable/sys-apps/pciutils/Manifest | 4 +- .../files/pciutils-3.1.9-static-pc.patch | 13 -- .../files/pciutils-3.8.0-no-which.patch | 34 ++++ .../files/pciutils-3.8.0-pkg-config.patch | 19 ++ .../sys-apps/pciutils/metadata.xml | 21 ++- .../sys-apps/pciutils/pciutils-3.10.0.ebuild | 174 ++++++++++++++++++ .../pciutils/pciutils-3.7.0-r2.ebuild | 111 ----------- .../pciutils/pciutils-3.8.0-r1.ebuild | 171 +++++++++++++++++ .../sys-apps/pciutils/pciutils-3.9.0.ebuild | 166 +++++++++++++++++ 9 files changed, 579 insertions(+), 134 deletions(-) delete mode 100644 sdk_container/src/third_party/portage-stable/sys-apps/pciutils/files/pciutils-3.1.9-static-pc.patch create mode 100644 sdk_container/src/third_party/portage-stable/sys-apps/pciutils/files/pciutils-3.8.0-no-which.patch create mode 100644 sdk_container/src/third_party/portage-stable/sys-apps/pciutils/files/pciutils-3.8.0-pkg-config.patch create mode 100644 sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.10.0.ebuild delete mode 100644 sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.7.0-r2.ebuild create mode 100644 sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.8.0-r1.ebuild create mode 100644 sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.9.0.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/Manifest index af496acdd6..c0806c45df 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/Manifest @@ -1 +1,3 @@ -DIST pciutils-3.7.0.tar.gz 516418 BLAKE2B fca6720cff73ec20559c666c76fdcd3b59cdf0e33e2c3894a82590d77c5d51cf22e667fe65d9f66a248a624c2b9c868f6e9b69f45f4b6d704b637afe55041e6a SHA512 8a8fb9dc44a8dd31f80e45a48f6693452c11d343b9dfed87dd5cea6846f38d001f294e4010cd7c0545e238fde45b0e9a8e88c67a43d80676a585336e3665a631 +DIST pciutils-3.10.0.tar.gz 931711 BLAKE2B 2e1255eb5508c9d1339f5bc772c2592a03cae4d8d097e8939748c9bb5d5d949be53d705d1b7d903f7ea88b2abeea91e39de16e39d2f46f0a1f62f8a9e32c6faa SHA512 3da1af4af8b0fa3cf4d3f06095524e25dc292182beec10aa2c16c5c6ba751fe469d0e7f54e43413b6f3f5bcdbd1fba3c66df1d8e39d2e1962ae36a2d9c06238e +DIST pciutils-3.8.0.tar.gz 575255 BLAKE2B 7339189f7115af31ccc19663d54e12ef966fbcd75c6b6b4c28c8ddcaafa3e233313ca14300ef70100edb00f5f2e1e767af9d6527a9d836edd07b598f0a40f4f4 SHA512 4b0de02a54c6ed19d5ea85a01d89a62386000bc0f816498872479aba26fb007a8c394cba3f95e77a7ffe52d36ad2726169b7b83bda5ab0647f00e49d8a34bf15 +DIST pciutils-3.9.0.tar.gz 908219 BLAKE2B 59d2a151b114691980b8f0a0bfdf8e48b9e1a0a9976df6dbc94962c251d8bfc61e7bd3b0f3c47a4295f52b5df67ad0e44ed6f2e6a87728e213e4ef0b8a55c028 SHA512 e17225c2adcc21c9ff4253998aec5805ae5e031888fa01841a1ff680796f7515f9dd6e5c2e0588edba854f66f1268ba8e28ae1a2f794574e715fec8a8c8def4f diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/files/pciutils-3.1.9-static-pc.patch b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/files/pciutils-3.1.9-static-pc.patch deleted file mode 100644 index 9e63b7ecd6..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/files/pciutils-3.1.9-static-pc.patch +++ /dev/null @@ -1,13 +0,0 @@ -make sure all lib entries get into libs.private in the .pc file - ---- a/lib/Makefile -+++ b/lib/Makefile -@@ -61,7 +61,7 @@ $(PCILIBPC): libpci.pc.in - -e 's,@LIBDIR@,$(LIBDIR),' \ - -e 's,@IDSDIR@,$(IDSDIR),' \ - -e 's,@VERSION@,$(VERSION),' \ -- -e 's,@LDLIBS@,$(LDLIBS),' -+ -e 's,@LDLIBS@,$(LDLIBS) $(LIB_LDLIBS),' - - init.o: init.c $(INCL) - access.o: access.c $(INCL) diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/files/pciutils-3.8.0-no-which.patch b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/files/pciutils-3.8.0-no-which.patch new file mode 100644 index 0000000000..3024d73555 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/files/pciutils-3.8.0-no-which.patch @@ -0,0 +1,34 @@ +https://github.com/pciutils/pciutils/pull/105 + +From 91bf24dd3c91f826377548b7e164b49cfed56f9a Mon Sep 17 00:00:00 2001 +From: Sam James +Date: Sun, 19 Jun 2022 23:52:22 +0100 +Subject: [PATCH 1/2] lib/configure: drop usage of which + +'which' is not required by POSIX and is an external command which may not be +available, and 'command -v' does the job just fine. + +Debian and Gentoo at least are both making efforts to drop which from +their base system package list. + +Signed-off-by: Sam James +--- a/lib/configure ++++ b/lib/configure +@@ -238,7 +238,7 @@ if [ "$sys" = linux ] ; then + PKG_CONFIG=pkg-config + fi + if [ "$LIBKMOD" != no ] ; then +- if ! which $PKG_CONFIG >/dev/null ; then ++ if ! command -v $PKG_CONFIG >/dev/null ; then + echo_n "($PKG_CONFIG not found) " + elif $PKG_CONFIG libkmod ; then + LIBKMOD_DETECTED=1 +@@ -268,7 +268,7 @@ if [ "$sys" = linux ] ; then + if [ "$HWDB" = yes -o "$HWDB" = no ] ; then + echo "$HWDB (set manually)" + else +- if `which pkg-config >/dev/null && pkg-config --atleast-version=196 libudev` ; then ++ if `command -v pkg-config >/dev/null && pkg-config --atleast-version=196 libudev` ; then + HWDB=yes + else + HWDB=no diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/files/pciutils-3.8.0-pkg-config.patch b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/files/pciutils-3.8.0-pkg-config.patch new file mode 100644 index 0000000000..4630609bad --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/files/pciutils-3.8.0-pkg-config.patch @@ -0,0 +1,19 @@ +https://github.com/pciutils/pciutils/pull/105 + +From a74832198ab36683a867c79b3d6ef2cac9baad55 Mon Sep 17 00:00:00 2001 +From: Sam James +Date: Sun, 19 Jun 2022 23:53:42 +0100 +Subject: [PATCH 2/2] lib/configure: respect $PKG_CONFIG completely + +Signed-off-by: Sam James +--- a/lib/configure ++++ b/lib/configure +@@ -268,7 +268,7 @@ if [ "$sys" = linux ] ; then + if [ "$HWDB" = yes -o "$HWDB" = no ] ; then + echo "$HWDB (set manually)" + else +- if `command -v pkg-config >/dev/null && pkg-config --atleast-version=196 libudev` ; then ++ if `command -v $PKG_CONFIG >/dev/null && $PKG_CONFIG --atleast-version=196 libudev` ; then + HWDB=yes + else + HWDB=no diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/metadata.xml index c6961f232f..708b18c783 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/metadata.xml @@ -1,13 +1,16 @@ - - base-system@gentoo.org - Gentoo Base System - - - Enable support for querying the central database of PCI IDs using DNS - Enable sys-apps/kmod support for the -k switch in lspci command - Support compressed pci.ids database - + + base-system@gentoo.org + Gentoo Base System + + + Enable support for querying the central database of PCI IDs using DNS + Enable sys-apps/kmod support for the -k switch in lspci command + Support compressed pci.ids database + + + pciutils/pciutils + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.10.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.10.0.ebuild new file mode 100644 index 0000000000..5e89fcabdf --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.10.0.ebuild @@ -0,0 +1,174 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs multilib-minimal flag-o-matic + +DESCRIPTION="Various utilities dealing with the PCI bus" +HOMEPAGE="https://mj.ucw.cz/sw/pciutils/ https://git.kernel.org/?p=utils/pciutils/pciutils.git" +SRC_URI="https://mj.ucw.cz/download/linux/pci/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="dns +kmod static-libs +udev zlib" +REQUIRED_USE="static-libs? ( !udev )" + +# Have the sub-libs in RDEPEND with [static-libs] since, logically, +# our libpci.a depends on libz.a/etc... at runtime. +LIB_DEPEND="zlib? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+),${MULTILIB_USEDEP}] )" +DEPEND=" + kmod? ( sys-apps/kmod ) + udev? ( >=virtual/libudev-208[${MULTILIB_USEDEP}] ) + static-libs? ( ${LIB_DEPEND} ) + !static-libs? ( ${LIB_DEPEND//static-libs([+-]),} ) +" +RDEPEND=" + ${DEPEND} + sys-apps/hwdata +" +# See bug #847133 re binutils check +BDEPEND=" + || ( >=sys-devel/binutils-2.37:* sys-devel/lld sys-devel/native-cctools ) + kmod? ( virtual/pkgconfig ) +" + +MULTILIB_WRAPPED_HEADERS=( /usr/include/pci/config.h ) + +switch_config() { + [[ $# -ne 2 ]] && return 1 + local opt=$1 val=$2 + + sed "s@^\(${opt}=\).*\$@\1${val}@" -i Makefile || die + return 0 +} + +check_binutils_version() { + if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && ! tc-ld-is-gold && ! tc-ld-is-lld ; then + # Okay, hopefully it's Binutils' bfd. + # bug #847133 + + # Convert this: + # ``` + # GNU ld (Gentoo 2.38 p4) 2.38 + # Copyright (C) 2022 Free Software Foundation, Inc. + # This program is free software; you may redistribute it under the terms of + # the GNU General Public License version 3 or (at your option) a later version. + # This program has absolutely no warranty. + # ``` + # + # into... + # ``` + # 2.38 + # ``` + local ver=$($(tc-getLD) --version 2>&1 | head -n 1 | rev | cut -d' ' -f1 | rev) + + if ! [[ ${ver} =~ [0-9].[0-9][0-9] ]] ; then + # Skip if unrecognised format so we don't pass something + # odd into ver_cut. + return + fi + + ver_major=$(ver_cut 1 "${ver}") + ver_minor=$(ver_cut 2 "${ver}") + + # We use 2.37 here, not 2.35, as https://github.com/pciutils/pciutils/issues/98 mentions + # because we've had other miscompiles with older Binutils (not just build failures!) + # and we don't want people running any unsupported versions of Binutils. An example + # of this is where glibc is completely broken with old binutils: bug #802036. It's + # just not sustainable to support. + if [[ ${ver_major} -eq 2 && ${ver_minor} -lt 37 ]] ; then + eerror "Old version of binutils activated! ${P} cannot be built with an old version." + eerror "Please follow these steps:" + eerror "1. Select a newer binutils (>= 2.37) using binutils-config" + eerror " (If no such version is installed, run emerge -v1 sys-devel/binutils)" + eerror "2. Run: . /etc/profile" + eerror "3. Try emerging again with: emerge -v1 ${CATEGORY}/${P}" + eerror "4. Complete your world upgrade if you were performing one." + eerror "5. Perform a depclean (emerge -acv)" + eerror "\tYou MUST depclean after every world upgrade in future!" + die "Old binutils found! Change to a newer ld using binutils-config (bug #847133)." + fi + fi +} + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && check_binutils_version +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && check_binutils_version +} + +src_prepare() { + default + + if use static-libs ; then + cp -pPR "${S}" "${S}.static" || die + mv "${S}.static" "${S}/static" || die + fi + + multilib_copy_sources +} + +multilib_src_configure() { + # bug #640836, bug #852929 + # Seems to be fixed in 3.10.0: + # https://github.com/pciutils/pciutils/commit/2d16e3a7875a9cb5abd60713bb2e39b536a7dec4 + #filter-lto + + # bug #471102 + append-lfs-flags +} + +pemake() { + emake \ + HOST="${CHOST}" \ + CROSS_COMPILE="${CHOST}-" \ + CC="$(tc-getCC)" \ + AR="$(tc-getAR)" \ + PKG_CONFIG="$(tc-getPKG_CONFIG)" \ + RANLIB="$(tc-getRANLIB)" \ + DNS=$(usex dns) \ + IDSDIR='$(SHAREDIR)/hwdata' \ + MANDIR='$(SHAREDIR)/man' \ + PREFIX="${EPREFIX}/usr" \ + SHARED="yes" \ + STRIP="" \ + ZLIB=$(usex zlib) \ + PCI_COMPRESSED_IDS=0 \ + PCI_IDS=pci.ids \ + LIBDIR="\${PREFIX}/$(get_libdir)" \ + LIBKMOD=$(multilib_native_usex kmod) \ + HWDB=$(usex udev) \ + "$@" +} + +multilib_src_compile() { + pemake OPT="${CFLAGS}" all + + if use static-libs ; then + pemake \ + -C "${BUILD_DIR}"/static \ + OPT="${CFLAGS}" \ + SHARED="no" \ + lib/libpci.a + fi +} + +multilib_src_install() { + pemake DESTDIR="${D}" install install-lib + + use static-libs && dolib.a "${BUILD_DIR}"/static/lib/libpci.a +} + +multilib_src_install_all() { + dodoc ChangeLog README TODO + + rm "${ED}"/usr/sbin/update-pciids "${ED}"/usr/share/man/man8/update-pciids.8* || die + rm -r "${ED}"/usr/share/hwdata || die + + newinitd "${FILESDIR}"/init.d-pciparm pciparm + newconfd "${FILESDIR}"/conf.d-pciparm pciparm +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.7.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.7.0-r2.ebuild deleted file mode 100644 index 9f9b0b41e6..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.7.0-r2.ebuild +++ /dev/null @@ -1,111 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit multilib toolchain-funcs multilib-minimal flag-o-matic - -DESCRIPTION="Various utilities dealing with the PCI bus" -HOMEPAGE="https://mj.ucw.cz/sw/pciutils/ https://git.kernel.org/?p=utils/pciutils/pciutils.git" -SRC_URI="https://mj.ucw.cz/download/linux/pci/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" -IUSE="dns +kmod static-libs +udev zlib" -REQUIRED_USE="static-libs? ( !udev )" - -# Have the sub-libs in RDEPEND with [static-libs] since, logically, -# our libpci.a depends on libz.a/etc... at runtime. -LIB_DEPEND=" - zlib? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+),${MULTILIB_USEDEP}] ) -" -DEPEND=" - kmod? ( sys-apps/kmod ) - udev? ( >=virtual/libudev-208[${MULTILIB_USEDEP}] ) - static-libs? ( ${LIB_DEPEND} ) - !static-libs? ( ${LIB_DEPEND//static-libs([+-]),} ) -" -RDEPEND=" - ${DEPEND} - sys-apps/hwdata -" -BDEPEND="kmod? ( virtual/pkgconfig )" - -PATCHES=( - "${FILESDIR}"/${PN}-3.1.9-static-pc.patch -) - -MULTILIB_WRAPPED_HEADERS=( /usr/include/pci/config.h ) - -switch_config() { - [[ $# -ne 2 ]] && return 1 - local opt=$1 val=$2 - - sed "s@^\(${opt}=\).*\$@\1${val}@" -i Makefile || die - return 0 -} - -src_prepare() { - default - - if use static-libs ; then - cp -pPR "${S}" "${S}.static" || die - mv "${S}.static" "${S}/static" || die - fi - - multilib_copy_sources -} - -multilib_src_configure() { - append-lfs-flags #471102 -} - -pemake() { - emake \ - HOST="${CHOST}" \ - CROSS_COMPILE="${CHOST}-" \ - CC="$(tc-getCC)" \ - AR="$(tc-getAR)" \ - PKG_CONFIG="$(tc-getPKG_CONFIG)" \ - RANLIB="$(tc-getRANLIB)" \ - DNS=$(usex dns) \ - IDSDIR='$(SHAREDIR)/hwdata' \ - MANDIR='$(SHAREDIR)/man' \ - PREFIX="${EPREFIX}/usr" \ - SHARED="yes" \ - STRIP="" \ - ZLIB=$(usex zlib) \ - PCI_COMPRESSED_IDS=0 \ - PCI_IDS=pci.ids \ - LIBDIR="\${PREFIX}/$(get_libdir)" \ - LIBKMOD=$(multilib_native_usex kmod) \ - HWDB=$(usex udev) \ - "$@" -} - -multilib_src_compile() { - pemake OPT="${CFLAGS}" all - if use static-libs ; then - pemake \ - -C "${BUILD_DIR}/static" \ - OPT="${CFLAGS}" \ - SHARED="no" \ - lib/libpci.a - fi -} - -multilib_src_install() { - pemake DESTDIR="${D}" install install-lib - use static-libs && dolib.a "${BUILD_DIR}/static/lib/libpci.a" -} - -multilib_src_install_all() { - dodoc ChangeLog README TODO - - rm "${ED}"/usr/sbin/update-pciids "${ED}"/usr/share/man/man8/update-pciids.8* || die - rm -r "${ED}"/usr/share/hwdata || die - - newinitd "${FILESDIR}"/init.d-pciparm pciparm - newconfd "${FILESDIR}"/conf.d-pciparm pciparm -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.8.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.8.0-r1.ebuild new file mode 100644 index 0000000000..f12dcda2ba --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.8.0-r1.ebuild @@ -0,0 +1,171 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs multilib-minimal flag-o-matic + +DESCRIPTION="Various utilities dealing with the PCI bus" +HOMEPAGE="https://mj.ucw.cz/sw/pciutils/ https://git.kernel.org/?p=utils/pciutils/pciutils.git" +SRC_URI="https://mj.ucw.cz/download/linux/pci/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" +IUSE="dns +kmod static-libs +udev zlib" +REQUIRED_USE="static-libs? ( !udev )" + +# Have the sub-libs in RDEPEND with [static-libs] since, logically, +# our libpci.a depends on libz.a/etc... at runtime. +LIB_DEPEND="zlib? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+),${MULTILIB_USEDEP}] )" +DEPEND="kmod? ( sys-apps/kmod ) + udev? ( >=virtual/libudev-208[${MULTILIB_USEDEP}] ) + static-libs? ( ${LIB_DEPEND} ) + !static-libs? ( ${LIB_DEPEND//static-libs([+-]),} )" +RDEPEND="${DEPEND} + sys-apps/hwdata" +# See bug #847133 re binutils check +BDEPEND="|| ( >=sys-devel/binutils-2.37:* sys-devel/lld sys-devel/native-cctools ) + kmod? ( virtual/pkgconfig )" + +MULTILIB_WRAPPED_HEADERS=( /usr/include/pci/config.h ) + +PATCHES=( + "${FILESDIR}"/${PN}-3.8.0-no-which.patch + "${FILESDIR}"/${PN}-3.8.0-pkg-config.patch +) + +switch_config() { + [[ $# -ne 2 ]] && return 1 + local opt=$1 val=$2 + + sed "s@^\(${opt}=\).*\$@\1${val}@" -i Makefile || die + return 0 +} + +check_binutils_version() { + if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && ! tc-ld-is-gold && ! tc-ld-is-lld ; then + # Okay, hopefully it's Binutils' bfd. + # bug #847133 + + # Convert this: + # ``` + # GNU ld (Gentoo 2.38 p4) 2.38 + # Copyright (C) 2022 Free Software Foundation, Inc. + # This program is free software; you may redistribute it under the terms of + # the GNU General Public License version 3 or (at your option) a later version. + # This program has absolutely no warranty. + # ``` + # + # into... + # ``` + # 2.38 + # ``` + local ver=$($(tc-getLD) --version 2>&1 | head -1 | rev | cut -d' ' -f1 | rev) + + if ! [[ ${ver} =~ [0-9].[0-9][0-9] ]] ; then + # Skip if unrecognised format so we don't pass something + # odd into ver_cut. + return + fi + + ver_major=$(ver_cut 1 "${ver}") + ver_minor=$(ver_cut 2 "${ver}") + + # We use 2.37 here, not 2.35, as https://github.com/pciutils/pciutils/issues/98 mentions + # because we've had other miscompiles with older Binutils (not just build failures!) + # and we don't want people running any unsupported versions of Binutils. An example + # of this is where glibc is completely broken with old binutils: bug #802036. It's + # just not sustainable to support. + if [[ ${ver_major} -eq 2 && ${ver_minor} -lt 37 ]] ; then + eerror "Old version of binutils activated! ${P} cannot be built with an old version." + eerror "Please follow these steps:" + eerror "1. Select a newer binutils (>= 2.37) using binutils-config" + eerror " (If no such version is installed, run emerge -v1 sys-devel/binutils)" + eerror "2. Run: . /etc/profile" + eerror "3. Try emerging again with: emerge -v1 ${CATEGORY}/${P}" + eerror "4. Complete your world upgrade if you were performing one." + eerror "5. Perform a depclean (emerge -acv)" + eerror "\tYou MUST depclean after every world upgrade in future!" + die "Old binutils found! Change to a newer ld using binutils-config (bug #847133)." + fi + fi +} + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && check_binutils_version +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && check_binutils_version +} + +src_prepare() { + default + + if use static-libs ; then + cp -pPR "${S}" "${S}.static" || die + mv "${S}.static" "${S}/static" || die + fi + + multilib_copy_sources +} + +multilib_src_configure() { + # bug #640836, bug #852929 + filter-lto + + # bug #471102 + append-lfs-flags +} + +pemake() { + emake \ + HOST="${CHOST}" \ + CROSS_COMPILE="${CHOST}-" \ + CC="$(tc-getCC)" \ + AR="$(tc-getAR)" \ + PKG_CONFIG="$(tc-getPKG_CONFIG)" \ + RANLIB="$(tc-getRANLIB)" \ + DNS=$(usex dns) \ + IDSDIR='$(SHAREDIR)/hwdata' \ + MANDIR='$(SHAREDIR)/man' \ + PREFIX="${EPREFIX}/usr" \ + SHARED="yes" \ + STRIP="" \ + ZLIB=$(usex zlib) \ + PCI_COMPRESSED_IDS=0 \ + PCI_IDS=pci.ids \ + LIBDIR="\${PREFIX}/$(get_libdir)" \ + LIBKMOD=$(multilib_native_usex kmod) \ + HWDB=$(usex udev) \ + "$@" +} + +multilib_src_compile() { + pemake OPT="${CFLAGS}" all + + if use static-libs ; then + pemake \ + -C "${BUILD_DIR}"/static \ + OPT="${CFLAGS}" \ + SHARED="no" \ + lib/libpci.a + fi +} + +multilib_src_install() { + pemake DESTDIR="${D}" install install-lib + + use static-libs && dolib.a "${BUILD_DIR}"/static/lib/libpci.a +} + +multilib_src_install_all() { + dodoc ChangeLog README TODO + + rm "${ED}"/usr/sbin/update-pciids "${ED}"/usr/share/man/man8/update-pciids.8* || die + rm -r "${ED}"/usr/share/hwdata || die + + newinitd "${FILESDIR}"/init.d-pciparm pciparm + newconfd "${FILESDIR}"/conf.d-pciparm pciparm +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.9.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.9.0.ebuild new file mode 100644 index 0000000000..3c3f56eeee --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pciutils/pciutils-3.9.0.ebuild @@ -0,0 +1,166 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs multilib-minimal flag-o-matic + +DESCRIPTION="Various utilities dealing with the PCI bus" +HOMEPAGE="https://mj.ucw.cz/sw/pciutils/ https://git.kernel.org/?p=utils/pciutils/pciutils.git" +SRC_URI="https://mj.ucw.cz/download/linux/pci/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" +IUSE="dns +kmod static-libs +udev zlib" +REQUIRED_USE="static-libs? ( !udev )" + +# Have the sub-libs in RDEPEND with [static-libs] since, logically, +# our libpci.a depends on libz.a/etc... at runtime. +LIB_DEPEND="zlib? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+),${MULTILIB_USEDEP}] )" +DEPEND="kmod? ( sys-apps/kmod ) + udev? ( >=virtual/libudev-208[${MULTILIB_USEDEP}] ) + static-libs? ( ${LIB_DEPEND} ) + !static-libs? ( ${LIB_DEPEND//static-libs([+-]),} )" +RDEPEND="${DEPEND} + sys-apps/hwdata" +# See bug #847133 re binutils check +BDEPEND="|| ( >=sys-devel/binutils-2.37:* sys-devel/lld sys-devel/native-cctools ) + kmod? ( virtual/pkgconfig )" + +MULTILIB_WRAPPED_HEADERS=( /usr/include/pci/config.h ) + +switch_config() { + [[ $# -ne 2 ]] && return 1 + local opt=$1 val=$2 + + sed "s@^\(${opt}=\).*\$@\1${val}@" -i Makefile || die + return 0 +} + +check_binutils_version() { + if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && ! tc-ld-is-gold && ! tc-ld-is-lld ; then + # Okay, hopefully it's Binutils' bfd. + # bug #847133 + + # Convert this: + # ``` + # GNU ld (Gentoo 2.38 p4) 2.38 + # Copyright (C) 2022 Free Software Foundation, Inc. + # This program is free software; you may redistribute it under the terms of + # the GNU General Public License version 3 or (at your option) a later version. + # This program has absolutely no warranty. + # ``` + # + # into... + # ``` + # 2.38 + # ``` + local ver=$($(tc-getLD) --version 2>&1 | head -n 1 | rev | cut -d' ' -f1 | rev) + + if ! [[ ${ver} =~ [0-9].[0-9][0-9] ]] ; then + # Skip if unrecognised format so we don't pass something + # odd into ver_cut. + return + fi + + ver_major=$(ver_cut 1 "${ver}") + ver_minor=$(ver_cut 2 "${ver}") + + # We use 2.37 here, not 2.35, as https://github.com/pciutils/pciutils/issues/98 mentions + # because we've had other miscompiles with older Binutils (not just build failures!) + # and we don't want people running any unsupported versions of Binutils. An example + # of this is where glibc is completely broken with old binutils: bug #802036. It's + # just not sustainable to support. + if [[ ${ver_major} -eq 2 && ${ver_minor} -lt 37 ]] ; then + eerror "Old version of binutils activated! ${P} cannot be built with an old version." + eerror "Please follow these steps:" + eerror "1. Select a newer binutils (>= 2.37) using binutils-config" + eerror " (If no such version is installed, run emerge -v1 sys-devel/binutils)" + eerror "2. Run: . /etc/profile" + eerror "3. Try emerging again with: emerge -v1 ${CATEGORY}/${P}" + eerror "4. Complete your world upgrade if you were performing one." + eerror "5. Perform a depclean (emerge -acv)" + eerror "\tYou MUST depclean after every world upgrade in future!" + die "Old binutils found! Change to a newer ld using binutils-config (bug #847133)." + fi + fi +} + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && check_binutils_version +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && check_binutils_version +} + +src_prepare() { + default + + if use static-libs ; then + cp -pPR "${S}" "${S}.static" || die + mv "${S}.static" "${S}/static" || die + fi + + multilib_copy_sources +} + +multilib_src_configure() { + # bug #640836, bug #852929 + filter-lto + + # bug #471102 + append-lfs-flags +} + +pemake() { + emake \ + HOST="${CHOST}" \ + CROSS_COMPILE="${CHOST}-" \ + CC="$(tc-getCC)" \ + AR="$(tc-getAR)" \ + PKG_CONFIG="$(tc-getPKG_CONFIG)" \ + RANLIB="$(tc-getRANLIB)" \ + DNS=$(usex dns) \ + IDSDIR='$(SHAREDIR)/hwdata' \ + MANDIR='$(SHAREDIR)/man' \ + PREFIX="${EPREFIX}/usr" \ + SHARED="yes" \ + STRIP="" \ + ZLIB=$(usex zlib) \ + PCI_COMPRESSED_IDS=0 \ + PCI_IDS=pci.ids \ + LIBDIR="\${PREFIX}/$(get_libdir)" \ + LIBKMOD=$(multilib_native_usex kmod) \ + HWDB=$(usex udev) \ + "$@" +} + +multilib_src_compile() { + pemake OPT="${CFLAGS}" all + + if use static-libs ; then + pemake \ + -C "${BUILD_DIR}"/static \ + OPT="${CFLAGS}" \ + SHARED="no" \ + lib/libpci.a + fi +} + +multilib_src_install() { + pemake DESTDIR="${D}" install install-lib + + use static-libs && dolib.a "${BUILD_DIR}"/static/lib/libpci.a +} + +multilib_src_install_all() { + dodoc ChangeLog README TODO + + rm "${ED}"/usr/sbin/update-pciids "${ED}"/usr/share/man/man8/update-pciids.8* || die + rm -r "${ED}"/usr/share/hwdata || die + + newinitd "${FILESDIR}"/init.d-pciparm pciparm + newconfd "${FILESDIR}"/conf.d-pciparm pciparm +}