mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-25 20:19:18 -05:00
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>
This commit is contained in:
parent
8da07d2e9e
commit
aff6b2ac11
1 changed files with 100 additions and 92 deletions
|
@ -28,6 +28,7 @@ (define-module (gnu packages inkscape)
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (guix build-system cmake)
|
#:use-module (guix build-system cmake)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
|
@ -58,7 +59,8 @@ (define-module (gnu packages inkscape)
|
||||||
#:use-module (srfi srfi-1))
|
#:use-module (srfi srfi-1))
|
||||||
|
|
||||||
;;; A variant of Inkscape intended to be bumped only on core-updates, to avoid
|
;;; 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
|
(define-public inkscape/stable
|
||||||
(hidden-package
|
(hidden-package
|
||||||
(package
|
(package
|
||||||
|
@ -156,86 +158,90 @@ (define-public inkscape/stable
|
||||||
((".*find_package\\(DoubleConversion.*") ""))))))
|
((".*find_package\\(DoubleConversion.*") ""))))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:test-target "check" ;otherwise some test binaries are missing
|
(list
|
||||||
#:imported-modules (,@%cmake-build-system-modules
|
#: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))
|
(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 glib-or-gtk-build-system) #:prefix glib-or-gtk:)
|
||||||
(guix build utils))
|
(guix build utils))
|
||||||
#:phases
|
;; Disable imagemagick support in the stable variant, to reduce the
|
||||||
(modify-phases %standard-phases
|
;; number of dependents of the 'imagemagick' package.
|
||||||
(add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
|
#:configure-flags #~(list "-DWITH_IMAGE_MAGICK=OFF")
|
||||||
(assoc-ref glib-or-gtk:%standard-phases
|
#:phases
|
||||||
'generate-gdk-pixbuf-loaders-cache-file))
|
#~(modify-phases %standard-phases
|
||||||
(add-after 'unpack 'patch-icon-cache-generator
|
(add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
|
||||||
(lambda _
|
(assoc-ref glib-or-gtk:%standard-phases
|
||||||
(substitute* "share/icons/application/CMakeLists.txt"
|
'generate-gdk-pixbuf-loaders-cache-file))
|
||||||
(("gtk-update-icon-cache") "true"))))
|
(add-after 'unpack 'patch-icon-cache-generator
|
||||||
(add-after 'unpack 'disable-latex-export-tests
|
(lambda _
|
||||||
;; FIXME: For some reason the test.pdf_tex file generated by the
|
(substitute* "share/icons/application/CMakeLists.txt"
|
||||||
;; "--export-latex" lacks "some text" in its content when run in
|
(("gtk-update-icon-cache") "true"))))
|
||||||
;; the build environment. Skip the related tests.
|
(add-after 'unpack 'disable-latex-export-tests
|
||||||
(lambda _
|
;; FIXME: For some reason the test.pdf_tex file generated by the
|
||||||
(substitute* "testfiles/cli_tests/CMakeLists.txt"
|
;; "--export-latex" lacks "some text" in its content when run in
|
||||||
(("add_cli_test\\(export-latex")
|
;; the build environment. Skip the related tests.
|
||||||
"message(TEST_DISABLED: export-latex"))))
|
(lambda _
|
||||||
(add-after 'unpack 'disable-vertical-glyph-tests
|
(substitute* "testfiles/cli_tests/CMakeLists.txt"
|
||||||
(lambda _
|
(("add_cli_test\\(export-latex")
|
||||||
;; FIXME: These tests fail with newer Pango and Harfbuzz:
|
"message(TEST_DISABLED: export-latex"))))
|
||||||
;; https://gitlab.com/inkscape/inkscape/-/issues/2917
|
(add-after 'unpack 'disable-vertical-glyph-tests
|
||||||
;; https://gitlab.com/inkscape/inkscape/-/issues/3554
|
(lambda _
|
||||||
;; Simply providing older versions don't work, as we need
|
;; FIXME: These tests fail with newer Pango and Harfbuzz:
|
||||||
;; the full GTK stack; we could use package-input-rewriting
|
;; https://gitlab.com/inkscape/inkscape/-/issues/2917
|
||||||
;; but then have to also downgrade pangomm and disable tests
|
;; https://gitlab.com/inkscape/inkscape/-/issues/3554
|
||||||
;; in librsvg and GTK+. Just ignore for now.
|
;; Simply providing older versions don't work, as we need
|
||||||
(substitute* "testfiles/rendering_tests/CMakeLists.txt"
|
;; the full GTK stack; we could use package-input-rewriting
|
||||||
(("test-glyph-y-pos") "")
|
;; but then have to also downgrade pangomm and disable tests
|
||||||
(("text-glyphs-combining") "")
|
;; in librsvg and GTK+. Just ignore for now.
|
||||||
(("text-glyphs-vertical") "")
|
(substitute* "testfiles/rendering_tests/CMakeLists.txt"
|
||||||
(("test-rtl-vertical") ""))))
|
(("test-glyph-y-pos") "")
|
||||||
,@(if (or (target-aarch64?)
|
(("text-glyphs-combining") "")
|
||||||
(target-ppc64le?)
|
(("text-glyphs-vertical") "")
|
||||||
(target-riscv64?))
|
(("test-rtl-vertical") ""))))
|
||||||
`((add-after 'unpack 'disable-more-tests
|
#$@(if (or (target-aarch64?)
|
||||||
(lambda _
|
(target-ppc64le?)
|
||||||
;; https://gitlab.com/inkscape/inkscape/-/issues/3554#note_1035680690
|
(target-riscv64?))
|
||||||
(substitute* "testfiles/CMakeLists.txt"
|
'((add-after 'unpack 'disable-more-tests
|
||||||
(("lpe64-test") "#lpe64-test"))
|
(lambda _
|
||||||
;; https://gitlab.com/inkscape/inkscape/-/issues/3554#note_1035539888
|
;; https://gitlab.com/inkscape/inkscape/-/issues/3554#note_1035680690
|
||||||
;; According to upstream, this is a false positive.
|
(substitute* "testfiles/CMakeLists.txt"
|
||||||
(substitute* "testfiles/rendering_tests/CMakeLists.txt"
|
(("lpe64-test") "#lpe64-test"))
|
||||||
(("test-use") "#test-use"))
|
;; https://gitlab.com/inkscape/inkscape/-/issues/3554#note_1035539888
|
||||||
;; https://gitlab.com/inkscape/inkscape/-/issues/3554#note_1035539888
|
;; According to upstream, this is a false positive.
|
||||||
;; Allegedly a precision error in the gamma.
|
(substitute* "testfiles/rendering_tests/CMakeLists.txt"
|
||||||
(substitute* "testfiles/cli_tests/CMakeLists.txt"
|
(("test-use") "#test-use"))
|
||||||
(("add_cli_test\\(export-png-color-mode-gray-8_png" all)
|
;; https://gitlab.com/inkscape/inkscape/-/issues/3554#note_1035539888
|
||||||
(string-append "#" all))))))
|
;; Allegedly a precision error in the gamma.
|
||||||
'())
|
(substitute* "testfiles/cli_tests/CMakeLists.txt"
|
||||||
(add-after 'unpack 'set-home
|
(("add_cli_test\\(export-png-color-mode-gray-8_png" all)
|
||||||
;; Mute Inkscape warnings during tests.
|
(string-append "#" all))))))
|
||||||
(lambda _
|
'())
|
||||||
(setenv "HOME" (getcwd))))
|
(add-after 'unpack 'set-home
|
||||||
;; Move the check phase after the install phase, as when run in the
|
;; Mute Inkscape warnings during tests.
|
||||||
;; tests, Inkscape relies on files that are not yet installed, such
|
(lambda _
|
||||||
;; as the "share/inkscape/ui/units.xml" file.
|
(setenv "HOME" (getcwd))))
|
||||||
(delete 'check)
|
;; Move the check phase after the install phase, as when run in the
|
||||||
(add-after 'install 'check
|
;; tests, Inkscape relies on files that are not yet installed, such
|
||||||
(assoc-ref %standard-phases 'check))
|
;; as the "share/inkscape/ui/units.xml" file.
|
||||||
(add-after 'install 'glib-or-gtk-compile-schemas
|
(delete 'check)
|
||||||
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
|
(add-after 'install 'check
|
||||||
(add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
|
(assoc-ref %standard-phases 'check))
|
||||||
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
|
(add-after 'install 'glib-or-gtk-compile-schemas
|
||||||
(add-after 'install 'wrap-program
|
(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.
|
;; Ensure Python is available at runtime.
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda _
|
||||||
(let ((out (assoc-ref outputs "out")))
|
(wrap-program (string-append #$output "/bin/inkscape")
|
||||||
(wrap-program (string-append out "/bin/inkscape")
|
`("GUIX_PYTHONPATH" prefix
|
||||||
`("GUIX_PYTHONPATH" prefix
|
(,(getenv "GUIX_PYTHONPATH")))
|
||||||
(,(getenv "GUIX_PYTHONPATH")))
|
;; Wrapping GDK_PIXBUF_MODULE_FILE allows Inkscape to load
|
||||||
;; Wrapping GDK_PIXBUF_MODULE_FILE allows Inkscape to load
|
;; its own icons in pure environments.
|
||||||
;; its own icons in pure environments.
|
`("GDK_PIXBUF_MODULE_FILE" =
|
||||||
`("GDK_PIXBUF_MODULE_FILE" =
|
(,(getenv "GDK_PIXBUF_MODULE_FILE")))))))))
|
||||||
(,(getenv "GDK_PIXBUF_MODULE_FILE"))))))))))
|
|
||||||
(inputs
|
(inputs
|
||||||
(list aspell
|
(list aspell
|
||||||
autotrace
|
autotrace
|
||||||
|
@ -245,7 +251,6 @@ (define-public inkscape/stable
|
||||||
gtk+
|
gtk+
|
||||||
gtkspell3
|
gtkspell3
|
||||||
gsl
|
gsl
|
||||||
imagemagick ;for libMagickCore and libMagickWand
|
|
||||||
poppler
|
poppler
|
||||||
lib2geom
|
lib2geom
|
||||||
libjpeg-turbo
|
libjpeg-turbo
|
||||||
|
@ -271,7 +276,7 @@ (define-public inkscape/stable
|
||||||
python-lxml))
|
python-lxml))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(list gettext-minimal
|
(list gettext-minimal
|
||||||
imagemagick ;for tests
|
imagemagick/stable ;for tests
|
||||||
`(,glib "bin")
|
`(,glib "bin")
|
||||||
googletest
|
googletest
|
||||||
perl
|
perl
|
||||||
|
@ -300,19 +305,22 @@ (define-public inkscape
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments inkscape/stable)
|
(substitute-keyword-arguments (package-arguments inkscape/stable)
|
||||||
|
;; ((#:configure-flags flags ''())
|
||||||
|
;; ;; Enable ImageMagick support.
|
||||||
|
;; #~(delete "-DWITH_IMAGE_MAGICK=OFF" #$flags))
|
||||||
((#:phases phases)
|
((#:phases phases)
|
||||||
`(modify-phases ,phases
|
#~(modify-phases #$phases
|
||||||
(replace 'wrap-program
|
(replace 'wrap-program
|
||||||
;; Ensure Python is available at runtime.
|
;; Ensure Python is available at runtime.
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda _
|
||||||
(let ((out (assoc-ref outputs "out")))
|
(wrap-program (string-append #$output "/bin/inkscape")
|
||||||
(wrap-program (string-append out "/bin/inkscape")
|
`("GUIX_PYTHONPATH" prefix
|
||||||
`("GUIX_PYTHONPATH" prefix
|
(,(getenv "GUIX_PYTHONPATH")))
|
||||||
(,(getenv "GUIX_PYTHONPATH")))
|
;; Wrapping GDK_PIXBUF_MODULE_FILE allows Inkscape to load
|
||||||
;; Wrapping GDK_PIXBUF_MODULE_FILE allows Inkscape to load
|
;; its own icons in pure environments.
|
||||||
;; its own icons in pure environments.
|
`("GDK_PIXBUF_MODULE_FILE" =
|
||||||
`("GDK_PIXBUF_MODULE_FILE" =
|
(,(getenv "GDK_PIXBUF_MODULE_FILE"))))))))))
|
||||||
(,(getenv "GDK_PIXBUF_MODULE_FILE")))))))))))
|
|
||||||
(inputs (modify-inputs (package-inputs inkscape/stable)
|
(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)))))
|
(properties (alist-delete 'hidden? (package-properties inkscape/stable)))))
|
||||||
|
|
Loading…
Reference in a new issue