summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2024-01-21 22:45:21 -0500
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2024-01-21 22:55:54 -0500
commitb4a6b1ba93844d7373c58237cb0b742352dec954 (patch)
treee251bc9d012b6a2e37bfe5a1599f7d62715122a2
parent9077def8bbd8b7c1b055bcdbe72d30029427432a (diff)
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>
-rw-r--r--gnu/packages/inkscape.scm192
1 files 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)))))