mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -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 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 @@ (define-module (gnu packages inkscape)
|
|||
#: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 @@ (define-public inkscape/stable
|
|||
((".*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 @@ (define-public inkscape/stable
|
|||
gtk+
|
||||
gtkspell3
|
||||
gsl
|
||||
imagemagick ;for libMagickCore and libMagickWand
|
||||
poppler
|
||||
lib2geom
|
||||
libjpeg-turbo
|
||||
|
@ -271,7 +276,7 @@ (define-public inkscape/stable
|
|||
python-lxml))
|
||||
(native-inputs
|
||||
(list gettext-minimal
|
||||
imagemagick ;for tests
|
||||
imagemagick/stable ;for tests
|
||||
`(,glib "bin")
|
||||
googletest
|
||||
perl
|
||||
|
@ -300,19 +305,22 @@ (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))
|
||||
((#: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)))))
|
||||
|
|
Loading…
Reference in a new issue