pciutils: rewrite recipe

The upstream Makefiles are bespoke so need to be handheld, but this
recipe has workarounds for code removed a decade ago.

Add more PACKAGECONFIGs for the other configuration options (zlib, kmod),
and use hwdb by default (non-systemd builds also have hwdb, as it's part
of eudev too).

Instead of using 'make -e', pass the variables that we want the Makefile
to respect explicitly (CC, CFLAGS, etc).

Construct an appropriate HOST so that lib/configure does the right thing
without needing patches.

This now results in text relocations (apparently from the versioned
symbols in libpci), so add an INSANE_SKIP for that.

Update the homepage URL.

(From OE-Core rev: e943b74ffe0fd2c37e35540a2d6bd92a1dd61a3a)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2024-06-03 15:36:58 +00:00
committed by Richard Purdie
parent 06746aead8
commit 66c8d2b625
2 changed files with 20 additions and 123 deletions

View File

@@ -1,93 +0,0 @@
From 6af07e1f812b2444d33ce199308c87e04b2f5dc7 Mon Sep 17 00:00:00 2001
From: Richard Purdie <rpurdie@linux.intel.com>
Date: Wed, 31 Dec 2008 17:20:38 +0000
Subject: [PATCH] pciutils: Upgarde 2.2.4 -> 3.0.3
This patch:
* ensures we link correctly
* allows us to optionally pass target information to configure rather than using uname
* select linux as the platform in most cases we care about
This is a merge of various tweaks to allow us to build pciutils including
work from:
7/30/2010 - Qing He <qing.he@intel.com>
1/22/2012 - Shane Wang <shane.wang@intel.com>
Ionut Radu <ionutx.radu@intel.com>
2017/6/15 - RP - Cleanups and merging patches
Upstream-Status: Inappropriate [embedded specific]
---
Makefile | 2 +-
lib/configure | 14 ++++++++++----
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/Makefile b/Makefile
index be23593..aa13be5 100644
--- a/Makefile
+++ b/Makefile
@@ -123,7 +123,7 @@ pcilmr$(EXEEXT): pcilmr.o $(LMROBJS) $(COMMON) lib/$(PCIIMPLIB)
pcilmr.o: pcilmr.c $(LMRINC)
%$(EXEEXT): %.o
- $(CC) $(CFLAGS) $(LDFLAGS) $(TARGET_ARCH) $^ $(LDLIBS) -o $@
+ $(CC) $(CFLAGS) $(LDFLAGS) $(TARGET_ARCH) $^ $(LIB_LDLIBS) $(LDLIBS) -o $@
ifdef PCI_OS_WINDOWS
comma := ,
diff --git a/lib/configure b/lib/configure
index d02160b..52c1eee 100755
--- a/lib/configure
+++ b/lib/configure
@@ -9,6 +9,10 @@ echo_n() {
printf '%s' "$*"
}
+VERSION=$1
+IDSDIR=$2
+DNS=yes
+
if [ -z "$VERSION" ] ; then
echo >&2 "Please run the configure script from the top-level Makefile"
exit 1
@@ -16,8 +20,8 @@ fi
echo_n "Configuring libpci for your system..."
if [ -z "$HOST" ] ; then
- sys=`uname -s`
- rel=`uname -r`
+ sys=${3:-`uname -s`}
+ rel=
realsys="$sys"
if [ "$sys" = "AIX" -a -x /usr/bin/oslevel -a -x /usr/sbin/lsattr ]
then
@@ -25,7 +29,7 @@ if [ -z "$HOST" ] ; then
proc=`/usr/sbin/lsdev -C -c processor -S available -F name | head -1`
cpu=`/usr/sbin/lsattr -F value -l $proc -a type | sed 's/_.*//'`
else
- cpu=`uname -m | sed 's/^i.86-AT386/i386/;s/^i.86$/i386/;s/^sun4u$/sparc64/;s/^i86pc$/i386/;s/^BePC$/i386/;s/^BeMac$/powerpc/;s/^BeBox$/powerpc/'`
+ cpu=${4:-`uname -m | sed 's/^i.86-AT386/i386/;s/^i.86$/i386/;s/^sun4u$/sparc64/;s/^i86pc$/i386/;s/^BePC$/i386/;s/^BeMac$/powerpc/;s/^BeBox$/powerpc/'`}
fi
if [ "$sys" = "DragonFly" ]
then
@@ -43,7 +47,7 @@ if [ -z "$HOST" ] ; then
then
sys=cygwin
fi
- HOST=${3:-$cpu-$sys}
+ HOST=$cpu-$sys
fi
[ -n "$RELEASE" ] && rel="${RELEASE}"
# CAVEAT: tr on Solaris is a bit weird and the extra [] is otherwise harmless.
@@ -52,6 +56,8 @@ cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
sys=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo " $host $rel $cpu $sys"
+{ echo "$host" | grep linux; } && sys=linux
+
c=config.h
m=config.mk
echo >$c '#define PCI_CONFIG_H'
--
2.42.0

View File

@@ -1,7 +1,7 @@
SUMMARY = "PCI utilities"
DESCRIPTION = 'The PCI Utilities package contains a library for portable access \
to PCI bus configuration space and several utilities based on this library.'
HOMEPAGE = "http://atrey.karlin.mff.cuni.cz/~mj/pciutils.shtml"
HOMEPAGE = "https://mj.ucw.cz/sw/pciutils/"
SECTION = "console/utils"
LICENSE = "GPL-2.0-or-later"
@@ -9,41 +9,27 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
# Can drop make-native when all systems have make 4.3
# https://git.savannah.gnu.org/cgit/make.git/commit/?id=b90fabc8d6f34fb37d428dc0fb1b8b1951a9fbed
# causes space issues in lib/libpci.pc
DEPENDS = "zlib kmod make-native"
SRC_URI = "${KERNELORG_MIRROR}/software/utils/pciutils/pciutils-${PV}.tar.xz \
file://configure.patch"
DEPENDS = "make-native"
SRC_URI = "${KERNELORG_MIRROR}/software/utils/pciutils/pciutils-${PV}.tar.xz"
SRC_URI[sha256sum] = "f185d116d5ff99b797497efce8f19f1ee8ccc5a668b97a159e3d13472f674154"
inherit multilib_header pkgconfig update-alternatives
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'hwdb', '', d)}"
PACKAGECONFIG ??= "hwdb kmod zlib"
PACKAGECONFIG[hwdb] = "HWDB=yes,HWDB=no,udev"
PACKAGECONFIG[kmod] = "LIBKMOD=yes,LIBKMOD=no,kmod"
PACKAGECONFIG[zlib] = "ZLIB=yes,ZLIB=no,zlib"
PCI_CONF_FLAG = "ZLIB=yes DNS=yes SHARED=yes STRIP= LIBDIR=${libdir}"
# see configure.patch
do_configure () {
(
cd lib && \
# PACKAGECONFIG_CONFARGS for this recipe could only possibly contain 'HWDB=yes/no',
# so we put it before ./configure
${PCI_CONF_FLAG} ${PACKAGECONFIG_CONFARGS} ./configure ${PV} ${datadir} ${TARGET_OS} ${TARGET_ARCH}
)
}
export PREFIX = "${prefix}"
export SBINDIR = "${sbindir}"
export SHAREDIR = "${datadir}"
export MANDIR = "${mandir}"
EXTRA_OEMAKE = "-e MAKEFLAGS= ${PCI_CONF_FLAG}"
ASNEEDED = ""
# The configure script breaks if the HOST variable is set
HOST[unexport] = "1"
# Configuration options
EXTRA_OEMAKE += "${PACKAGECONFIG_CONFARGS} DNS=yes SHARED=yes"
# Construct a HOST that matches what lib/configure expects
EXTRA_OEMAKE += "HOST="${HOST_ARCH}-${HOST_OS}""
# Toolchain. We need to pass CFLAGS via CC as this is the only variable
# available to the caller without clobbering assignments (notably, -fPIC)
EXTRA_OEMAKE += "CC="${CC} ${CFLAGS}" AR="${AR}" STRIP= LDFLAGS="${LDFLAGS}""
# Paths
EXTRA_OEMAKE += "PREFIX=${prefix} LIBDIR=${libdir} SBINDIR=${sbindir} SHAREDIR=${datadir} MANDIR=${mandir}"
do_install () {
oe_runmake DESTDIR=${D} install install-lib
@@ -54,11 +40,15 @@ do_install () {
}
PACKAGES =+ "${PN}-ids libpci"
FILES:${PN}-ids = "${datadir}/pci.ids*"
FILES:libpci = "${libdir}/libpci.so.*"
SUMMARY:${PN}-ids = "PCI utilities - device ID database"
DESCRIPTION:${PN}-ids = "Package providing the PCI device ID database for pciutils."
RDEPENDS:${PN} += "${PN}-ids"
FILES:libpci = "${libdir}/libpci.so.*"
# The versioned symbols in libpci appear to be causing relocations
INSANE_SKIP:libpci += "textrel"
ALTERNATIVE:${PN} = "lspci"
ALTERNATIVE_PRIORITY = "100"