Subject: [bug#56286] [PATCH 3/3] gnu: Add pkgconf.

From: "(" <[email-masked]>
Date: Tue, 28 Jun 2022 19:08:31 +0100

Note that this package produces a `guix lint` warning that is basically
unfixable:

```
/home/paren/code/guix/gnu/packages/pkg-config.scm:213:16:
[email-masked]: TLS certificate error: X.509 server certificate
for 'pkgconf.org' does not match:
C=US,ST=California,L=San Francisco,O=GitHub\, Inc.,CN=*.github.com
```

This is because pkgconf.org is actually hosted via Github Pages.

* gnu/packages/pkg-config.scm (pkgconf): New variable.
---
 gnu/packages/pkg-config.scm | 48 +++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm
index dcd6ba3353..8c826ca25d 100644
--- a/gnu/packages/pkg-config.scm
+++ b/gnu/packages/pkg-config.scm
@@ -24,9 +24,11 @@ (define-module (gnu packages pkg-config)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix gexp)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix memoization)
   #:use-module (guix packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages bash)
   #:export (pkg-config))
 
@@ -168,3 +170,49 @@ (define where (string-append #$output "/bin/pkg-config"))
              (inherit original)
              (variable "PKG_CONFIG_PATH_FOR_BUILD")))
           (package-native-search-paths %pkg-config)))))
+
+(define-public pkgconf
+  ;; The last release was tagged on 2021-07-25, and there's been a lot of activity
+  ;; since then.
+  (let ((commit "b0802cb3d19b5b963ad20eed464a2da6e7d7b0b5")
+        (revision "0"))
+    (package
+     (name "pkgconf")
+     (version (git-version "1.8.0" revision commit))
+     (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/pkgconf/pkgconf")
+                    (commit commit)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1xcpvzahrp34jhdfsazdhbj9byr2wqwmjx7jfarhpc1x4z3l37a0"))))
+     (build-system gnu-build-system)
+     (arguments
+      ;; Kyua, which pkgconf uses for testing, is not packaged in Guix,
+      ;; though it should be trivial to add; the problem is that it "cannot
+      ;; find test programs" that it needs when run during this package's
+      ;; check phase.
+      ;;
+      ;; The silver lining is that omitting Kyua means we drop dependencies
+      ;; on pkg-config, Lua, and C++. It does not, in fact, seem as if the
+      ;; tests are even supposed to be run by anyone but the pkgconf
+      ;; developers, as <https://pkgconf.org> touts pkgconf's dependency-free
+      ;; nature as an advantage over pkg-config.
+      (list #:tests? #f))
+     (native-inputs (list ;; pkgconf's autotools setup forbids the use of any
+                          ;; earlier version of autoconf than 2.71.
+                          autoconf-2.71
+                          automake
+                          libtool))
+     (native-search-paths
+      (list (search-path-specification
+             (variable "PKG_CONFIG_PATH")
+             (files '("lib/pkgconfig" "lib64/pkgconfig" "share/pkgconfig")))))
+     (home-page "https://pkgconf.org")
+     (synopsis "Package compiler and linker metadata toolkit")
+     (description "@code{pkgconf} is a compiler and linker configuration toolkit,
+mostly compatible with freedesktop.org's @code{pkg-config}.  A library called
+@code{libpkgconf} is provided so that programs can embed its functionality.")
+     (license license:isc))))
-- 
2.36.1