[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
09/10: gnu: inkscape/stable: Build stable variant without imagemagick su
From: |
guix-commits |
Subject: |
09/10: gnu: inkscape/stable: Build stable variant without imagemagick support. |
Date: |
Mon, 22 Jan 2024 00:24:01 -0500 (EST) |
apteryx pushed a commit to branch core-updates
in repository guix.
commit b4a6b1ba93844d7373c58237cb0b742352dec954
Author: Maxim Cournoyer <maxim.cournoyer@gmail.com>
AuthorDate: Sun Jan 21 22:45:21 2024 -0500
gnu: inkscape/stable: Build stable variant without imagemagick support.
This is done to allow imagemagick (not /stable variant) to be updated more
freely.
* gnu/packages/inkscape.scm (inkscape/stable)
[arguments]: Use gexps. Add #:disallowed-references argument to guard
against
referring to imagemagick/stable. Add #:configure-flags argument.
[inputs]: Remove imagemagick.
[native-inputs]: Relpace imagemagick with imagemagick/stable.
* gnu/packages/inkscape.scm (inkscape): Use gexps. Clear WITH_IMAGE_MAGICK
configure flag.
[inputs]: Add imagemagick.
Fixes: https://issues.guix.gnu.org/47479
Change-Id: Ifc812d2fc1eba5d2b45c3d7519ae38ac0294bd0a
Reported-by: Maxime Devos <maximedevos@telenet.be>
---
gnu/packages/inkscape.scm | 192 ++++++++++++++++++++++++----------------------
1 file changed, 100 insertions(+), 92 deletions(-)
diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index 9792b2b890..190215f1d5 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -28,6 +28,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (gnu packages)
@@ -58,7 +59,8 @@
#:use-module (srfi srfi-1))
;;; A variant of Inkscape intended to be bumped only on core-updates, to avoid
-;;; rebuilding 2k+ packages through dblatex.
+;;; rebuilding 2k+ packages through dblatex. It should only be used as a
+;;; native-input since it might not receive timely security updates.
(define-public inkscape/stable
(hidden-package
(package
@@ -156,86 +158,90 @@ endif()~%~%"
((".*find_package\\(DoubleConversion.*") ""))))))
(build-system cmake-build-system)
(arguments
- `(#:test-target "check" ;otherwise some test binaries are missing
- #:imported-modules (,@%cmake-build-system-modules
+ (list
+ #:test-target "check" ;otherwise some test binaries are missing
+ #:disallowed-references (list imagemagick/stable)
+ #:imported-modules `(,@%cmake-build-system-modules
(guix build glib-or-gtk-build-system))
- #:modules ((guix build cmake-build-system)
+ #:modules '((guix build cmake-build-system)
((guix build glib-or-gtk-build-system) #:prefix
glib-or-gtk:)
(guix build utils))
- #: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?))
- `((add-after 'unpack 'disable-more-tests
- (lambda _
- ;;
https://gitlab.com/inkscape/inkscape/-/issues/3554#note_1035680690
- (substitute* "testfiles/CMakeLists.txt"
- (("lpe64-test") "#lpe64-test"))
- ;;
https://gitlab.com/inkscape/inkscape/-/issues/3554#note_1035539888
- ;; According to upstream, this is a false positive.
- (substitute* "testfiles/rendering_tests/CMakeLists.txt"
- (("test-use") "#test-use"))
- ;;
https://gitlab.com/inkscape/inkscape/-/issues/3554#note_1035539888
- ;; Allegedly a precision error in the gamma.
- (substitute* "testfiles/cli_tests/CMakeLists.txt"
- (("add_cli_test\\(export-png-color-mode-gray-8_png" all)
- (string-append "#" all))))))
- '())
- (add-after 'unpack 'set-home
- ;; Mute Inkscape warnings during tests.
- (lambda _
- (setenv "HOME" (getcwd))))
- ;; Move the check phase after the install phase, as when run in the
- ;; tests, Inkscape relies on files that are not yet installed, such
- ;; as the "share/inkscape/ui/units.xml" file.
- (delete 'check)
- (add-after 'install 'check
- (assoc-ref %standard-phases 'check))
- (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
- (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
- (add-after 'install 'wrap-program
+ ;; Disable imagemagick support in the stable variant, to reduce the
+ ;; number of dependents of the 'imagemagick' package.
+ #:configure-flags #~(list "-DWITH_IMAGE_MAGICK=OFF")
+ #: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?))
+ '((add-after 'unpack 'disable-more-tests
+ (lambda _
+ ;;
https://gitlab.com/inkscape/inkscape/-/issues/3554#note_1035680690
+ (substitute* "testfiles/CMakeLists.txt"
+ (("lpe64-test") "#lpe64-test"))
+ ;;
https://gitlab.com/inkscape/inkscape/-/issues/3554#note_1035539888
+ ;; According to upstream, this is a false positive.
+ (substitute* "testfiles/rendering_tests/CMakeLists.txt"
+ (("test-use") "#test-use"))
+ ;;
https://gitlab.com/inkscape/inkscape/-/issues/3554#note_1035539888
+ ;; Allegedly a precision error in the gamma.
+ (substitute* "testfiles/cli_tests/CMakeLists.txt"
+ (("add_cli_test\\(export-png-color-mode-gray-8_png"
all)
+ (string-append "#" all))))))
+ '())
+ (add-after 'unpack 'set-home
+ ;; Mute Inkscape warnings during tests.
+ (lambda _
+ (setenv "HOME" (getcwd))))
+ ;; Move the check phase after the install phase, as when run in the
+ ;; tests, Inkscape relies on files that are not yet installed, such
+ ;; as the "share/inkscape/ui/units.xml" file.
+ (delete 'check)
+ (add-after 'install 'check
+ (assoc-ref %standard-phases 'check))
+ (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
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
+ (add-after 'install 'wrap-program
;; Ensure Python is available at runtime.
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (wrap-program (string-append out "/bin/inkscape")
- `("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"))))))))))
+ (lambda _
+ (wrap-program (string-append #$output "/bin/inkscape")
+ `("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")))))))))
(inputs
(list aspell
autotrace
@@ -245,7 +251,6 @@ endif()~%~%"
gtk+
gtkspell3
gsl
- imagemagick ;for libMagickCore and libMagickWand
poppler
lib2geom
libjpeg-turbo
@@ -271,7 +276,7 @@ endif()~%~%"
python-lxml))
(native-inputs
(list gettext-minimal
- imagemagick ;for tests
+ imagemagick/stable ;for tests
`(,glib "bin")
googletest
perl
@@ -300,19 +305,22 @@ as the native format.")
(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))
((#:phases phases)
- `(modify-phases ,phases
- (replace 'wrap-program
- ;; Ensure Python is available at runtime.
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (wrap-program (string-append out "/bin/inkscape")
- `("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")))))))))))
+ #~(modify-phases #$phases
+ (replace 'wrap-program
+ ;; Ensure Python is available at runtime.
+ (lambda _
+ (wrap-program (string-append #$output "/bin/inkscape")
+ `("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"))))))))))
(inputs (modify-inputs (package-inputs inkscape/stable)
- (append python-cssselect))) ;to render qrcode
+ (append imagemagick ;for libMagickCore and libMagickWand
+ python-cssselect))) ;to render qrcode
(properties (alist-delete 'hidden? (package-properties inkscape/stable)))))
- branch core-updates updated (552ebc47af -> 7c60d1e14f), guix-commits, 2024/01/22
- 04/10: gnu: sphinx: Use 'imagemagick/stable' variant., guix-commits, 2024/01/22
- 06/10: guix: build-system: qt: Support #:disallowed-references., guix-commits, 2024/01/22
- 08/10: build-systems: cmake: Add support for #:allowed-references., guix-commits, 2024/01/22
- 09/10: gnu: inkscape/stable: Build stable variant without imagemagick support.,
guix-commits <=
- 10/10: gnu: hwdata: Update to 0.374., guix-commits, 2024/01/22
- 02/10: build-system: python: Add allowed/disallowed keyword arguments., guix-commits, 2024/01/22
- 01/10: gnu: Use 'gtk-doc/stable' in native-inputs instead of 'gtk-doc'., guix-commits, 2024/01/22
- 05/10: gnu: wpa-supplicant-gui: Use 'imagemagick/stable' variant., guix-commits, 2024/01/22
- 07/10: gnu: bandage: Do not yet use the 'imagemagick/stable' variant., guix-commits, 2024/01/22
- 03/10: build-system: pyproject: Add allowed/disallowed keyword arguments., guix-commits, 2024/01/22