pkgconf is a newer, actively maintained implementation of pkg-config that supports more aspects of the pkg-config file specification and provides a library interface that applications can use to incorporate intelligent handling of pkg-config files into themselves (such as build file generators, IDEs, and compilers). Through its pkg-config compatibility interface (activated when it is run as "pkg-config"), it also can completely replace the original implementation.
It is also lighterweight and does not require glib2, as pkg-config does. On other distros, pkgconf is symlinked to pkg-config. For simplicity here, it is renamed to pkg-config.real, as in the original package. Initial results have been positive. As before, pkgconf works as long as the pkg-config files point to the proper paths. Ran pkg-config wrapper through shellcheck. Added a patch to fix the pkg-config wrapper with meson as passing --version with other options fails. Signed-off-by: Rosen Penev <ros...@gmail.com> --- v3: Added meson patch v2: Rebased against master tools/Makefile | 6 ++-- tools/pkg-config/files/pkg-config | 3 -- tools/{pkg-config => pkgconf}/Makefile | 20 +++++------- tools/pkgconf/files/pkg-config | 6 ++++ .../patches/0001-f-pkgconf-meson.patch | 31 +++++++++++++++++++ 5 files changed, 47 insertions(+), 19 deletions(-) delete mode 100755 tools/pkg-config/files/pkg-config rename tools/{pkg-config => pkgconf}/Makefile (54%) create mode 100755 tools/pkgconf/files/pkg-config create mode 100644 tools/pkgconf/patches/0001-f-pkgconf-meson.patch diff --git a/tools/Makefile b/tools/Makefile index 2f57d25525..a7d48a40a4 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -22,7 +22,7 @@ ifneq ($(CONFIG_SDK)$(CONFIG_PACKAGE_kmod-b43)$(CONFIG_PACKAGE_b43legacy-firmwar endif tools-$(BUILD_TOOLCHAIN) += gmp mpfr mpc libelf expat -tools-y += m4 libtool autoconf automake flex bison pkg-config mklibs zlib +tools-y += m4 libtool autoconf automake flex bison pkgconf mklibs zlib tools-y += sstrip make-ext4fs e2fsprogs mtd-utils mkimage tools-y += firmware-utils patch-image quilt padjffs2 tools-y += mm-macros missing-macros cmake bc findutils gengetopt patchelf @@ -48,7 +48,7 @@ $(curdir)/squashfs/compile := $(curdir)/lzma-old/compile $(curdir)/squashfskit4/compile := $(curdir)/xz/compile $(curdir)/zlib/compile $(curdir)/quilt/compile := $(curdir)/autoconf/compile $(curdir)/findutils/compile $(curdir)/autoconf/compile := $(curdir)/m4/compile -$(curdir)/automake/compile := $(curdir)/m4/compile $(curdir)/autoconf/compile $(curdir)/pkg-config/compile $(curdir)/xz/compile +$(curdir)/automake/compile := $(curdir)/m4/compile $(curdir)/autoconf/compile $(curdir)/pkgconf/compile $(curdir)/xz/compile $(curdir)/gmp/compile := $(curdir)/libtool/compile $(curdir)/mpc/compile := $(curdir)/mpfr/compile $(curdir)/gmp/compile $(curdir)/mpfr/compile := $(curdir)/gmp/compile @@ -69,7 +69,7 @@ $(curdir)/findutils/compile := $(curdir)/bison/compile $(curdir)/gengetopt/compile := $(curdir)/libtool/compile $(curdir)/patchelf/compile := $(curdir)/libtool/compile $(curdir)/dosfstools/compile := $(curdir)/autoconf/compile $(curdir)/automake/compile -$(curdir)/libressl/compile := $(curdir)/pkg-config/compile +$(curdir)/libressl/compile := $(curdir)/pkgconf/compile $(curdir)/mkimage/compile += $(curdir)/libressl/compile $(curdir)/firmware-utils/compile += $(curdir)/libressl/compile $(curdir)/zlib/compile $(curdir)/cmake/compile += $(curdir)/libressl/compile diff --git a/tools/pkg-config/files/pkg-config b/tools/pkg-config/files/pkg-config deleted file mode 100755 index 82cc74ffcb..0000000000 --- a/tools/pkg-config/files/pkg-config +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -pkg-config.real --define-variable=prefix=${STAGING_PREFIX} --define-variable=exec_prefix=${STAGING_PREFIX} --define-variable=bindir=${STAGING_PREFIX}/bin $@ diff --git a/tools/pkg-config/Makefile b/tools/pkgconf/Makefile similarity index 54% rename from tools/pkg-config/Makefile rename to tools/pkgconf/Makefile index 17a8737be1..cefee1edf0 100644 --- a/tools/pkg-config/Makefile +++ b/tools/pkgconf/Makefile @@ -1,4 +1,4 @@ -# +# # Copyright (C) 2006-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. @@ -6,12 +6,12 @@ # include $(TOPDIR)/rules.mk -PKG_NAME:=pkg-config -PKG_VERSION:=0.29.2 +PKG_NAME:=pkgconf +PKG_VERSION:=1.6.3 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://pkgconfig.freedesktop.org/releases/ -PKG_HASH:=6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591 +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE_URL:=https://distfiles.dereferenced.org/pkgconf +PKG_HASH:=61f0b31b0d5ea0e862b454a80c170f57bad47879c0c42bd8de89200ff62ea210 HOST_BUILD_PARALLEL:=1 @@ -19,15 +19,9 @@ include $(INCLUDE_DIR)/host-build.mk unexport PKG_CONFIG -HOST_CONFIGURE_ARGS += --with-internal-glib - -ifeq ($(HOST_OS),Darwin) -HOST_LDFLAGS += -framework CoreFoundation -framework Carbon -endif - define Host/Install $(MAKE) -C $(HOST_BUILD_DIR) install - mv $(STAGING_DIR_HOST)/bin/pkg-config $(STAGING_DIR_HOST)/bin/pkg-config.real + mv $(STAGING_DIR_HOST)/bin/pkgconf $(STAGING_DIR_HOST)/bin/pkg-config.real $(INSTALL_BIN) ./files/pkg-config $(STAGING_DIR_HOST)/bin/pkg-config endef diff --git a/tools/pkgconf/files/pkg-config b/tools/pkgconf/files/pkg-config new file mode 100755 index 0000000000..6579a14f86 --- /dev/null +++ b/tools/pkgconf/files/pkg-config @@ -0,0 +1,6 @@ +#!/bin/sh + +"$(dirname "$0")/pkg-config.real" \ +--define-variable=prefix="${STAGING_PREFIX}" \ +--define-variable=exec_prefix="${STAGING_PREFIX}" \ +--define-variable=bindir="${STAGING_PREFIX}/bin" "$@" diff --git a/tools/pkgconf/patches/0001-f-pkgconf-meson.patch b/tools/pkgconf/patches/0001-f-pkgconf-meson.patch new file mode 100644 index 0000000000..3ed47adc95 --- /dev/null +++ b/tools/pkgconf/patches/0001-f-pkgconf-meson.patch @@ -0,0 +1,31 @@ +From 05ef58532b75c36fc19eb9d2d1fe4c46195706bf Mon Sep 17 00:00:00 2001 +From: Andre Heider <a.hei...@gmail.com> +Date: Mon, 25 Nov 2019 09:36:47 +0100 +Subject: [PATCH] f pkgconf/meson + +--- + tools/pkgconf/patches/meson.patch | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + create mode 100644 tools/pkgconf/patches/meson.patch + +diff --git a/tools/pkgconf/patches/meson.patch b/tools/pkgconf/patches/meson.patch +new file mode 100644 +index 0000000000..e0a2946f32 +--- /dev/null ++++ b/tools/pkgconf/patches/meson.patch +@@ -0,0 +1,12 @@ ++diff -ur pkgconf-1.6.3-orig/cli/main.c pkgconf-1.6.3/cli/main.c ++--- pkgconf-1.6.3-orig/cli/main.c 2019-07-12 13:53:12.000000000 +0200 +++++ pkgconf-1.6.3/cli/main.c 2019-11-25 09:32:53.512784479 +0100 ++@@ -1002,7 +1002,7 @@ ++ ++ if ((want_flags & PKG_VERSION) == PKG_VERSION) ++ { ++- if (argc > 2) +++ if (0 && argc > 2) ++ { ++ fprintf(stderr, "%s: --version specified with other options or module names, assuming --modversion.\n", argv[0]); ++ +-- +2.24.0 + -- 2.23.0 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel