* [bug#68813] [core-updates PATCH 02/20] gnu: Add lutok.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 03/20] gnu: Add kyua Maxim Cournoyer
` (18 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/lua.scm (lutok): New variable.
Change-Id: I595b26c601c8ca8c997c86e8f8eb17fbe363a038
---
gnu/packages/lua.scm | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index 1cde6bd66c..07c803d27e 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -20,6 +20,7 @@
;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
;;; Copyright © 2023 Valter Nazianzeno <manipuladordedados@gmail.com>
+;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -48,9 +49,11 @@ (define-module (gnu packages lua)
#:use-module (guix build-system meson)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages build-tools)
+ #:use-module (gnu packages check)
#:use-module (gnu packages gcc)
#:use-module (gnu packages glib)
#:use-module (gnu packages gperf)
@@ -898,6 +901,44 @@ (define-public lua5.2-bitop
(define-public lua5.1-bitop
(make-lua-bitop "lua5.1-bitop" lua-5.1))
+(define-public lutok
+ (package
+ (name "lutok")
+ (version "0.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/freebsd/lutok")
+ (commit (string-append name "-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0a2vc2wy5hasw69h1mz768ywx6c4ccl9jzzd4ixddwba3z3ha03b"))))
+ (build-system gnu-build-system)
+ ;; Disable the test suite to avoid a circular dependency on kyua.
+ (arguments (list #:tests? #f))
+ (native-inputs (list autoconf automake libtool pkg-config))
+ (inputs (list atf))
+ (propagated-inputs (list lua-5.2)) ;included in c_gate.hpp
+ (home-page "https://github.com/freebsd/lutok")
+ (synopsis "Lightweight C++ API for Lua")
+ (description "Lutok is a lightweight C++ API library for Lua.
+
+Lutok provides thin C++ wrappers around the Lua C API to ease the interaction
+between C++ and Lua. These wrappers make intensive use of @acronym{RAII,
+Resource Acquisition is Initialization} to prevent resource leakage, expose
+C++-friendly data types, report errors by means of exceptions and ensure that
+the Lua stack is always left untouched in the face of errors. The library
+also provides a small subset of miscellaneous utility functions built on top
+of the wrappers.
+
+Lutok focuses on providing a clean and safe C++ interface; the drawback is
+that it is not suitable for performance-critical environments. In order to
+implement error-safe C++ wrappers on top of a Lua C binary library, Lutok adds
+several layers or abstraction and error checking that go against the original
+spirit of the Lua C API and thus degrade performance.")
+ (license license:bsd-3)))
+
(define-public selene
(package
(name "selene")
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 03/20] gnu: Add kyua.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 02/20] gnu: Add lutok Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 04/20] gnu: pkgconf: Enable test suite Maxim Cournoyer
` (17 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/check.scm (kyua): New variable.
Change-Id: Ic3a74a27c05b099bef6acfb4e0c96d2ee3defc31
---
gnu/packages/check.scm | 70 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 3920c5dace..a7e8ca7aa1 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -72,8 +72,10 @@ (define-module (gnu packages check)
#:use-module (gnu packages bash)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages gdb)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
+ #:use-module (gnu packages lua)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
@@ -88,6 +90,7 @@ (define-module (gnu packages check)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-science)
+ #:use-module (gnu packages sqlite)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
#:use-module (gnu packages xml)
@@ -901,6 +904,73 @@ (define-public ftest
"This package provides a simple and limited unit-test framework for C++.")
(license license:boost1.0))))
+(define-public kyua
+ (package
+ (name "kyua")
+ (version "0.13")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/freebsd/kyua")
+ (commit (string-append name "-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1jzdal9smhmivj18683a5gy8jd2p1dbni7kcpaxq4g9jgjdidcrq"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda _
+ (substitute* '("Makefile.am"
+ "utils/process/isolation_test.cpp"
+ "utils/stacktrace_test.cpp"
+ "integration/utils.sh"
+ "integration/cmd_test_test.sh")
+ (("/bin/sh")
+ ;; The 'local-kyua' generated script in Makefile.am is used
+ ;; to run the built kyua binary for tests.
+ (which "sh")))))
+ (add-after 'unpack 'fix-to_absolute-test
+ ;; This test checks for the existence of /bin and /bin/ls.
+ (lambda _
+ (substitute* "utils/fs/path_test.cpp"
+ (("chdir\\(\"/bin\")")
+ (format #f "chdir(~s)" (dirname (which "ls"))))
+ (("\"/bin/ls\"")
+ (string-append "\"" (which "ls") "\"")))))
+ (add-before 'check 'prepare-for-tests
+ (lambda _
+ ;; The test suite expects HOME to be writable.
+ (setenv "HOME" "/tmp")
+ ;; Generate the autom4te-generated testsuite script, which
+ ;; contains a '/bin/sh' shebang.
+ (invoke "make" "bootstrap/testsuite")
+ (substitute* "bootstrap/testsuite"
+ (("/bin/sh")
+ (which "sh")))))
+ (add-after 'unpack 'disable-problematic-tests
+ (lambda _
+ ;; The stacktrace tests expect core files to be dumped to the
+ ;; current directory, which doesn't happen with our kernel
+ ;; configuration (see:
+ ;; https://github.com/freebsd/kyua/issues/214).
+ (substitute* "utils/Kyuafile"
+ ((".*atf_test_program.*stacktrace_test.*")
+ "")))))))
+ (native-inputs (list autoconf automake gdb pkg-config))
+ (inputs (list atf lutok sqlite))
+ (home-page "https://github.com/freebsd/kyua")
+ (synopsis "Testing framework for infrastructure software")
+ (description "Kyua is a testing framework for infrastructure software.
+Kyua is lightweight and simple, and integrates well with various build systems
+and continuous integration frameworks. Kyua features an expressive test suite
+definition language, a safe runtime engine for test suites and a powerful
+report generation engine.")
+ (license license:bsd-3)))
+
(define-public python-gixy
;; The 0.1.20 release is missing some important fixes.
;; XXX: Commit 'e9008dcbd11f43ccac109b0cf2bf98a94e76b449' breaks tests
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 04/20] gnu: pkgconf: Enable test suite.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 02/20] gnu: Add lutok Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 03/20] gnu: Add kyua Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 05/20] gnu: Add pkgconf-as-pkg-config Maxim Cournoyer
` (16 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/pkg-config.scm (pkgconf) [arguments]: Remove #:tests? argument.
Add a set-HOME phase.
[native-inputs]: Add atf and kyua.
Change-Id: I28410d7486ab45cf1cbc6d306345fb85f0b9d7fc
---
gnu/packages/pkg-config.scm | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm
index 06f0db960f..2f07bdab9d 100644
--- a/gnu/packages/pkg-config.scm
+++ b/gnu/packages/pkg-config.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2012, 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
-;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
@@ -29,6 +29,7 @@ (define-module (gnu packages pkg-config)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages check)
#:use-module (guix memoization)
#:export (pkg-config))
@@ -181,7 +182,13 @@ (define-public pkgconf
(base32
"0qbpczwrrsq2981mdv3iil26vq9ac8v1sfi9233jpiaixrhmhv96"))))
(build-system gnu-build-system)
- (arguments (list #:tests? #f)) ;TODO: package kyua
+ (arguments
+ (list #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-HOME
+ (lambda _
+ ;; Kyua requires a writable HOME.
+ (setenv "HOME" "/tmp"))))))
+ (native-inputs (list atf kyua))
(home-page "http://pkgconf.org/")
(synopsis "Package compiler and linker metadata toolkit")
(description "@command{pkgconf} is a program which helps to configure
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 05/20] gnu: Add pkgconf-as-pkg-config.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (2 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 04/20] gnu: pkgconf: Enable test suite Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 06/20] gnu: pkgconf: Add $PKG_CONFIG_PATH search path Maxim Cournoyer
` (15 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/pkg-config.scm (pkgconf-as-pkg-config): New variable.
Change-Id: Ica85d2c248817fdf4756680cd94b0380e4a2b01f
---
gnu/packages/pkg-config.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm
index 2f07bdab9d..a5459dd2a8 100644
--- a/gnu/packages/pkg-config.scm
+++ b/gnu/packages/pkg-config.scm
@@ -198,3 +198,31 @@ (define-public pkgconf
such as compilers and IDEs to discover and use libraries configured by
pkgconf.")
(license isc)))
+
+(define-public pkgconf-as-pkg-config
+ (package/inherit pkgconf
+ (name "pkgconf-as-pkg-config")
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((pkgconf (search-input-file inputs "bin/pkgconf")))
+ (mkdir-p (string-append #$output "/bin"))
+ (symlink pkgconf (string-append #$output "/bin/pkg-config"))
+
+ ;; Also make 'pkg.m4' available, some packages might expect it.
+ (mkdir-p (string-append #$output "/share"))
+ ;; XXX: Using '#$(this-package-input "pkgconf") here would
+ ;; create a cycle.
+ (symlink (string-append (dirname (dirname pkgconf))
+ "/share/aclocal")
+ (string-append #$output "/share/aclocal"))))))))
+ (native-inputs '())
+ (inputs (list pkgconf))
+ (propagated-inputs '())))
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 06/20] gnu: pkgconf: Add $PKG_CONFIG_PATH search path.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (3 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 05/20] gnu: Add pkgconf-as-pkg-config Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 07/20] gnu: pkgconf: Add support for cross-compilation Maxim Cournoyer
` (14 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/pkg-config.scm (%pkgconf)
[native-search-paths]: Add $PKG_CONFIG_PATH.
Change-Id: I6c5c20ca26a3cf21c16eb24747c250ba432a276d
---
gnu/packages/pkg-config.scm | 1 +
1 file changed, 1 insertion(+)
diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm
index a5459dd2a8..64a36b2126 100644
--- a/gnu/packages/pkg-config.scm
+++ b/gnu/packages/pkg-config.scm
@@ -189,6 +189,7 @@ (define-public pkgconf
;; Kyua requires a writable HOME.
(setenv "HOME" "/tmp"))))))
(native-inputs (list atf kyua))
+ (native-search-paths (list $PKG_CONFIG_PATH))
(home-page "http://pkgconf.org/")
(synopsis "Package compiler and linker metadata toolkit")
(description "@command{pkgconf} is a program which helps to configure
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 07/20] gnu: pkgconf: Add support for cross-compilation.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (4 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 06/20] gnu: pkgconf: Add $PKG_CONFIG_PATH search path Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 08/20] gnu: pkg-config: Alias to pkgconf-as-pkg-config Maxim Cournoyer
` (13 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/pkg-config.scm: Reorganize module into sections.
(cross-pkg-config): Refactor to accept a TARGET argument.
(pkg-config-for-target): Likewise.
(pkg-config): Apply pkg-config-for-target to the %pkg-config argument.
(pkgconf): New variable, computed via pkg-config-for-target.
(pkgconf-as-pkg-config): Likewise.
(make-pkg-config-for-build): New procedure.
(pkg-config-for-build): Express in terms of the above.
(pkgconf-as-pkg-config-for-build): New variable.
(%pkgconf): New variable, renamed from previous pkgconf.
(%pkgconf-as-pkg-config): New variable, renamed from pkgconf-as-pkg-config.
Change-Id: I932e924949c5129bdc328c279cdd214b383d043d
---
gnu/packages/pkg-config.scm | 238 +++++++++++++++++++++---------------
1 file changed, 142 insertions(+), 96 deletions(-)
diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm
index 64a36b2126..e8d63be3d7 100644
--- a/gnu/packages/pkg-config.scm
+++ b/gnu/packages/pkg-config.scm
@@ -31,11 +31,18 @@ (define-module (gnu packages pkg-config)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (guix memoization)
- #:export (pkg-config))
+ #:export (pkg-config
+ pkgconf
+ pkgconf-as-pkg-config))
-;; This is the "primitive" pkg-config package. People should use `pkg-config'
-;; (see below) rather than `%pkg-config', but we export `%pkg-config' so that
-;; `fold-packages' finds it.
+\f
+;;;
+;;; "Primitive" pkg-config packages.
+;;;
+
+;; The %-less variants defined below should be used instead; the %-prefixed
+;; "primitive" packages are exported so that `fold-packages' can find them,
+;; making them available for use via the Guix CLI.
(define-public %pkg-config
(package
(name "pkg-config")
@@ -82,95 +89,7 @@ (define-public %pkg-config
it can be used for defining the location of documentation tools, for
instance.")))
-(define cross-pkg-config
- (mlambda (target)
- "Return a pkg-config for TARGET, essentially just a wrapper called
-`TARGET-pkg-config', as `configure' scripts like it."
- ;; See <http://www.flameeyes.eu/autotools-mythbuster/pkgconfig/cross-compiling.html>
- ;; for details.
- (package
- (inherit %pkg-config)
- (name (string-append (package-name %pkg-config) "-" target))
- (build-system trivial-build-system)
- (arguments
- `(#:modules ((guix build utils))
- #:builder (begin
- (use-modules (guix build utils))
-
- (let* ((in (assoc-ref %build-inputs "pkg-config"))
- (out (assoc-ref %outputs "out"))
- (bin (string-append out "/bin"))
- (prog (string-append ,target "-pkg-config"))
- (native (string-append in "/bin/pkg-config")))
-
- (mkdir-p bin)
-
- ;; Create a `TARGET-pkg-config' -> `pkg-config' symlink.
- ;; This satisfies the pkg.m4 macros, which use
- ;; AC_PROG_TOOL to determine the `pkg-config' program
- ;; name.
- (symlink native (string-append bin "/" prog))
-
- ;; Also make 'pkg.m4' available, some packages might
- ;; expect it.
- (mkdir-p (string-append out "/share"))
- (symlink (string-append in "/share/aclocal")
- (string-append out "/share/aclocal"))
- #t))))
- (native-inputs `(("pkg-config" ,%pkg-config)))
-
- ;; Ignore native inputs, and set `PKG_CONFIG_PATH' for target inputs.
- (native-search-paths '())
- (search-paths (package-native-search-paths %pkg-config)))))
-
-(define (pkg-config-for-target target)
- "Return a pkg-config package for TARGET, which may be either #f for a native
-build, or a GNU triplet."
- (if target
- (cross-pkg-config target)
- %pkg-config))
-
-;; This hack allows us to automatically choose the native or the cross
-;; `pkg-config' depending on whether it's being used in a cross-build
-;; environment or not.
-(define-syntax pkg-config
- (identifier-syntax (pkg-config-for-target (%current-target-system))))
-
-;; This hack allows for using both "pkg-config" and "TARGET-pkg-config"
-;; at the same time. Simply using '%pkg-config' and 'pkg-config' won't
-;; work because they both use the "PKG_CONFIG_PATH" environment variable.
-(define-public pkg-config-for-build
- (package
- (inherit (hidden-package %pkg-config))
- (name "pkg-config-for-build")
- (version "0")
- (source #f)
- (build-system trivial-build-system)
- (inputs
- (list bash-minimal %pkg-config))
- (arguments
- `(#:modules ((guix build utils))
- #:builder
- ,#~(begin
- (use-modules (guix build utils))
- (define where (string-append #$output "/bin/pkg-config"))
- (mkdir-p (dirname where))
- (call-with-output-file where
- (lambda (port)
- (format port "#!~a
-export PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH_FOR_BUILD\"
-exec ~a \"$@\""
- (search-input-file %build-inputs "bin/bash")
- (search-input-file %build-inputs "bin/pkg-config"))))
- (chmod where #o500))))
- (native-search-paths
- (map (lambda (original)
- (search-path-specification
- (inherit original)
- (variable "PKG_CONFIG_PATH_FOR_BUILD")))
- (package-native-search-paths %pkg-config)))))
-
-(define-public pkgconf
+(define-public %pkgconf
(package
(name "pkgconf")
(version "2.1.0")
@@ -200,8 +119,8 @@ (define-public pkgconf
pkgconf.")
(license isc)))
-(define-public pkgconf-as-pkg-config
- (package/inherit pkgconf
+(define-public %pkgconf-as-pkg-config
+ (package/inherit %pkgconf
(name "pkgconf-as-pkg-config")
(build-system gnu-build-system)
(arguments
@@ -225,5 +144,132 @@ (define-public pkgconf-as-pkg-config
"/share/aclocal")
(string-append #$output "/share/aclocal"))))))))
(native-inputs '())
- (inputs (list pkgconf))
+ (inputs (list %pkgconf))
(propagated-inputs '())))
+
+\f
+;;;
+;;; Tooling for generating pkg-config wrappers for cross-compiling.
+;;;
+
+(define (make-cross-pkg-config pkg-config)
+ (mlambda (target)
+ "Return a procedure that evaluates to a PKG-CONFIG package for TARGET,
+essentially just a wrapper called `TARGET-pkg-config', as `configure' scripts
+like it."
+ ;; See <http://www.flameeyes.eu/autotools-mythbuster/pkgconfig/cross-compiling.html>
+ ;; for details.
+ (package
+ (inherit pkg-config)
+ (name (string-append (package-name pkg-config) "-" target))
+ (build-system trivial-build-system)
+ (arguments
+ (list
+ #:builder (with-imported-modules '((guix build utils))
+ #~(begin
+ (use-modules (guix build utils))
+
+ (let* ((in #+pkg-config)
+ (out #$output)
+ (bin (string-append out "/bin"))
+ (prog (string-append #$target "-pkg-config"))
+ (native (string-append in "/bin/pkg-config")))
+
+ (mkdir-p bin)
+
+ ;; Create a `TARGET-pkg-config' -> `pkg-config' symlink.
+ ;; This satisfies the pkg.m4 macros, which use
+ ;; AC_PROG_TOOL to determine the `pkg-config' program
+ ;; name.
+ (symlink native (string-append bin "/" prog))
+
+ ;; Also make 'pkg.m4' available, some packages might
+ ;; expect it.
+ (mkdir-p (string-append out "/share"))
+ (symlink (string-append in "/share/aclocal")
+ (string-append out "/share/aclocal")))))))
+
+ ;; Ignore native inputs, and set `PKG_CONFIG_PATH' for target inputs.
+ (native-search-paths '())
+ (search-paths (package-native-search-paths pkg-config)))))
+
+(define (make-pkg-config-for-target pkg-config)
+ "Return a procedure that evaluates to a `pkg-config' package for TARGET
+built from PKG-CONFIG. The target may be either #f for a native build, or a
+GNU triplet."
+ (let ((cross-pkg-config (make-cross-pkg-config pkg-config)))
+ (lambda (target)
+ (if target
+ (cross-pkg-config target)
+ pkg-config))))
+
+(define pkg-config-for-target
+ (make-pkg-config-for-target %pkg-config))
+
+(define pkgconf-for-target
+ (make-pkg-config-for-target %pkgconf))
+
+(define pkgconf-as-pkg-config-for-target
+ (make-pkg-config-for-target %pkgconf-as-pkg-config))
+
+\f
+;;;
+;;; The final pkg-config package variables to use.
+;;;
+
+;; These are a hacks for automatically choosing the native or the cross
+;; `pkg-config' depending on whether it's being used in a cross-build
+;; environment or not.
+(define-syntax pkg-config
+ (identifier-syntax (pkg-config-for-target (%current-target-system))))
+
+(define-syntax pkgconf
+ (identifier-syntax (pkgconf-for-target (%current-target-system))))
+
+(define-syntax pkgconf-as-pkg-config
+ (identifier-syntax (pkgconf-as-pkg-config-for-target
+ (%current-target-system))))
+
+\f
+;;;
+;;; pkg-config packages for native use (build-time only).
+;;;
+(define (make-pkg-config-for-build pkg-config)
+ "Return a `pkg-config' package from PKG-CONFIG for use by the builder when
+cross-compiling, that honors a PKG_CONFIG_PATH_FOR_BUILD search path instead
+of PKG_CONFIG_PATH, to avoid conflicting with the target `pkg-config'."
+ (package
+ (inherit (hidden-package pkg-config))
+ (name "pkg-config-for-build")
+ (version "0")
+ (source #f)
+ (build-system trivial-build-system)
+ (inputs (list bash-minimal pkg-config))
+ (arguments
+ (list
+ #:modules '((guix build utils))
+ #:builder
+ #~(begin
+ (use-modules (guix build utils))
+ (define where (string-append #$output "/bin/pkg-config"))
+ (mkdir-p (dirname where))
+ (call-with-output-file where
+ (lambda (port)
+ (format port "#!~a
+export PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH_FOR_BUILD\"
+exec ~a \"$@\""
+ (search-input-file %build-inputs "bin/bash")
+ (search-input-file %build-inputs "bin/pkg-config"))))
+ (chmod where #o500))))
+ (native-search-paths
+ (map (lambda (original)
+ (search-path-specification
+ (inherit original)
+ (variable "PKG_CONFIG_PATH_FOR_BUILD")))
+ (package-native-search-paths pkg-config)))))
+
+(define-public pkg-config-for-build
+ (make-pkg-config-for-build %pkg-config))
+
+(define-public pkgconf-as-pkg-config-for-build
+ (make-pkg-config-for-build %pkgconf-as-pkg-config))
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 08/20] gnu: pkg-config: Alias to pkgconf-as-pkg-config.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (5 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 07/20] gnu: pkgconf: Add support for cross-compilation Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-24 11:41 ` Ludovic Courtès
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 09/20] gnu: pstoedit: Update to 4.00 Maxim Cournoyer
` (12 subsequent siblings)
19 siblings, 1 reply; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813
Cc: Maxim Cournoyer, Efraim Flashner, Ekaitz Zarraga,
Ludovic Courtès
This switches the default pkg-config implementation used in Guix to pkgconf.
* gnu/packages/pkg-config.scm (pkg-config): Define as pkgconf-as-pkg-config.
(%pkgconf-with-tests): Renamed from %pkgconf.
(%pkgconf): New minimal variant to avoid circular dependencies for bootstrap
sensitive packages.
(%pkgconf-as-pkg-config): Delete now inherited hidden property.
* gnu/packages/commencement.scm (make-gnu-make-final): Replace %pkg-config
with %pkgconf-as-pkg-config.
Change-Id: Id2b9f40f8f09babae9c6dfc47d1de071ce78e011
---
gnu/packages/commencement.scm | 13 ++++++-------
gnu/packages/pkg-config.scm | 25 +++++++++++++++++++++----
2 files changed, 27 insertions(+), 11 deletions(-)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 3e5e21ca03..e9474a797e 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -3346,13 +3346,13 @@ (define with-boot5 with-boot4)
(define (make-gnu-make-final)
"Compute the final GNU Make, which uses the final Guile."
+ ;; Avoid a circular dependency by creating a new bootstrap pkg-config
+ ;; variant.
(let ((pkg-config (package
- (inherit %pkg-config) ;the native pkg-config
- (inputs `(("guile" ,guile-final)
- ,@(%boot5-inputs)))
- (arguments
- `(#:implicit-inputs? #f
- ,@(package-arguments %pkg-config))))))
+ ;; Refer to %pkgconf-as-pkg-config instead of
+ ;; pkgconf-as-pkg-config to ensure native package is
+ ;; used.
+ (inherit (with-boot5 %pkgconf-as-pkg-config)))))
(package
(inherit (package-with-bootstrap-guile gnu-make))
(inputs `(("guile" ,guile-final)
@@ -3362,7 +3362,6 @@ (define (make-gnu-make-final)
`(#:implicit-inputs? #f
,@(package-arguments gnu-make))))))
-
(define coreutils-final
;; The final Coreutils. Treat them specially because some packages, such as
;; Findutils, keep a reference to the Coreutils they were built with.
diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm
index e8d63be3d7..934449aad2 100644
--- a/gnu/packages/pkg-config.scm
+++ b/gnu/packages/pkg-config.scm
@@ -31,7 +31,9 @@ (define-module (gnu packages pkg-config)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (guix memoization)
- #:export (pkg-config
+ #:use-module (srfi srfi-1)
+ #:export (old-pkg-config ;the original
+ pkg-config ;alias for pkgconf-as-pkg-config
pkgconf
pkgconf-as-pkg-config))
@@ -89,7 +91,9 @@ (define-public %pkg-config
it can be used for defining the location of documentation tools, for
instance.")))
-(define-public %pkgconf
+;;; This is the package exposed to the CLI, to ease updates via 'guix
+;;; refresh'.
+(define-public %pkgconf-with-tests
(package
(name "pkgconf")
(version "2.1.0")
@@ -119,6 +123,13 @@ (define-public %pkgconf
pkgconf.")
(license isc)))
+;;; This is the minimal, untested variant used to avoid circular dependencies.
+(define-public %pkgconf
+ (hidden-package
+ (package/inherit %pkgconf-with-tests
+ (arguments (list #:tests? #f))
+ (native-inputs '()))))
+
(define-public %pkgconf-as-pkg-config
(package/inherit %pkgconf
(name "pkgconf-as-pkg-config")
@@ -145,7 +156,8 @@ (define-public %pkgconf-as-pkg-config
(string-append #$output "/share/aclocal"))))))))
(native-inputs '())
(inputs (list %pkgconf))
- (propagated-inputs '())))
+ (propagated-inputs '())
+ (properties (alist-delete 'hidden? (package-properties %pkgconf)))))
\f
;;;
@@ -220,7 +232,7 @@ (define pkgconf-as-pkg-config-for-target
;; These are a hacks for automatically choosing the native or the cross
;; `pkg-config' depending on whether it's being used in a cross-build
;; environment or not.
-(define-syntax pkg-config
+(define-syntax old-pkg-config
(identifier-syntax (pkg-config-for-target (%current-target-system))))
(define-syntax pkgconf
@@ -230,6 +242,11 @@ (define-syntax pkgconf-as-pkg-config
(identifier-syntax (pkgconf-as-pkg-config-for-target
(%current-target-system))))
+;;; This alias is to ensure we use pkgconf instead of pkg-config across Guix,
+;;; which includes welcome refinements such as proper handling of the
+;;; Requires.private field.
+(define pkg-config pkgconf-as-pkg-config)
+
\f
;;;
;;; pkg-config packages for native use (build-time only).
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 08/20] gnu: pkg-config: Alias to pkgconf-as-pkg-config.
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 08/20] gnu: pkg-config: Alias to pkgconf-as-pkg-config Maxim Cournoyer
@ 2024-02-24 11:41 ` Ludovic Courtès
2024-02-24 20:34 ` Maxim Cournoyer
0 siblings, 1 reply; 26+ messages in thread
From: Ludovic Courtès @ 2024-02-24 11:41 UTC (permalink / raw)
To: Maxim Cournoyer; +Cc: 68813, Ekaitz Zarraga, Efraim Flashner
Hi!
Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
> This switches the default pkg-config implementation used in Guix to pkgconf.
I didn’t follow discussions and I learned about ‘pkgconf’ only recently.
I’m afraid that adding this to ‘core-updates’ would further postpone its
merger, which was already being discussed beginning of January.
Should it instead be done on a separate branch?
(Aside: where should I read about the rationale of the pkg-config ->
pkgconf move?)
Ludo’.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 08/20] gnu: pkg-config: Alias to pkgconf-as-pkg-config.
2024-02-24 11:41 ` Ludovic Courtès
@ 2024-02-24 20:34 ` Maxim Cournoyer
2024-02-24 22:33 ` Ludovic Courtès
0 siblings, 1 reply; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-24 20:34 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 68813, Ekaitz Zarraga, Efraim Flashner
Hi Ludovic,
Ludovic Courtès <ludo@gnu.org> writes:
> Hi!
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> This switches the default pkg-config implementation used in Guix to pkgconf.
>
> I didn’t follow discussions and I learned about ‘pkgconf’ only recently.
> I’m afraid that adding this to ‘core-updates’ would further postpone its
> merger, which was already being discussed beginning of January.
Was it in a good shape to be merged back then? It seems to me we are
still ironing things fairly low in the tree such as a glibc upgrade by
jpoiret (for security reasons), which leaves the opportunity to tackle
well tested changes to it, which this one is.
> Should it instead be done on a separate branch?
I've manually rebuilt a good chunk of the world (mpv and plasmatube)
using pkgconf, and haven't seen any breakage caused by it. You can try
do build these patches on top of current core-updates on the
hydra-guix-129 machine, which should still have it in its store.
> (Aside: where should I read about the rationale of the pkg-config ->
> pkgconf move?)
It all started with f3fdb4e041cb5740ba0b38b9ad017571f8414d33 ("gnu: mpv:
Propagate most libraries."), which was probably triggered by mpv newly
using Requires.static fields in their pkg-config files (Meson knows to
do that). Looking for nicer alternatives to propagating these, pkgconf
picked my interested as it's supposed to fix some of the pkg-config long
time "bugs" that upstream is not too keen to fix (for backward
compatibility, I think), such as this Requires.static behavior:
Current guix, with above f3fdb4e041cb5740ba0b38b9ad017571f8414d33 commit
reverted:
--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix shell --pure pkg-config mpv \
-- pkg-config --print-errors --short-errors --exists mpv
Package 'wayland-client', required by 'mpv', not found
$ echo $?
1
--8<---------------cut here---------------end--------------->8---
Compare with:
--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix shell --pure pkg-config pkgconf mpv \
-- pkgconf --print-errors --short-errors --exists mpv
$ echo $?
0
--8<---------------cut here---------------end--------------->8---
The above demonstrates that pkgconf's behavior is to consider *.private
fields only when provided the --static option, which is what we want.
I hope this helps understanding the rationale.
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 08/20] gnu: pkg-config: Alias to pkgconf-as-pkg-config.
2024-02-24 20:34 ` Maxim Cournoyer
@ 2024-02-24 22:33 ` Ludovic Courtès
2024-03-09 18:32 ` bug#68813: [PATCH core-updates] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
0 siblings, 1 reply; 26+ messages in thread
From: Ludovic Courtès @ 2024-02-24 22:33 UTC (permalink / raw)
To: Maxim Cournoyer; +Cc: 68813, Ekaitz Zarraga, Efraim Flashner
Hi,
Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Hi!
>>
>> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>>
>>> This switches the default pkg-config implementation used in Guix to pkgconf.
>>
>> I didn’t follow discussions and I learned about ‘pkgconf’ only recently.
>> I’m afraid that adding this to ‘core-updates’ would further postpone its
>> merger, which was already being discussed beginning of January.
>
> Was it in a good shape to be merged back then?
No, it wasn’t:
<https://lists.gnu.org/archive/html/guix-devel/2024-01/msg00096.html>.
But a lot of work has gone into the branch since that time that goes way
beyond “fixing problems”.
[...]
> I've manually rebuilt a good chunk of the world (mpv and plasmatube)
> using pkgconf, and haven't seen any breakage caused by it. You can try
> do build these patches on top of current core-updates on the
> hydra-guix-129 machine, which should still have it in its store.
I won’t try, I’m just saying from experience that the “just one last
tiny change” strategy never converges. :-)
>> (Aside: where should I read about the rationale of the pkg-config ->
>> pkgconf move?)
[...]
> The above demonstrates that pkgconf's behavior is to consider *.private
> fields only when provided the --static option, which is what we want.
>
> I hope this helps understanding the rationale.
It does, and it looks like a nice improvement. Thanks for explaining!
Ludo’.
^ permalink raw reply [flat|nested] 26+ messages in thread
* bug#68813: [PATCH core-updates] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates
2024-02-24 22:33 ` Ludovic Courtès
@ 2024-03-09 18:32 ` Maxim Cournoyer
0 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-03-09 18:32 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: Efraim Flashner, Ekaitz Zarraga, 68813-done
Hello,
Ludovic Courtès <ludo@gnu.org> writes:
>> I've manually rebuilt a good chunk of the world (mpv and plasmatube)
>> using pkgconf, and haven't seen any breakage caused by it. You can try
>> do build these patches on top of current core-updates on the
>> hydra-guix-129 machine, which should still have it in its store.
>
> I won’t try, I’m just saying from experience that the “just one last
> tiny change” strategy never converges. :-)
>
>>> (Aside: where should I read about the rationale of the pkg-config ->
>>> pkgconf move?)
>
> [...]
>
>> The above demonstrates that pkgconf's behavior is to consider *.private
>> fields only when provided the --static option, which is what we want.
>>
>> I hope this helps understanding the rationale.
>
> It does, and it looks like a nice improvement. Thanks for explaining!
Great! I've now merged this series in core-updates, after consulting
with Josselin, since we are going to need a world rebuild anyway.
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 09/20] gnu: pstoedit: Update to 4.00.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (6 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 08/20] gnu: pkg-config: Alias to pkgconf-as-pkg-config Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 10/20] gnu: autotrace: Update to 0.31.10 Maxim Cournoyer
` (11 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/graphics.scm (pstoedit): Update to 4.00.
[source]: Apply patches.
[arguments]: New field.
[inputs]: Remove labels. Add glib and pango.
* gnu/packages/patches/pstoedit-fix-gcc12.patch: New file.
* gnu/packages/patches/pstoedit-fix-plainC.patch: Likewise.
* gnu/packages/patches/pstoedit-pkglibdir.patch: Likewise.
* gnu/local.mk (dist_patch_DATA): Register them.
Change-Id: Ia17dae0ebc3e08b573b02431b10cc689a72a07dd
---
gnu/local.mk | 3 ++
gnu/packages/graphics.scm | 31 ++++++++----
gnu/packages/patches/pstoedit-fix-gcc12.patch | 12 +++++
.../patches/pstoedit-fix-plainC.patch | 47 +++++++++++++++++++
gnu/packages/patches/pstoedit-pkglibdir.patch | 19 ++++++++
5 files changed, 104 insertions(+), 8 deletions(-)
create mode 100644 gnu/packages/patches/pstoedit-fix-gcc12.patch
create mode 100644 gnu/packages/patches/pstoedit-fix-plainC.patch
create mode 100644 gnu/packages/patches/pstoedit-pkglibdir.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 34cdf6564d..9db2e39c45 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1908,6 +1908,9 @@ dist_patch_DATA = \
%D%/packages/patches/psm-disable-memory-stats.patch \
%D%/packages/patches/psm-ldflags.patch \
%D%/packages/patches/psm-repro.patch \
+ %D%/packages/patches/pstoedit-fix-gcc12.patch \
+ %D%/packages/patches/pstoedit-fix-plainC.patch \
+ %D%/packages/patches/pstoedit-pkglibdir.patch \
%D%/packages/patches/pulseaudio-fix-mult-test.patch \
%D%/packages/patches/pulseaudio-longer-test-timeout.patch \
%D%/packages/patches/pulseview-qt515-compat.patch \
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index e04834670d..17a388beea 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -21,7 +21,7 @@
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
-;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net>
;;; Copyright © 2021 Andy Tai <atai@atai.org>
@@ -976,23 +976,38 @@ (define-public python-booleanoperations
(define-public pstoedit
(package
(name "pstoedit")
- (version "3.77")
+ ;; Do not yet upgrade to 4.0.0, as its include file fails to compile for C
+ ;; project (see: https://github.com/reviczky/pstoedit/issues/2).
+ (version "4.00")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/pstoedit/pstoedit/"
version "/pstoedit-" version ".tar.gz"))
(sha256
(base32
- "02av76j75g5sq3bg353yl6dlllda9ihmmk4c8hvgiscix816nv4s"))))
+ "1sk2mhrjgnlz4a1650p3qxrv6av6qc66ibmy48ckspx7mfp7snh7"))
+ (patches
+ (search-patches "pstoedit-fix-gcc12.patch"
+ "pstoedit-fix-plainC.patch"
+ "pstoedit-pkglibdir.patch"))))
(build-system gnu-build-system)
+ (arguments
+ ;; Avoid keeping extraneous references to libtool exhaustively listed
+ ;; dependencies.
+ (list #:configure-flags #~(list "LDFLAGS=-Wl,--as-needed")))
(native-inputs
(list pkg-config))
(inputs
- `(("ghostscript" ,ghostscript)
- ("imagemagick" ,imagemagick)
- ("libplot" ,plotutils)
- ("libjpeg" ,libjpeg-turbo)
- ("zlib" ,zlib))) ;else libp2edrvmagick++.so fails to link
+ (list ghostscript
+ imagemagick
+ plotutils
+ libjpeg-turbo
+ libzip
+ ;; The following inputs are pulled in by libtool, from the
+ ;; imagemagick library files (.la), which records all its
+ ;; transitive dependencies.
+ glib
+ pango))
(home-page "http://www.pstoedit.net/")
(synopsis "Converter for PostScript and PDF graphics")
(description "The @code{pstoedit} utility allows translating graphics
diff --git a/gnu/packages/patches/pstoedit-fix-gcc12.patch b/gnu/packages/patches/pstoedit-fix-gcc12.patch
new file mode 100644
index 0000000000..4aeeaff818
--- /dev/null
+++ b/gnu/packages/patches/pstoedit-fix-gcc12.patch
@@ -0,0 +1,12 @@
+Retrieved from Fedora: https://src.fedoraproject.org/rpms/pstoedit/tree
+
+--- a/src/drvpptx.orig.cpp 2021-08-29 16:25:45.000000000 +0200
++++ b/src/drvpptx.cpp 2022-01-28 11:57:44.765756339 +0100
+@@ -65,6 +65,7 @@
+ #define ZIP_EXTERN extern
+
+ #include <zip.h>
++#include <memory>
+
+ #ifdef _MSC_VER
+ // MS VC++ Windows
diff --git a/gnu/packages/patches/pstoedit-fix-plainC.patch b/gnu/packages/patches/pstoedit-fix-plainC.patch
new file mode 100644
index 0000000000..684c5043be
--- /dev/null
+++ b/gnu/packages/patches/pstoedit-fix-plainC.patch
@@ -0,0 +1,47 @@
+Retrieved from Fedora: https://src.fedoraproject.org/rpms/pstoedit/tree
+
+diff --git a/src/pstoedit.cpp b/src/pstoedit.cpp
+index a718f37..ac0df37 100755
+--- a/src/pstoedit.cpp
++++ b/src/pstoedit.cpp
+@@ -327,6 +327,11 @@ extern FILE *yyin; // used by lexer
+ // otherwise we could declare it locally where it is used
+
+
++extern "C" DLLEXPORT void loadpstoeditplugins_plainC(const char *progname, int verbose)
++{
++ return loadpstoeditplugins(progname, cerr, (bool) verbose);
++}
++
+ static void usage(ostream & outstream, bool forTeX, bool withdetails, bool withcategories )
+ {
+ if (withcategories) {
+diff --git a/src/pstoedit.h b/src/pstoedit.h
+index 294b3c2..74ebf2a 100755
+--- a/src/pstoedit.h
++++ b/src/pstoedit.h
+@@ -100,8 +100,13 @@ void clearPstoeditDriverInfo_plainC(struct DriverDescription_S * ptr);
+
+ #ifdef __cplusplus
+ extern "C" DLLEXPORT
+-#endif
+ void loadpstoeditplugins(const char* progname, std::ostream & errstream, bool verbose);
++#endif
++
++#ifdef __cplusplus
++extern "C" DLLEXPORT
++#endif
++void loadpstoeditplugins_plainC(const char* progname, int verbose);
+
+ #ifdef __cplusplus
+ extern "C" DLLEXPORT
+--- a/src/pstoedit.orig.h 2023-07-22 19:27:43.691166652 +0200
++++ b/src/pstoedit.h 2023-07-22 19:31:18.897952130 +0200
+@@ -37,6 +37,7 @@
+ #endif
+
+ #include "pstoedll.h"
++#include <stdbool.h>
+
+ typedef int (*execute_interpreter_function)(int argc, const char * const argv[]);
+
diff --git a/gnu/packages/patches/pstoedit-pkglibdir.patch b/gnu/packages/patches/pstoedit-pkglibdir.patch
new file mode 100644
index 0000000000..0734913593
--- /dev/null
+++ b/gnu/packages/patches/pstoedit-pkglibdir.patch
@@ -0,0 +1,19 @@
+Retrieved from Fedora: https://src.fedoraproject.org/rpms/pstoedit/tree
+
+--- a/config/pstoedit.pc.orig.in 2018-04-16 14:26:28.000000000 +0200
++++ b/config/pstoedit.pc.in 2020-10-05 14:37:16.750980762 +0200
+@@ -1,7 +1,7 @@
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ libdir=@libdir@
+-includedir=@includedir@
++includedir=@includedir@/pstoedit
+
+ Name: pstoedit
+ Description: converts PostScript(TM) and PDF files to other vector graphic formats
+@@ -8,4 +8,4 @@
+ Version: @VERSION@.0
+ Requires:
+ Libs: -L@libdir@ -lpstoedit @CXX_STD_LIB@ @CXX_RUNTIME_LIB@ @LIBLD_LDFLAGS@
+-Cflags: -I@includedir@
++Cflags: -I@includedir@/pstoedit
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 10/20] gnu: autotrace: Update to 0.31.10.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (7 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 09/20] gnu: pstoedit: Update to 4.00 Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 11/20] gnu: autotrace: Remove libtool archives Maxim Cournoyer
` (10 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/graphics.scm (autotrace): Update to 0.31.10.
[inputs]: Add pango.
Change-Id: I26abf2ee1a2c031062a2cdfa1ac4c02cd7474614
---
gnu/packages/graphics.scm | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 17a388beea..bc7bdc124c 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -382,7 +382,7 @@ (define-public fox
(define-public autotrace
(package
(name "autotrace")
- (version "0.31.9")
+ (version "0.31.10")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -391,7 +391,7 @@ (define-public autotrace
(file-name (git-file-name name version))
(sha256
(base32
- "0fsg13pg72ac51l3fkzvyf7h9mzbvfxp9vfjfiwkyvx6hbm83apj"))))
+ "0ai91c567c5z560s4zjgjclgca1pm61h8cb8c8q84wg3xvkhmc9x"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags #~'("--disable-static")
@@ -419,7 +419,11 @@ (define-public autotrace
imagemagick
libjpeg-turbo
libpng
- pstoedit))
+ pstoedit
+ ;; pango is required because of libtool, from the imagemagick
+ ;; library files (.la), which records all its transitive
+ ;; dependencies.
+ pango))
(home-page "https://github.com/autotrace/autotrace")
(synopsis "Bitmap to vector graphics converter")
(description "AutoTrace is a utility for converting bitmap into vector
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 11/20] gnu: autotrace: Remove libtool archives.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (8 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 10/20] gnu: autotrace: Update to 0.31.10 Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 12/20] gnu: autotrace: Fix pkg-config file Maxim Cournoyer
` (9 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/graphics.scm (autotrace)
[arguments] <phases>: Add remove-libtool-archives phase.
Change-Id: Icd8dcf86592231e958db1ebe723e3ec6f902e0bd
---
gnu/packages/graphics.scm | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index bc7bdc124c..fa33dce747 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -405,7 +405,16 @@ (define-public autotrace
;; or IMAGEMAGICK_; fix that.
(substitute* "autotrace.pc.in"
(("@MAGICK_(LIBS|CFLAGS)@" _ var)
- (string-append "@IMAGEMAGICK_" var "@"))))))))
+ (string-append "@IMAGEMAGICK_" var "@")))))
+ (add-after 'install 'remove-libtool-archives
+ ;; Libtool archives lists the whole transitive dependencies,
+ ;; which is unnecessary unless producing static archives and
+ ;; leads to overlinking, e.g. causing the build of inkscape
+ ;; to fail due to looking for a transitive pstoedit library.
+ (lambda _
+ (for-each delete-file
+ (find-files (string-append #$output "/lib")
+ "\\.la$")))))))
(native-inputs
(list which
autoconf
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 12/20] gnu: autotrace: Fix pkg-config file.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (9 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 11/20] gnu: autotrace: Remove libtool archives Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 13/20] gnu: gd: Update to 2.3.3 Maxim Cournoyer
` (8 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/patches/autotrace-pkg-config.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/graphics.scm (autotrace) [source]: Apply it.
Change-Id: Id2086a5e1e1faa48d16ee8faae6960aaf7602321
---
gnu/local.mk | 1 +
gnu/packages/graphics.scm | 3 +-
.../patches/autotrace-pkg-config.patch | 123 ++++++++++++++++++
3 files changed, 126 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/autotrace-pkg-config.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 9db2e39c45..c072d5af85 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -956,6 +956,7 @@ dist_patch_DATA = \
%D%/packages/patches/audiofile-hurd.patch \
%D%/packages/patches/audiofile-function-signature.patch \
%D%/packages/patches/automake-skip-amhello-tests.patch \
+ %D%/packages/patches/autotrace-pkg-config.patch \
%D%/packages/patches/avahi-localstatedir.patch \
%D%/packages/patches/avidemux-install-to-lib.patch \
%D%/packages/patches/awesome-reproducible-png.patch \
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index fa33dce747..01cd55f33b 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -391,7 +391,8 @@ (define-public autotrace
(file-name (git-file-name name version))
(sha256
(base32
- "0ai91c567c5z560s4zjgjclgca1pm61h8cb8c8q84wg3xvkhmc9x"))))
+ "0ai91c567c5z560s4zjgjclgca1pm61h8cb8c8q84wg3xvkhmc9x"))
+ (patches (search-patches "autotrace-pkg-config.patch"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags #~'("--disable-static")
diff --git a/gnu/packages/patches/autotrace-pkg-config.patch b/gnu/packages/patches/autotrace-pkg-config.patch
new file mode 100644
index 0000000000..eef1008bf2
--- /dev/null
+++ b/gnu/packages/patches/autotrace-pkg-config.patch
@@ -0,0 +1,123 @@
+Submitted upstream: https://github.com/autotrace/autotrace/pull/128
+
+diff --git a/Makefile.am b/Makefile.am
+index ea6eadd..cd9de37 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -127,7 +127,18 @@ autotraceinclude_HEADERS=\
+ src/exception.h \
+ src/color.h
+
+-libautotrace_la_LDFLAGS = -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
++libautotrace_la_LDFLAGS = \
++ -version-info \
++ $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
++ $(GRAPHICSMAGICK_LIBS) \
++ $(IMAGEMAGICK_LIBS) \
++ $(LIBPNG_LIBS) \
++ $(LIBSWF_LIBS) \
++ $(LIBPSTOEDIT_LIBS) \
++ $(GLIB2_LIBS) \
++ $(POPT_LIBS) \
++ $(INTLLIBS) \
++ -lm
+
+ #
+ # noinst_HEADERS: headers shared between lib and bin.
+@@ -143,17 +154,7 @@ autotrace_SOURCES=\
+
+ AM_CPPFLAGS = $(GRAPHICSMAGICK_CFLAGS) $(IMAGEMAGICK_CFLAGS) $(LIBPSTOEDIT_CFLAGS) $(LIBSWF_CFLAGS) $(GLIB2_CFLAGS) -DLOCALEDIR=\""$(datadir)/locale"\"
+
+-autotrace_LDADD = \
+- libautotrace.la \
+- $(GRAPHICSMAGICK_LIBS) \
+- $(IMAGEMAGICK_LIBS) \
+- $(LIBPNG_LIBS) \
+- $(LIBSWF_LIBS) \
+- $(LIBPSTOEDIT_LIBS) \
+- $(GLIB2_LIBS) \
+- $(POPT_LIBS) \
+- $(INTLLIBS) \
+- -lm
++autotrace_LDADD = libautotrace.la
+
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA= autotrace.pc
+diff --git a/autotrace.pc.in b/autotrace.pc.in
+index 4c2e581..c70808e 100644
+--- a/autotrace.pc.in
++++ b/autotrace.pc.in
+@@ -6,6 +6,6 @@ includedir=@includedir@
+ Name: Autotrace
+ Description: a utility that converts bitmap to vector graphics
+ Version: @VERSION@
+-Requires:
+-Libs: -L@libdir@ -lautotrace @LIBPNG_LIBS@ @MAGICK_LIBS@ @LIBSWF_LIBS@ @LIBPSTOEDIT_LIBS@ @GLIB2_LIBS@
+-Cflags: -I@includedir@ @MAGICK_CFLAGS@ @LIBPSTOEDIT_CFLAGS@ @GLIB2_CFLAGS@
++Requires.private: glib-2.0 >= 2.0 gmodule-2.0 >= 2.0 gthread-2.0 >= 2.0 gobject-2.0 >= 2.0 @REQUIRES_PRIVATE@
++Libs: -L@libdir@ -lautotrace
++Cflags: -I@includedir@
+diff --git a/configure.ac b/configure.ac
+index 43b6fea..e6cf262 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -85,7 +85,8 @@ else
+ if test "x${with_magick}" = xGraphicsMagick; then
+ PKG_CHECK_MODULES([GRAPHICSMAGICK],
+ [GraphicsMagick >= 1.3.40],
+- [HAVE_MAGICK=yes
++ [REQUIRES_PRIVATE="${REQUIRES_PRIVATE}GraphicsMagick >= 1.3.40 "
++ HAVE_MAGICK=yes
+ HAVE_GRAPHICSMAGICK=yes
+ MAGICK_LIBRARY=GraphicsMagick
+ AC_DEFINE(HAVE_GRAPHICSMAGICK, 1, [GraphicsMagick library is available.])
+@@ -97,13 +98,15 @@ else
+ if test "x${with_magick}" = xImageMagick; then
+ PKG_CHECK_MODULES([IMAGEMAGICK7],
+ [ImageMagick >= 7.0.1],
+- [HAVE_IMAGEMAGICK7=yes
++ [REQUIRES_PRIVATE="${REQUIRES_PRIVATE}ImageMagick >= 7.0.1 "
++ HAVE_IMAGEMAGICK7=yes
+ AC_DEFINE(HAVE_IMAGEMAGICK7, 1, [ImageMagick version 7 or higher is available.])
+ ],[]
+ )
+ PKG_CHECK_MODULES([IMAGEMAGICK],
+ [ImageMagick >= 5.2.1],
+- [HAVE_MAGICK=yes
++ [REQUIRES_PRIVATE="${REQUIRES_PRIVATE}ImageMagick >= 5.2.1 "
++ HAVE_MAGICK=yes
+ HAVE_IMAGEMAGICK=yes
+ MAGICK_LIBRARY=ImageMagick
+ AC_DEFINE(HAVE_IMAGEMAGICK, 1, [ImageMagick library is available.])
+@@ -140,6 +143,7 @@ HAVE_LIBPNG=no
+ if test "x${with_png}" = xyes; then
+ PKG_CHECK_MODULES([LIBPNG],[libpng],
+ [
++ REQUIRES_PRIVATE="${REQUIRES_PRIVATE}libpng "
+ HAVE_LIBPNG=yes
+ AC_DEFINE(HAVE_LIBPNG,1,[PNG library is available or not])
+ ],
+@@ -165,6 +169,7 @@ if test "${swf_header_found}" = yes ; then
+ PKG_CHECK_MODULES([LIBSWF],
+ [libming],
+ [
++ REQUIRES_PRIVATE="${REQUIRES_PRIVATE}libming "
+ HAVE_LIBSWF=yes
+ AC_DEFINE(HAVE_LIBSWF,1,[SWF library is available or not])
+ ],
+@@ -187,6 +192,7 @@ if test "x${with_pstoedit}" = xyes; then
+ PKG_CHECK_MODULES([LIBPSTOEDIT],
+ [pstoedit >= 3.32.0],
+ [
++ REQUIRES_PRIVATE="${REQUIRES_PRIVATE}pstoedit >= 3.32.0 "
+ HAVE_LIBPSTOEDIT=yes
+ AC_DEFINE(HAVE_LIBPSTOEDIT,1,[pstoedit library is available or not])
+ ],
+@@ -210,6 +216,7 @@ fi
+
+ dnl po/Makefile.in FIXME FIXME FIXME
+ AC_CONFIG_FILES([po/Makefile.in Makefile autotrace.pc])
++AC_SUBST([REQUIRES_PRIVATE])
+ AC_OUTPUT
+
+ echo "
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 13/20] gnu: gd: Update to 2.3.3.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (10 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 12/20] gnu: autotrace: Fix pkg-config file Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 14/20] gnu: lib2geom: Update to 1.3 Maxim Cournoyer
` (7 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/gd.scm (gd): Update to 2.3.3.
[source]: Remove obsolete gd-Revert-fix-303-gdlib.pc.patch patch.
[arguments] Use gexps.
<phases>: Remove disable-failing-test phase. Add remove-libtool-archives
phase.
* gnu/packages/patches/gd-Revert-fix-303-gdlib.pc.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): De-register it.
Change-Id: I8cddf29d123ca0b66cc0540666c875039e753482
---
gnu/local.mk | 1 -
gnu/packages/gd.scm | 57 +++---
.../patches/gd-Revert-fix-303-gdlib.pc.patch | 179 ------------------
3 files changed, 28 insertions(+), 209 deletions(-)
delete mode 100644 gnu/packages/patches/gd-Revert-fix-303-gdlib.pc.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index c072d5af85..94b4620c02 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1294,7 +1294,6 @@ dist_patch_DATA = \
%D%/packages/patches/gcolor3-update-libportal-usage.patch \
%D%/packages/patches/gd-fix-tests-on-i686.patch \
%D%/packages/patches/gd-brect-bounds.patch \
- %D%/packages/patches/gd-Revert-fix-303-gdlib.pc.patch \
%D%/packages/patches/gdm-default-session.patch \
%D%/packages/patches/gdm-elogind-support.patch \
%D%/packages/patches/gdm-remove-hardcoded-xwayland-path.patch \
diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm
index 149b82468c..21ad1579ec 100644
--- a/gnu/packages/gd.scm
+++ b/gnu/packages/gd.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2017, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -43,38 +44,36 @@ (define-public gd
;; Note: With libgd.org now pointing to github.com, genuine old
;; tarballs are no longer available. Notably, versions 2.0.x are
;; missing.
- (version "2.3.2")
+ (version "2.3.3")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/libgd/libgd/releases/download/gd-"
- version "/libgd-" version ".tar.xz"))
- (sha256
- (base32
- "1yypywkh8vphcy4qqpf51kxpb0a3r7rjqk3fc61rpn70hiq092j7"))
- (patches
- (search-patches "gd-fix-tests-on-i686.patch"
- "gd-brect-bounds.patch"
- ;; Drop when
- ;; https://github.com/libgd/libgd/issues/691
- ;; is solved.
- "gd-Revert-fix-303-gdlib.pc.patch"))))
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/libgd/libgd/releases/download/gd-"
+ version "/libgd-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0qas3q9xz3wgw06dm2fj0i189rain6n60z1vyq50d5h7wbn25s1z"))
+ (patches
+ (search-patches "gd-fix-tests-on-i686.patch"
+ "gd-brect-bounds.patch"))))
(build-system gnu-build-system)
(arguments
- ;; As recommended by github.com/libgd/libgd/issues/278 to fix rounding
- ;; issues on aarch64 and other architectures.
- `(#:make-flags '("CFLAGS=-ffp-contract=off")
- #:configure-flags '("--disable-static")
- #:phases
- (modify-phases %standard-phases
- ;; This test is known to fail on most architectures:
- ;; https://github.com/libgd/libgd/issues/359
- ;; TODO Replace this substitution with an upstream bug fix.
- (add-after 'unpack 'disable-failing-test
- (lambda _
- (substitute* "tests/gdimagegrayscale/basic.c"
- (("return gdNumFailures\\(\\)")
- "return 0")))))))
+ ;; As recommended by github.com/libgd/libgd/issues/278 to fix rounding
+ ;; issues on aarch64 and other architectures.
+ (list #:make-flags #~(list "CFLAGS=-ffp-contract=off")
+ #:configure-flags #~(list "--disable-static")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'remove-libtool-archives
+ ;; Libtool archives lists the whole transitive dependencies,
+ ;; which is unnecessary unless producing static archives and
+ ;; leads to overlinking, e.g. causing the configure script of
+ ;; texlive-bin to fail due to looking for a transitive jpeg
+ ;; library.
+ (lambda _
+ (for-each delete-file
+ (find-files (string-append #$output "/lib")
+ "\\.la$")))))))
(native-inputs
(list pkg-config))
(inputs
diff --git a/gnu/packages/patches/gd-Revert-fix-303-gdlib.pc.patch b/gnu/packages/patches/gd-Revert-fix-303-gdlib.pc.patch
deleted file mode 100644
index 6329b129d3..0000000000
--- a/gnu/packages/patches/gd-Revert-fix-303-gdlib.pc.patch
+++ /dev/null
@@ -1,179 +0,0 @@
-From 9b31dfda73ee2d1b56b3f0dcfd3246c2faa592fe Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?L=C3=A9o=20Le=20Bouter?= <lle-bout@zaclys.net>
-Date: Sun, 28 Mar 2021 19:47:25 +0200
-Subject: [PATCH] Revert "fix #303: gdlib.pc: use Requires instead of Libs
- (#537)"
-
-This reverts commit 28ecfe77c817aff8ce56422d3e4e8533a281bc76.
----
- CMakeLists.txt | 12 ------------
- config/gdlib.pc.cmake | 4 +---
- config/gdlib.pc.in | 4 +---
- configure.ac | 11 +----------
- src/CMakeLists.txt | 6 ------
- 5 files changed, 3 insertions(+), 34 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 57cd95d..6bd0c73 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -53,8 +53,6 @@ SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY
- "Single Directory for all static libraries."
- )
-
--SET(PKG_REQUIRES_PRIVATES "")
--
- if (USE_EXT_GD)
- message("Using GD at: ${USE_EXT_GD}")
- INCLUDE_DIRECTORIES(BEFORE ${GD_INCLUDE_DIR})
-@@ -170,13 +168,11 @@ else (USE_EXT_GD)
- INCLUDE_DIRECTORIES(${FREETYPE_INCLUDE_DIRS})
- SET(HAVE_FT2BUILD_H 1)
- SET(HAVE_LIBFREETYPE 1)
-- LIST(APPEND PKG_REQUIRES_PRIVATES freetype2)
- ENDIF(FREETYPE_FOUND)
-
- IF(ZLIB_FOUND)
- INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
- SET(HAVE_LIBZ 1)
-- LIST(APPEND PKG_REQUIRES_PRIVATES zlib)
- ENDIF(ZLIB_FOUND)
-
- IF(WEBP_FOUND)
-@@ -192,7 +188,6 @@ else (USE_EXT_GD)
- IF(PNG_FOUND)
- INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR})
- SET(HAVE_LIBPNG 1)
-- LIST(APPEND PKG_REQUIRES_PRIVATES libpng)
- ENDIF(PNG_FOUND)
-
- IF(ICONV_FOUND)
-@@ -209,25 +204,21 @@ else (USE_EXT_GD)
- IF(XPM_FOUND)
- INCLUDE_DIRECTORIES(${XPM_INCLUDE_DIR})
- SET(HAVE_LIBXPM 1)
-- LIST(APPEND PKG_REQUIRES_PRIVATES xpm)
- ENDIF(XPM_FOUND)
-
- IF(JPEG_FOUND)
- INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR})
- SET(HAVE_LIBJPEG 1)
-- LIST(APPEND PKG_REQUIRES_PRIVATES libjpeg)
- ENDIF(JPEG_FOUND)
-
- IF(TIFF_FOUND)
- INCLUDE_DIRECTORIES(${TIFF_INCLUDE_DIR})
- SET(HAVE_LIBTIFF 1)
-- LIST(APPEND PKG_REQUIRES_PRIVATES libtiff-4)
- ENDIF(TIFF_FOUND)
-
- IF(FONTCONFIG_FOUND)
- INCLUDE_DIRECTORIES(${FONTCONFIG_INCLUDE_DIR})
- SET(HAVE_LIBFONTCONFIG 1)
-- LIST(APPEND PKG_REQUIRES_PRIVATES fontconfig)
- ELSE (FONTCONFIG_FOUND)
- SET(FONTCONFIG_LIBRARY "")
- SET(FONTCONFIG_INCLUDE_DIR "")
-@@ -236,11 +227,8 @@ else (USE_EXT_GD)
-
- IF(RAQM_FOUND)
- INCLUDE_DIRECTORIES(${RAQM_INCLUDE_DIR})
-- SET(HAVE_RAQM 1)
-- LIST(APPEND PKG_REQUIRES_PRIVAES raqm)
- ENDIF(RAQM_FOUND)
-
-- string(REPLACE ";" ", " PKG_REQUIRES_PRIVATES "${PKG_REQUIRES_PRIVATES}")
- SET(HAVE_CONFIG_H 1)
-
- ADD_DEFINITIONS(-DHAVE_CONFIG_H)
-diff --git a/config/gdlib.pc.cmake b/config/gdlib.pc.cmake
-index 5fc8af4..d1a0dda 100644
---- a/config/gdlib.pc.cmake
-+++ b/config/gdlib.pc.cmake
-@@ -6,8 +6,6 @@ includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
- Name: gd
- Description: GD graphics library
- Version: @GDLIB_VERSION@
--Requires:
--Requires.private: @PKG_REQUIRES_PRIVATES@
- Cflags: -I${includedir}
--Libs.private: @LIBS_PRIVATES@
-+Libs.private: @LIBGD_DEP_LIBS@
- Libs: -L${libdir} -lgd
-diff --git a/config/gdlib.pc.in b/config/gdlib.pc.in
-index d6bc375..b980a60 100644
---- a/config/gdlib.pc.in
-+++ b/config/gdlib.pc.in
-@@ -6,8 +6,6 @@ includedir=@includedir@
- Name: gd
- Description: GD graphics library
- Version: @VERSION@
--Requires:
--Requires.private: @PKG_REQUIRES_PRIVATES@
- Cflags: -I${includedir}
--Libs.private: @LIBS_PRIVATES@ @LIBICONV@
-+Libs.private: @LIBS@ @LIBICONV@
- Libs: -L${libdir} -lgd
-diff --git a/configure.ac b/configure.ac
-index 535db68..329c99c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -33,9 +33,6 @@ AC_SUBST(GDLIB_LT_CURRENT)
- AC_SUBST(GDLIB_LT_REVISION)
- AC_SUBST(GDLIB_LT_AGE)
-
--AC_SUBST(LIBS_PRIVATES)
--AC_SUBST(PKG_REQUIRES_PRIVATES)
--
- AM_INIT_AUTOMAKE([1.11 foreign dist-xz -Wall -Werror subdir-objects])
- AC_CONFIG_HEADERS([src/config.h:src/config.hin])
-
-@@ -133,7 +130,6 @@ m4_define([GD_LIB_CHECK], [dnl
- AC_MSG_RESULT([$gd_with_lib])
-
- gd_found_lib=no
-- gd_require_pkg_name=""
- if test "$gd_with_lib" != "no"; then
- save_CPPFLAGS=$CPPFLAGS
- save_LDFLAGS=$LDFLAGS
-@@ -165,11 +161,6 @@ m4_define([GD_LIB_CHECK], [dnl
- $1][_CFLAGS="$gd_lib_cflags $][$1][_CFLAGS"
- AS_VAR_APPEND([LIBS], [" $][$1][_LIBS"])
- AS_VAR_APPEND([CPPFLAGS], [" $][$1][_CFLAGS"])
-- if test -z "$gd_require_pkg_name"; then
-- AS_VAR_APPEND([LIBS_PRIVATES], [" $][$1][_LIBS"])
-- else
-- AS_VAR_APPEND([PKG_REQUIRES_PRIVATES], [" $gd_require_pkg_name"])
-- fi
- elif test "$gd_with_lib" = "yes"; then
- AC_MSG_ERROR([$3 requested but not found])
- else
-@@ -189,7 +180,7 @@ dnl $4 - pkg-config module to look for
- dnl $5 - fallback test for the feature
- m4_define([GD_LIB_PKG_CHECK], [dnl
- GD_LIB_CHECK([$1], [$2], [$3], [dnl
-- PKG_CHECK_MODULES([$1], [$4], [gd_found_lib=yes gd_require_pkg_name="$4"], [$5])
-+ PKG_CHECK_MODULES([$1], [$4], [gd_found_lib=yes], [$5])
- ])
- ])
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 509c422..49adbd6 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -142,12 +142,6 @@ if (BUILD_STATIC_LIBS)
- target_link_libraries(${GD_LIB_STATIC} ${LIBGD_DEP_LIBS})
- endif()
-
--SET(LIBS_PRIVATES
-- ${ICONV_LIBRARIES}
-- ${LIQ_LIBRARIES}
-- ${WEBP_LIBRARIES}
--)
--
- set(GD_PROGRAMS gdcmpgif)
-
- if (PNG_FOUND)
---
-2.31.1
-
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 14/20] gnu: lib2geom: Update to 1.3.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (11 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 13/20] gnu: gd: Update to 2.3.3 Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 15/20] gnu: inkscape: Truly enable ImageMagic support Maxim Cournoyer
` (6 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/graphics.scm (lib2geom): Update to 1.3.
Change-Id: Icac0c5674e39709ac85880ad7b22149b8fe30806
---
gnu/packages/graphics.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 01cd55f33b..003a24d65b 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -895,7 +895,7 @@ (define-public ilmbase
(define-public lib2geom
(package
(name "lib2geom")
- (version "1.2")
+ (version "1.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -904,7 +904,7 @@ (define-public lib2geom
(file-name (git-file-name name version))
(sha256
(base32
- "0dq981g894hmvhd6rmfl1w32mksg9hpvpjs1qvfxrnz87rhkknj8"))))
+ "1ypcn0yxk9ny7qg8s8h3px2wpimhfgkwk7x1548ky12iqmdjjmcn"))))
(build-system cmake-build-system)
(arguments
`(#:imported-modules ((guix build python-build-system)
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 15/20] gnu: inkscape: Truly enable ImageMagic support.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (12 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 14/20] gnu: lib2geom: Update to 1.3 Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 16/20] gnu: lib2geom: Use gexps and remove input labels Maxim Cournoyer
` (5 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
This was commented out for testing and erroneously committed in commit
b4a6b1ba93844d7373c58237cb0b742352dec954 ("gnu: inkscape/stable: Build stable
variant without imagemagick support.").
* gnu/packages/inkscape.scm (inkscape)
[configure-flags]: Delete inherited "-DWITH_IMAGE_MAGICK=OFF" flag.
Change-Id: I6d616a5bfc40c9ebef65aceb711c6541a523bad8
---
gnu/packages/inkscape.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index bf87ebc8a2..db871dc904 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -305,9 +305,9 @@ (define-public inkscape
(build-system cmake-build-system)
(arguments
(substitute-keyword-arguments (package-arguments inkscape/stable)
- ;; ((#:configure-flags flags ''())
- ;; ;; Enable ImageMagick support.
- ;; #~(delete "-DWITH_IMAGE_MAGICK=OFF" #$flags))
+ ((#:configure-flags flags ''())
+ ;; Enable ImageMagick support.
+ #~(delete "-DWITH_IMAGE_MAGICK=OFF" #$flags))
((#:phases phases)
#~(modify-phases #$phases
(replace 'wrap-program
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 16/20] gnu: lib2geom: Use gexps and remove input labels.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (13 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 15/20] gnu: inkscape: Truly enable ImageMagic support Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 17/20] gnu: inkscape: Update to 1.3.2 Maxim Cournoyer
` (4 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/graphics.scm (lib2geom) [arguments]: Use gexps.
Add #:modules argument.
[native-inputs, inputs, propagated-inputs]: Remove labels.
Change-Id: Ia61ff5e8aa1f64231c98b1fb7f31a49513ede7f8
---
gnu/packages/graphics.scm | 75 +++++++++++++++++----------------------
1 file changed, 33 insertions(+), 42 deletions(-)
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 003a24d65b..a565000180 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -907,49 +907,40 @@ (define-public lib2geom
"1ypcn0yxk9ny7qg8s8h3px2wpimhfgkwk7x1548ky12iqmdjjmcn"))))
(build-system cmake-build-system)
(arguments
- `(#:imported-modules ((guix build python-build-system)
+ (list
+ #:imported-modules `((guix build python-build-system)
,@%cmake-build-system-modules)
- #:configure-flags '("-D2GEOM_BUILD_SHARED=ON"
- "-D2GEOM_BOOST_PYTHON=ON"
- ;; Compiling the Cython bindings fail (see:
- ;; https://gitlab.com/inkscape/lib2geom/issues/21).
- "-D2GEOM_CYTHON_BINDINGS=OFF")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-python-lib-install-path
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((python-version (@ (guix build python-build-system)
- python-version))
- (python-maj-min-version (python-version
- (assoc-ref inputs "python")))
- (site-package (string-append
- (assoc-ref outputs "out")
- "/lib/python" python-maj-min-version
- "/site-packages")))
- (substitute* '("src/cython/CMakeLists.txt"
- "src/py2geom/CMakeLists.txt")
- (("PYTHON_LIB_INSTALL \"[^\"]*\"")
- (format #f "PYTHON_LIB_INSTALL ~s" site-package))))))
- ,@(if (target-x86-32?)
- `((add-after 'unpack 'skip-faulty-test
- (lambda _
- ;; This test fails on i686 when comparing floating point
- ;; values, probably due to excess precision. However,
- ;; '-fexcess-precision' is not implemented for C++ in
- ;; GCC 10 so just skip it.
- (substitute* "tests/CMakeLists.txt"
- (("bezier-test") "")))))
- '()))))
- (native-inputs `(("python" ,python-wrapper)
- ("googletest" ,googletest)
- ("pkg-config" ,pkg-config)))
- (inputs `(("cairo" ,cairo)
- ("pycairo" ,python-pycairo)
- ("double-conversion" ,double-conversion)
- ("glib" ,glib)
- ("gsl" ,gsl)))
- (propagated-inputs
- (list boost)) ;referred to in 2geom/pathvector.h.
+ #:modules '((guix build cmake-build-system)
+ (guix build utils)
+ ((guix build python-build-system) #:prefix python:))
+ #:configure-flags
+ #~(list "-D2GEOM_BUILD_SHARED=ON"
+ "-D2GEOM_BOOST_PYTHON=ON"
+ ;; Compiling the Cython bindings fail (see:
+ ;; https://gitlab.com/inkscape/lib2geom/issues/21).
+ "-D2GEOM_CYTHON_BINDINGS=OFF")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-python-lib-install-path
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* '("src/cython/CMakeLists.txt"
+ "src/py2geom/CMakeLists.txt")
+ (("PYTHON_LIB_INSTALL \"[^\"]*\"")
+ (format #f "PYTHON_LIB_INSTALL ~s"
+ (python:site-packages inputs outputs))))))
+ #$@(if (target-x86-32?)
+ #~((add-after 'unpack 'skip-faulty-test
+ (lambda _
+ ;; This test fails on i686 when comparing floating point
+ ;; values, probably due to excess precision. However,
+ ;; '-fexcess-precision' is not implemented for C++ in
+ ;; GCC 10 so just skip it.
+ (substitute* "tests/CMakeLists.txt"
+ (("bezier-test") "")))))
+ #~()))))
+ (native-inputs (list python-wrapper googletest pkg-config))
+ (inputs (list cairo python-pycairo double-conversion glib gsl))
+ (propagated-inputs (list boost)) ;included in 2geom/pathvector.h
(home-page "https://gitlab.com/inkscape/lib2geom/")
(synopsis "C++ 2D graphics library")
(description "2geom is a C++ library of mathematics for paths, curves,
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 17/20] gnu: inkscape: Update to 1.3.2.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (14 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 16/20] gnu: lib2geom: Use gexps and remove input labels Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 18/20] gnu: inkscape: Sort inputs Maxim Cournoyer
` (3 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/inkscape.scm (inkscape/stable): Update to 1.3.2. Remove
patches.
[configure-flags]: Add CMAKE_CXX_FLAGS flag.
[phases] Remove obsolete patch-icon-cache-generator,
disable-latex-export-tests and disable-vertical-glyph-tests phases. Add
disable-problematic-tests phase. Override check phase to disable a few test
failures caused by the lack of imagemagick.
[inputs]: Add gspell and readline. Remove aspell and gtkspell3.
(inkscape): Update to 1.3.2.
[phases]: Reset the check phase to the original.
* gnu/packages/patches/inkscape-poppler-compat.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): De-register it.
Change-Id: I391fb42db8d93a9cdc83e6fd62ca90f7458b5c49
---
gnu/local.mk | 1 -
gnu/packages/inkscape.scm | 94 +++++++++++--------
.../patches/inkscape-poppler-compat.patch | 45 ---------
3 files changed, 55 insertions(+), 85 deletions(-)
delete mode 100644 gnu/packages/patches/inkscape-poppler-compat.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 94b4620c02..28dd075f37 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1475,7 +1475,6 @@ dist_patch_DATA = \
%D%/packages/patches/idris-test-ffi008.patch \
%D%/packages/patches/igraph-fix-varargs-integer-size.patch \
%D%/packages/patches/ilmbase-fix-tests.patch \
- %D%/packages/patches/inkscape-poppler-compat.patch \
%D%/packages/patches/instead-use-games-path.patch \
%D%/packages/patches/intltool-perl-compatibility.patch \
%D%/packages/patches/irrlicht-use-system-libs.patch \
diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index db871dc904..1e674add9e 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -32,7 +32,7 @@ (define-module (gnu packages inkscape)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (gnu packages)
- #:use-module (gnu packages aspell)
+ #:use-module (gnu packages algebra)
#:use-module (gnu packages bash)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages boost)
@@ -51,6 +51,7 @@ (define-module (gnu packages inkscape)
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages readline)
#:use-module (gnu packages xml)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages fontutils)
@@ -65,16 +66,15 @@ (define-public inkscape/stable
(hidden-package
(package
(name "inkscape")
- (version "1.2.1")
+ (version "1.3.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://media.inkscape.org/dl/"
"resources/file/"
"inkscape-" version ".tar.xz"))
- (patches (search-patches "inkscape-poppler-compat.patch"))
(sha256
- (base32 "06scilds4p4bw337ss22nfdxy2kynv5yjw6vq6nlpjm7xfh7vkj6"))
+ (base32 "0sq81smxwypgnp7r3wgza8w25dsz9qa8ga79sc85xzj3qi6q9lfv"))
(modules '((guix build utils)
(ice-9 format)))
(snippet
@@ -168,38 +168,18 @@ (define-public inkscape/stable
(guix build utils))
;; Disable imagemagick support in the stable variant, to reduce the
;; number of dependents of the 'imagemagick' package.
- #:configure-flags #~(list "-DWITH_IMAGE_MAGICK=OFF")
+ #:configure-flags
+ #~(list "-DWITH_IMAGE_MAGICK=OFF"
+ ;; TODO: Remove after next release, since the problematic
+ ;; libsoup/soup.h include is no longer used.
+ (string-append "-DCMAKE_CXX_FLAGS=-I"
+ (search-input-directory %build-inputs
+ "/include/libsoup-2.4")))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
(assoc-ref glib-or-gtk:%standard-phases
'generate-gdk-pixbuf-loaders-cache-file))
- (add-after 'unpack 'patch-icon-cache-generator
- (lambda _
- (substitute* "share/icons/application/CMakeLists.txt"
- (("gtk-update-icon-cache") "true"))))
- (add-after 'unpack 'disable-latex-export-tests
- ;; FIXME: For some reason the test.pdf_tex file generated by the
- ;; "--export-latex" lacks "some text" in its content when run in
- ;; the build environment. Skip the related tests.
- (lambda _
- (substitute* "testfiles/cli_tests/CMakeLists.txt"
- (("add_cli_test\\(export-latex")
- "message(TEST_DISABLED: export-latex"))))
- (add-after 'unpack 'disable-vertical-glyph-tests
- (lambda _
- ;; FIXME: These tests fail with newer Pango and Harfbuzz:
- ;; https://gitlab.com/inkscape/inkscape/-/issues/2917
- ;; https://gitlab.com/inkscape/inkscape/-/issues/3554
- ;; Simply providing older versions don't work, as we need
- ;; the full GTK stack; we could use package-input-rewriting
- ;; but then have to also downgrade pangomm and disable tests
- ;; in librsvg and GTK+. Just ignore for now.
- (substitute* "testfiles/rendering_tests/CMakeLists.txt"
- (("test-glyph-y-pos") "")
- (("text-glyphs-combining") "")
- (("text-glyphs-vertical") "")
- (("test-rtl-vertical") ""))))
#$@(if (or (target-aarch64?)
(target-ppc64le?)
(target-riscv64?))
@@ -227,7 +207,38 @@ (define-public inkscape/stable
;; as the "share/inkscape/ui/units.xml" file.
(delete 'check)
(add-after 'install 'check
- (assoc-ref %standard-phases 'check))
+ ;; Use ctest directly so that we can easily exclude problematic
+ ;; tests.
+ (lambda* (#:key parallel-tests? tests? #:allow-other-keys)
+ (when tests?
+ ;; The following tests fails, perhaps due to building without
+ ;; ImageMagick (see:
+ ;; https://gitlab.com/inkscape/inbox/-/issues/10005).
+ (let ((job-count (if parallel-tests?
+ (number->string (parallel-job-count))
+ "1"))
+ (skipped-tests
+ (list "cli_export-type-caseinsensitive_check_output"
+ "cli_export-type_xaml_check_output"
+ "cli_export-height_export-use-hints_check_output"
+ "cli_export-plain-svg_check_output"
+ "cli_export-use-hints_export-id_check_output"
+ "cli_export-extension_svg_check_output"
+ "cli_export-extension_ps_check_output"
+ "cli_export-extension_eps_check_output"
+ "cli_export-extension_pdf_check_output"
+ "cli_export-plain-extension-svg_check_output"
+ ;; These fail non-deterministically (see:
+ ;; https://gitlab.com/inkscape/inbox/-/issues/10005).
+ "cli_export-ps-level_3_check_output"
+ "cli_export-ps-level_3_content_check_output"
+ "cli_export-ps-level_2_content_check_output"
+ "cli_export-ps-level_2_check_output")))
+ (invoke "make" "-j" job-count "tests")
+ (invoke "ctest" "-j" job-count
+ "--output-on-error"
+ "-E" (string-append
+ "(" (string-join skipped-tests "|") ")"))))))
(add-after 'install 'glib-or-gtk-compile-schemas
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
(add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
@@ -243,14 +254,13 @@ (define-public inkscape/stable
`("GDK_PIXBUF_MODULE_FILE" =
(,(getenv "GDK_PIXBUF_MODULE_FILE")))))))))
(inputs
- (list aspell
- autotrace
+ (list autotrace
bash-minimal
gdl-minimal
gtkmm-3
gtk+
- gtkspell3
gsl
+ gspell
poppler
lib2geom
libjpeg-turbo
@@ -273,9 +283,11 @@ (define-public inkscape/stable
python-scour
python-pyserial
python-numpy
- python-lxml))
+ python-lxml
+ readline))
(native-inputs
- (list gettext-minimal
+ (list bc
+ gettext-minimal
imagemagick/stable ;for tests
`(,glib "bin")
googletest
@@ -292,7 +304,7 @@ (define-public inkscape
(package
(inherit inkscape/stable)
(name "inkscape")
- (version "1.2.1")
+ (version "1.3.2")
(source
(origin
(inherit (package-source inkscape/stable))
@@ -301,7 +313,7 @@ (define-public inkscape
"resources/file/"
"inkscape-" version ".tar.xz"))
(sha256
- (base32 "06scilds4p4bw337ss22nfdxy2kynv5yjw6vq6nlpjm7xfh7vkj6"))))
+ (base32 "0sq81smxwypgnp7r3wgza8w25dsz9qa8ga79sc85xzj3qi6q9lfv"))))
(build-system cmake-build-system)
(arguments
(substitute-keyword-arguments (package-arguments inkscape/stable)
@@ -310,6 +322,10 @@ (define-public inkscape
#~(delete "-DWITH_IMAGE_MAGICK=OFF" #$flags))
((#:phases phases)
#~(modify-phases #$phases
+ (replace 'check
+ ;; Re-instate the tests disabled in inskcape/stable, now that
+ ;; their ImageMagick requirement is satisfied.
+ (assoc-ref %standard-phases 'check))
(replace 'wrap-program
;; Ensure Python is available at runtime.
(lambda _
diff --git a/gnu/packages/patches/inkscape-poppler-compat.patch b/gnu/packages/patches/inkscape-poppler-compat.patch
deleted file mode 100644
index cb7d1c8eb3..0000000000
--- a/gnu/packages/patches/inkscape-poppler-compat.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Fix build with Poppler 22.9.0.
-
-Taken from upstream:
-
- https://gitlab.com/inkscape/inkscape/-/commit/fb00794923d19cfbb2ca4adca3ae8971553a06be
-
-diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
-index cca1e840966c7940a1af472025535042b07e3e0f..80d64c9b866d5d3dd095636a9a02571b89061af1 100644
---- a/src/extension/internal/pdfinput/pdf-parser.cpp
-+++ b/src/extension/internal/pdfinput/pdf-parser.cpp
-@@ -697,7 +697,11 @@ void PdfParser::opSetDash(Object args[], int /*numArgs*/)
- _POPPLER_FREE(obj);
- }
- }
-+#if POPPLER_CHECK_VERSION(22, 9, 0)
-+ state->setLineDash(std::vector<double> (dash, dash + length), args[1].getNum());
-+#else
- state->setLineDash(dash, length, args[1].getNum());
-+#endif
- builder->updateStyle(state);
- }
-
-diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp
-index 12f71dd9214b95dbad6fdf7642a96cdd57f2c64a..9fc56fe63c2feee986ad1ff5018e679a0bacb665 100644
---- a/src/extension/internal/pdfinput/svg-builder.cpp
-+++ b/src/extension/internal/pdfinput/svg-builder.cpp
-@@ -389,10 +389,17 @@ void SvgBuilder::_setStrokeStyle(SPCSSAttr *css, GfxState *state) {
- sp_repr_css_set_property(css, "stroke-miterlimit", os_ml.str().c_str());
-
- // Line dash
-- double *dash_pattern;
- int dash_length;
- double dash_start;
-+#if POPPLER_CHECK_VERSION(22, 9, 0)
-+ const double *dash_pattern;
-+ const std::vector<double> &dash = state->getLineDash(&dash_start);
-+ dash_pattern = dash.data();
-+ dash_length = dash.size();
-+#else
-+ double *dash_pattern;
- state->getLineDash(&dash_pattern, &dash_length, &dash_start);
-+#endif
- if ( dash_length > 0 ) {
- Inkscape::CSSOStringStream os_array;
- for ( int i = 0 ; i < dash_length ; i++ ) {
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 18/20] gnu: inkscape: Sort inputs.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (15 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 17/20] gnu: inkscape: Update to 1.3.2 Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 19/20] gnu: inkscape: Fix Python support Maxim Cournoyer
` (2 subsequent siblings)
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/inkscape.scm (inkscape/stable) [inputs]: Sort.
[native-inputs]: Likewise.
Change-Id: I64253e52bf157013e6c55361f7633cbd01dcb020
---
gnu/packages/inkscape.scm | 38 +++++++++++++++++++-------------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index 1e674add9e..5449bf8d92 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -254,43 +254,43 @@ (define-public inkscape/stable
`("GDK_PIXBUF_MODULE_FILE" =
(,(getenv "GDK_PIXBUF_MODULE_FILE")))))))))
(inputs
- (list autotrace
+ (list (librsvg-for-system) ;for the pixbuf loader
+ autotrace
bash-minimal
+ boost
+ freetype
gdl-minimal
- gtkmm-3
- gtk+
gsl
gspell
- poppler
+ gtk+
+ gtkmm-3
+ lcms
lib2geom
+ libcdr
+ libgc
libjpeg-turbo
libpng
- libxml2
- libxslt
- libgc
- (librsvg-for-system) ;for the pixbuf loader
libsoup-minimal-2
- libcdr
libvisio
libwpd
libwpg
- freetype
+ libxml2
+ libxslt
+ poppler
popt
potrace
- lcms
- boost
- python-wrapper
- python-scour
- python-pyserial
- python-numpy
python-lxml
+ python-numpy
+ python-pyserial
+ python-scour
+ python-wrapper
readline))
(native-inputs
- (list bc
+ (list `(,glib "bin")
+ bc
gettext-minimal
- imagemagick/stable ;for tests
- `(,glib "bin")
googletest
+ imagemagick/stable ;for tests
perl
pkg-config))
(home-page "https://inkscape.org/")
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 19/20] gnu: inkscape: Fix Python support.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (16 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 18/20] gnu: inkscape: Sort inputs Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 20/20] Revert "gnu: mpv: Propagate most libraries." Maxim Cournoyer
2024-02-22 16:29 ` [bug#68813] [core-updates PATCH 01/20] gnu: Add atf Maxim Cournoyer
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/inkscape.scm (inkscape/stable)
[phases]: Wrap with PATH and GI_TYPELIB_PATH.
[inputs]: Sort inputs. Add python-appdirs, python-cssselect, python-pygobject
and python-requests.
(inkscape) [inputs]: Do not append python-cssselect.
Fixes: https://issues.guix.gnu.org/63938
Change-Id: I90a39a04a35dbcafe413726107d100c78d173fd0
---
gnu/packages/inkscape.scm | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index 5449bf8d92..aa33a0a4a3 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -245,14 +245,19 @@ (define-public inkscape/stable
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
(add-after 'install 'wrap-program
;; Ensure Python is available at runtime.
- (lambda _
+ (lambda* (#:key inputs #:allow-other-keys)
(wrap-program (string-append #$output "/bin/inkscape")
+ `("PATH" prefix
+ (,(dirname (search-input-file inputs "bin/python"))))
`("GUIX_PYTHONPATH" prefix
(,(getenv "GUIX_PYTHONPATH")))
;; Wrapping GDK_PIXBUF_MODULE_FILE allows Inkscape to load
;; its own icons in pure environments.
`("GDK_PIXBUF_MODULE_FILE" =
- (,(getenv "GDK_PIXBUF_MODULE_FILE")))))))))
+ (,(getenv "GDK_PIXBUF_MODULE_FILE")))
+ ;; Ensure GObject Introspection typelibs are found.
+ `("GI_TYPELIB_PATH" ":" prefix
+ (,(getenv "GI_TYPELIB_PATH")))))))))
(inputs
(list (librsvg-for-system) ;for the pixbuf loader
autotrace
@@ -279,9 +284,16 @@ (define-public inkscape/stable
poppler
popt
potrace
+ ;; These Python dependencies are used by the Inkscape extension
+ ;; management system. To verify that it is working, visit the
+ ;; Extensions -> Manage Extensions... menu.
+ python-appdirs
+ python-cssselect
python-lxml
python-numpy
+ python-pygobject
python-pyserial
+ python-requests
python-scour
python-wrapper
readline))
@@ -337,8 +349,7 @@ (define-public inkscape
`("GDK_PIXBUF_MODULE_FILE" =
(,(getenv "GDK_PIXBUF_MODULE_FILE"))))))))))
(inputs (modify-inputs (package-inputs inkscape/stable)
- (append imagemagick ;for libMagickCore and libMagickWand
- python-cssselect))) ;to render qrcode
+ (append imagemagick))) ;for libMagickCore and libMagickWand
(native-inputs
(modify-inputs (package-native-inputs inkscape/stable)
;; Only use 1 imagemagick across the package build.
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 20/20] Revert "gnu: mpv: Propagate most libraries."
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (17 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 19/20] gnu: inkscape: Fix Python support Maxim Cournoyer
@ 2024-02-22 16:10 ` Maxim Cournoyer
2024-02-22 16:29 ` [bug#68813] [core-updates PATCH 01/20] gnu: Add atf Maxim Cournoyer
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:10 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
This reverts commit f3fdb4e041cb5740ba0b38b9ad017571f8414d33. This is made
possible by having replaced pkg-config with pkgconf, which more strictly
interprets the private fields as purely for static compilation.
Change-Id: I1c06623a4501bbcddfb80aa3cfd79a08409a08ae
---
gnu/packages/video.scm | 33 +++++++++++++--------------------
1 file changed, 13 insertions(+), 20 deletions(-)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index c70646eccd..0746413ed8 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -2641,43 +2641,31 @@ (define-public mpv
"-Ddvdnav=enabled"
"-Dbuild-date=false")))
(native-inputs
- (list perl ;for zsh completion file
- pkg-config
- python-docutils
- python-wrapper))
+ (list perl ; for zsh completion file
+ pkg-config python-docutils python-wrapper))
;; Missing features: libguess, V4L2.
(inputs
- (list enca
- ladspa
- lcms
- libbs2b
- mpg123
- rsound
- vulkan-headers
- vulkan-loader
- yt-dlp))
- ;; XXX: These are propagated for the mpv pkg-config package, as they are
- ;; listed in Requires.private and would break 'pkg-config --exists mpv' if
- ;; unavailable.
- (propagated-inputs
(list alsa-lib
+ enca
ffmpeg
jack-1
+ ladspa
+ lcms
libass
libbluray
libcaca
+ libbs2b
libcdio-paranoia
- libdrm
- libdvdnav
libdvdread
+ libdvdnav
libjpeg-turbo
libplacebo
libva
libvdpau
libx11
libxext
- libxinerama
libxkbcommon
+ libxinerama
libxpresent
libxrandr
libxscrnsaver
@@ -2685,10 +2673,15 @@ (define-public mpv
;; XXX: lua > 5.2 is not currently supported; see meson.build
lua-5.2
mesa
+ mpg123
pulseaudio
+ rsound
shaderc
+ vulkan-headers
+ vulkan-loader
wayland
wayland-protocols
+ yt-dlp
zimg
zlib))
(home-page "https://mpv.io/")
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [bug#68813] [core-updates PATCH 01/20] gnu: Add atf.
2024-02-22 16:09 ` [bug#68813] [core-updates PATCH 00/20] Replace pkg-config with pkgconf to reduce propagation / Inkscape updates Maxim Cournoyer
` (18 preceding siblings ...)
2024-02-22 16:10 ` [bug#68813] [core-updates PATCH 20/20] Revert "gnu: mpv: Propagate most libraries." Maxim Cournoyer
@ 2024-02-22 16:29 ` Maxim Cournoyer
19 siblings, 0 replies; 26+ messages in thread
From: Maxim Cournoyer @ 2024-02-22 16:29 UTC (permalink / raw)
To: 68813; +Cc: Maxim Cournoyer
* gnu/packages/check.scm (atf): New variable.
* gnu/packages/patches/atf-execute-with-shell.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
Change-Id: I37a57069380309382bc0ff24977a1fd165985f5e
---
gnu/local.mk | 1 +
gnu/packages/check.scm | 40 ++++++++++++++++++-
.../patches/atf-execute-with-shell.patch | 39 ++++++++++++++++++
3 files changed, 79 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/atf-execute-with-shell.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 62368f3511..34cdf6564d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -935,6 +935,7 @@ dist_patch_DATA = \
%D%/packages/patches/asli-use-system-libs.patch \
%D%/packages/patches/aspell-CVE-2019-25051.patch \
%D%/packages/patches/aspell-default-dict-dir.patch \
+ %D%/packages/patches/atf-execute-with-shell.patch \
%D%/packages/patches/ath9k-htc-firmware-binutils.patch \
%D%/packages/patches/ath9k-htc-firmware-gcc.patch \
%D%/packages/patches/ath9k-htc-firmware-gcc-compat.patch \
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 4f593cde8d..3920c5dace 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -35,7 +35,7 @@
;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
-;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Hugo Lecomte <hugo.lecomte@inria.fr>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2022, 2023 David Elsing <david.elsing@posteo.net>
@@ -111,6 +111,44 @@ (define-module (gnu packages check)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1))
+(define-public atf
+ (package
+ (name "atf")
+ (version "0.21")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/freebsd/atf")
+ (commit (string-append name "-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0jwzz6g9jdi5f8v10y0wf3hq73vxyv5qqhkh832ddsj36gn8rlcz"))
+ (patches (search-patches "atf-execute-with-shell.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:configure-flags
+ #~(list (string-append "ATF_SHELL="
+ #$(this-package-input "bash-minimal")
+ "/bin/sh"))))
+ (native-inputs (list autoconf automake libtool))
+ (inputs (list bash-minimal))
+ (home-page "https://github.com/freebsd/atf")
+ (synopsis "C/C++ Automated Testing Framework libraries")
+ (description "ATF, or Automated Testing Framework, is a collection of
+libraries to write test programs in C, C++ and POSIX shell.
+
+The ATF libraries offer a simple API. The API is orthogonal through the
+various bindings, allowing developers to quickly learn how to write test
+programs in different languages.
+
+ATF-based test programs offer a consistent end-user command-line interface to
+allow both humans and automation to run the tests.
+
+ATF-based test programs rely on an execution engine to be run and this
+execution engine is not shipped with ATF. Kyua is the engine of choice.")
+ (license (list license:bsd-2 license:bsd-3))))
+
(define-public pict
(package
(name "pict")
diff --git a/gnu/packages/patches/atf-execute-with-shell.patch b/gnu/packages/patches/atf-execute-with-shell.patch
new file mode 100644
index 0000000000..bde4fb336a
--- /dev/null
+++ b/gnu/packages/patches/atf-execute-with-shell.patch
@@ -0,0 +1,39 @@
+Submitted here: https://github.com/freebsd/atf/pull/57
+
+From 098b66269b1cf1d944b8b214ceb7ce9febde3682 Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Mon, 29 Jan 2024 22:35:49 -0500
+Subject: [PATCH] Fix use after free in execute_with_shell.
+
+The temporary string returned by atf::env::get would be used outside
+its statement, which is invalid and cause undefined behavior. Copy it
+to a local variable to avoid the issue.
+
+Fixes: https://github.com/freebsd/atf/issues/26
+Fixes: https://github.com/freebsd/kyua/issues/223
+
+Reported-by: Ruslan Bukin <br@bsdpad.com>
+---
+ atf-sh/atf-check.cpp | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/atf-sh/atf-check.cpp b/atf-sh/atf-check.cpp
+index 41f0b13..9d6f7a8 100644
+--- a/atf-sh/atf-check.cpp
++++ b/atf-sh/atf-check.cpp
+@@ -436,7 +436,9 @@ execute_with_shell(char* const* argv)
+ const std::string cmd = flatten_argv(argv);
+
+ const char* sh_argv[4];
+- sh_argv[0] = atf::env::get("ATF_SHELL", ATF_SHELL).c_str();
++ const std::string shell = atf::env::get("ATF_SHELL", ATF_SHELL);
++
++ sh_argv[0] = shell.c_str();
+ sh_argv[1] = "-c";
+ sh_argv[2] = cmd.c_str();
+ sh_argv[3] = NULL;
+
+base-commit: 18eb8168b70a0f934b4824b6391b55ac0b2f4fdf
+--
+2.41.0
+
--
2.41.0
^ permalink raw reply related [flat|nested] 26+ messages in thread