aboutsummaryrefslogtreecommitdiffstats
path: root/tools/pkgconf
diff options
context:
space:
mode:
authorRosen Penev <rosenp@gmail.com>2019-11-28 11:19:31 -0800
committerPetr Štetiar <ynezz@true.cz>2020-03-01 21:36:00 +0100
commit867298cf47ab505dee738fc653b90fa0bc2d0428 (patch)
treeec71d1775038e4091c666df2849f4b04d533b7c8 /tools/pkgconf
parentaf878339ae28391dd7509cd27496fa4ca8d2a339 (diff)
downloadupstream-867298cf47ab505dee738fc653b90fa0bc2d0428.tar.gz
upstream-867298cf47ab505dee738fc653b90fa0bc2d0428.tar.bz2
upstream-867298cf47ab505dee738fc653b90fa0bc2d0428.zip
tools/pkg-config: Replace with pkgconf
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. Signed-off-by: Rosen Penev <rosenp@gmail.com> [backported upstream fix for Meson] Signed-off-by: Petr Štetiar <ynezz@true.cz>
Diffstat (limited to 'tools/pkgconf')
-rw-r--r--tools/pkgconf/Makefile33
-rwxr-xr-xtools/pkgconf/files/pkg-config3
-rw-r--r--tools/pkgconf/patches/0001-cli-remove-version-to-modversion-remapping.patch36
3 files changed, 72 insertions, 0 deletions
diff --git a/tools/pkgconf/Makefile b/tools/pkgconf/Makefile
new file mode 100644
index 0000000000..cefee1edf0
--- /dev/null
+++ b/tools/pkgconf/Makefile
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2006-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=pkgconf
+PKG_VERSION:=1.6.3
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://distfiles.dereferenced.org/pkgconf
+PKG_HASH:=61f0b31b0d5ea0e862b454a80c170f57bad47879c0c42bd8de89200ff62ea210
+
+HOST_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/host-build.mk
+
+unexport PKG_CONFIG
+
+define Host/Install
+ $(MAKE) -C $(HOST_BUILD_DIR) install
+ 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
+
+define Host/Clean
+ -$(MAKE) -C $(HOST_BUILD_DIR) uninstall
+ $(call Host/Clean/Default)
+endef
+
+$(eval $(call HostBuild))
diff --git a/tools/pkgconf/files/pkg-config b/tools/pkgconf/files/pkg-config
new file mode 100755
index 0000000000..82cc74ffcb
--- /dev/null
+++ b/tools/pkgconf/files/pkg-config
@@ -0,0 +1,3 @@
+#!/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/pkgconf/patches/0001-cli-remove-version-to-modversion-remapping.patch b/tools/pkgconf/patches/0001-cli-remove-version-to-modversion-remapping.patch
new file mode 100644
index 0000000000..b2c538d24e
--- /dev/null
+++ b/tools/pkgconf/patches/0001-cli-remove-version-to-modversion-remapping.patch
@@ -0,0 +1,36 @@
+From 62bbd3b664d4b03011a4b382ed20353a91c30406 Mon Sep 17 00:00:00 2001
+From: Ariadne Conill <ariadne@dereferenced.org>
+Date: Tue, 21 Jan 2020 10:32:36 -0600
+Subject: [PATCH] cli: remove --version to --modversion remapping
+
+This has been a source of frequent complaints, so we drop it.
+Resolves: https://todo.sr.ht/~kaniini/pkgconf/6
+---
+ cli/main.c | 14 ++------------
+ 1 file changed, 2 insertions(+), 12 deletions(-)
+
+diff --git a/cli/main.c b/cli/main.c
+index 563ec8f0cfcd..fc698a4f9191 100644
+--- a/cli/main.c
++++ b/cli/main.c
+@@ -1005,18 +1005,8 @@ main(int argc, char *argv[])
+
+ if ((want_flags & PKG_VERSION) == PKG_VERSION)
+ {
+- if (argc > 2)
+- {
+- fprintf(stderr, "%s: --version specified with other options or module names, assuming --modversion.\n", argv[0]);
+-
+- want_flags &= ~PKG_VERSION;
+- want_flags |= PKG_MODVERSION;
+- }
+- else
+- {
+- version();
+- return EXIT_SUCCESS;
+- }
++ version();
++ return EXIT_SUCCESS;
+ }
+
+ if ((want_flags & PKG_HELP) == PKG_HELP)