From 023259c4bd1a38225fb1c06660c0cf393210e811 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 12 Jul 2022 15:54:59 -0400 Subject: gnu: inkscape: Rename variable to inkscape/stable and hide package. This will allow introducing a new 'inkscape' package that can be more freely upgraded on the main branch. * gnu/packages/inkscape.scm (inkscape): Rename to... (inkscape/stable): ... this, and make it a hidden package. * gnu/packages/admin.scm (wpa-supplicant-gui)[native-inputs]: Rename inkscape input accordingly. * gnu/packages/docbook.scm (dblatex): Likewise. * gnu/packages/gnome-xyz.scm (arc-theme): Likewise. * gnu/packages/python-xyz.scm (python-matplotlib-documentation): Likewise. (python-nbconvert): Likewise. * gnu/packages/xfce.scm (xfdesktop): Likewise. * gnu/packages/xorg.scm (hackneyed-x11-cursors): Likewise. --- gnu/packages/admin.scm | 2 +- gnu/packages/docbook.scm | 52 +++---- gnu/packages/gnome-xyz.scm | 2 +- gnu/packages/inkscape.scm | 337 ++++++++++++++++++++++---------------------- gnu/packages/python-xyz.scm | 4 +- gnu/packages/xfce.scm | 4 +- gnu/packages/xorg.scm | 2 +- 7 files changed, 203 insertions(+), 200 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index dea58354d9..88cb8fded9 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -2144,7 +2144,7 @@ command.") (native-inputs ;; For icons. (modify-inputs (package-native-inputs wpa-supplicant) - (prepend imagemagick inkscape))) + (prepend imagemagick inkscape/stable))) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'chdir diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index dcaac3b8d2..ae0ea07dbf 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -476,37 +476,37 @@ the in DocBook SGML DTDs.") ;; TODO: Add xfig/transfig for fig2dev utility (inputs `(("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts - texlive-latex-anysize - texlive-latex-appendix - texlive-latex-bookmark - texlive-latex-changebar - texlive-latex-colortbl - texlive-latex-fancybox - texlive-latex-fancyhdr - texlive-latex-fancyvrb - texlive-latex-float - texlive-latex-footmisc - texlive-hyperref - texlive-latex-jknapltx + texlive-latex-anysize + texlive-latex-appendix + texlive-latex-bookmark + texlive-latex-changebar + texlive-latex-colortbl + texlive-latex-fancybox + texlive-latex-fancyhdr + texlive-latex-fancyvrb + texlive-latex-float + texlive-latex-footmisc + texlive-hyperref + texlive-latex-jknapltx - ;; TODO: Use non-deprecated name on - ;; next rebuild cycle. - texlive-latex-listings + ;; TODO: Use non-deprecated name on + ;; next rebuild cycle. + texlive-latex-listings - texlive-latex-multirow - texlive-latex-overpic - texlive-latex-pdfpages - texlive-latex-refcount - texlive-latex-subfigure - texlive-latex-titlesec - texlive-wasysym + texlive-latex-multirow + texlive-latex-overpic + texlive-latex-pdfpages + texlive-latex-refcount + texlive-latex-subfigure + texlive-latex-titlesec + texlive-wasysym - texlive-fonts-rsfs - texlive-stmaryrd + texlive-fonts-rsfs + texlive-stmaryrd - texlive-generic-iftex))) + texlive-generic-iftex))) ("imagemagick" ,imagemagick) ;for convert - ("inkscape" ,inkscape) ;for svg conversion + ("inkscape" ,inkscape/stable) ;for svg conversion ("docbook" ,docbook-xml) ("libxslt" ,libxslt))) ;for xsltproc (arguments diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm index da316186d5..1cf4793ba7 100644 --- a/gnu/packages/gnome-xyz.scm +++ b/gnu/packages/gnome-xyz.scm @@ -1109,7 +1109,7 @@ of windows.") (list `(,glib "bin") ; for glib-compile-resources gnome-shell gtk+ - inkscape + inkscape/stable optipng pkg-config sassc/libsass-3.5)) diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index c87f148329..5a06962368 100644 --- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -52,53 +52,56 @@ #:use-module (gnu packages image) #:use-module (gnu packages pkg-config)) -(define-public inkscape - (package - (name "inkscape") - (version "1.1.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://media.inkscape.org/dl/" - "resources/file/" - "inkscape-" version ".tar.xz")) - (sha256 - (base32 "1bvqg5xfs3m6r7qfdhmgzwhd1hx8wvg3nhvhmalwzcdm6ffhpjmf")) - (modules '((guix build utils) - (ice-9 format))) - (snippet - '(begin - (let-syntax - ;; XXX: The build system doesn't currently support using - ;; system libraries over bundled ones (see: - ;; https://gitlab.com/inkscape/inkscape/issues/876). - ((unbundle - (syntax-rules () - ((_ (name source-dir use-pkg-config?) ...) - (begin - ;; Delete bundled source directories. - (delete-file-recursively source-dir) ... - (substitute* '("src/CMakeLists.txt" - "src/3rdparty/CMakeLists.txt") - (((string-append ".*add_subdirectory\\(" - (basename source-dir) "\\).*")) - "") ...) - ;; Remove bundled entries from INKSCAPE_TARGET_LIBS. - (substitute* "src/CMakeLists.txt" - (((string-append name "_LIB.*")) "") ...) - ;; Register the external libraries, so that their - ;; headers are added to INKSCAPE_INCS_SYS and their - ;; shared libraries added to INKSCAPE_LIBS. - (if use-pkg-config? - (let* ((width (string-length "pkg_check_modules(")) - (indent (string-join (make-list width " ") ""))) - (substitute* "CMakeScripts/DefineDependsandFlags.cmake" - (("^pkg_check_modules\\(INKSCAPE_DEP REQUIRED.*" start) - (string-append start - (format #f "~a~a~%" indent name))))) - (substitute* "CMakeScripts/DefineDependsandFlags.cmake" - (("^find_package\\(Iconv REQUIRED\\).*" start) - (string-append (format #f " +;;; A variant of Inkscape intended to be bumped only on core-updates, to avoid +;;; rebuilding 2k+ packages through dblatex. +(define-public inkscape/stable + (hidden-package + (package + (name "inkscape") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://media.inkscape.org/dl/" + "resources/file/" + "inkscape-" version ".tar.xz")) + (sha256 + (base32 "1bvqg5xfs3m6r7qfdhmgzwhd1hx8wvg3nhvhmalwzcdm6ffhpjmf")) + (modules '((guix build utils) + (ice-9 format))) + (snippet + '(begin + (let-syntax + ;; XXX: The build system doesn't currently support using + ;; system libraries over bundled ones (see: + ;; https://gitlab.com/inkscape/inkscape/issues/876). + ((unbundle + (syntax-rules () + ((_ (name source-dir use-pkg-config?) ...) + (begin + ;; Delete bundled source directories. + (delete-file-recursively source-dir) ... + (substitute* '("src/CMakeLists.txt" + "src/3rdparty/CMakeLists.txt") + (((string-append ".*add_subdirectory\\(" + (basename source-dir) "\\).*")) + "") ...) + ;; Remove bundled entries from INKSCAPE_TARGET_LIBS. + (substitute* "src/CMakeLists.txt" + (((string-append name "_LIB.*")) "") ...) + ;; Register the external libraries, so that their + ;; headers are added to INKSCAPE_INCS_SYS and their + ;; shared libraries added to INKSCAPE_LIBS. + (if use-pkg-config? + (let* ((width (string-length "pkg_check_modules(")) + (indent (string-join (make-list width " ") ""))) + (substitute* "CMakeScripts/DefineDependsandFlags.cmake" + (("^pkg_check_modules\\(INKSCAPE_DEP REQUIRED.*" start) + (string-append start + (format #f "~a~a~%" indent name))))) + (substitute* "CMakeScripts/DefineDependsandFlags.cmake" + (("^find_package\\(Iconv REQUIRED\\).*" start) + (string-append (format #f " find_path(~a_INCLUDE_DIR NAMES ~:*~a/~:*~a.h ~:*~a.h) if(NOT ~:*~a_INCLUDE_DIR) message(FATAL_ERROR \"~:*~a headers not found\") @@ -112,125 +115,125 @@ if(NOT ~:*~a_LIB) else() list(APPEND INKSCAPE_LIBS ~:*~a_LIB) endif()~%~%" - name) - start)))) ... - ;; Fix the references to the headers of the - ;; unbundled libraries. - (substitute* (find-files "." "\\.h$|\\.cpp$") - (((string-append "#include (\"|<)3rdparty/" - (basename source-dir)) _ quote) - (string-append "#include " quote - (basename source-dir))) - ...)))))) - (unbundle ("2geom" "src/3rdparty/2geom" #t) - ;; libcroco cannot be unbundled as it is heavily - ;; modified (see: - ;; https://gitlab.com/inkscape/inkscape/issues/876#note_276114904). - ;; ("croco" "src/3rdparty/libcroco" #t) - ;; FIXME: Unbundle the following libraries once they - ;; have been packaged. - ;; ("cola" "src/3rdparty/adaptagrams/libcola") - ;; ("avoid" "src/3rdparty/adaptagrams/libavoid") - ;; ("vpsc" "src/3rdparty/adaptagrams/libvpsc") - ;; libuemf cannot be unbundled as it slightly modified - ;; from upstream (see: - ;; https://gitlab.com/inkscape/inkscape/issues/973). - ;; ("uemf" "src/3rdparty/libuemf" #f) - ;; FIXME: libdepixelize upstream is ancient and doesn't - ;; build with a recent lib2geom - ;; (see: https://bugs.launchpad.net/libdepixelize/+bug/1862458). - ;;("depixelize" "src/3rdparty/libdepixelize") - ("autotrace" "src/3rdparty/autotrace" #t))) - ;; Lift the requirement on the double-conversion library, as - ;; it is only needed by lib2geom, which is now unbundled. - (substitute* "CMakeScripts/DefineDependsandFlags.cmake" - ((".*find_package\\(DoubleConversion.*") "")))))) - (build-system cmake-build-system) - (arguments - `(#:test-target "check" ;otherwise some test binaries are missing - #:imported-modules (,@%cmake-build-system-modules - (guix build glib-or-gtk-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 '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")))))))))) - (inputs - `(("aspell" ,aspell) - ("autotrace" ,autotrace) - ("gdl" ,gdl-minimal) - ("gtkmm" ,gtkmm-3) - ("gtk" ,gtk+) - ("gtkspell3" ,gtkspell3) - ("gsl" ,gsl) - ("poppler" ,poppler) - ("lib2geom" ,lib2geom) - ("libjpeg" ,libjpeg-turbo) - ("libpng" ,libpng) - ("libxml2" ,libxml2) - ("libxslt" ,libxslt) - ("libgc" ,libgc) - ("libsoup" ,libsoup-minimal-2) - ("libcdr" ,libcdr) - ("libvisio" ,libvisio) - ("libwpd" ,libwpd) - ("libwpg" ,libwpg) - ("freetype" ,freetype) - ("popt" ,popt) - ("potrace" ,potrace) - ("lcms" ,lcms) - ("boost" ,boost) - ("python" ,python-wrapper) - ("python-scour" ,python-scour) - ("python-pyserial" ,python-pyserial) - ("python-numpy" ,python-numpy) - ("python-lxml" ,python-lxml))) - (native-inputs - (list imagemagick ;for tests - intltool - `(,glib "bin") - googletest - perl - pkg-config)) - (home-page "https://inkscape.org/") - (synopsis "Vector graphics editor") - (description "Inkscape is a vector graphics editor. What sets Inkscape + name) + start)))) ... + ;; Fix the references to the headers of the + ;; unbundled libraries. + (substitute* (find-files "." "\\.h$|\\.cpp$") + (((string-append "#include (\"|<)3rdparty/" + (basename source-dir)) _ quote) + (string-append "#include " quote + (basename source-dir))) + ...)))))) + (unbundle ("2geom" "src/3rdparty/2geom" #t) + ;; libcroco cannot be unbundled as it is heavily + ;; modified (see: + ;; https://gitlab.com/inkscape/inkscape/issues/876#note_276114904). + ;; ("croco" "src/3rdparty/libcroco" #t) + ;; FIXME: Unbundle the following libraries once they + ;; have been packaged. + ;; ("cola" "src/3rdparty/adaptagrams/libcola") + ;; ("avoid" "src/3rdparty/adaptagrams/libavoid") + ;; ("vpsc" "src/3rdparty/adaptagrams/libvpsc") + ;; libuemf cannot be unbundled as it slightly modified + ;; from upstream (see: + ;; https://gitlab.com/inkscape/inkscape/issues/973). + ;; ("uemf" "src/3rdparty/libuemf" #f) + ;; FIXME: libdepixelize upstream is ancient and doesn't + ;; build with a recent lib2geom + ;; (see: https://bugs.launchpad.net/libdepixelize/+bug/1862458). + ;;("depixelize" "src/3rdparty/libdepixelize") + ("autotrace" "src/3rdparty/autotrace" #t))) + ;; Lift the requirement on the double-conversion library, as + ;; it is only needed by lib2geom, which is now unbundled. + (substitute* "CMakeScripts/DefineDependsandFlags.cmake" + ((".*find_package\\(DoubleConversion.*") "")))))) + (build-system cmake-build-system) + (arguments + `(#:test-target "check" ;otherwise some test binaries are missing + #:imported-modules (,@%cmake-build-system-modules + (guix build glib-or-gtk-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 '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")))))))))) + (inputs + `(("aspell" ,aspell) + ("autotrace" ,autotrace) + ("gdl" ,gdl-minimal) + ("gtkmm" ,gtkmm-3) + ("gtk" ,gtk+) + ("gtkspell3" ,gtkspell3) + ("gsl" ,gsl) + ("poppler" ,poppler) + ("lib2geom" ,lib2geom) + ("libjpeg" ,libjpeg-turbo) + ("libpng" ,libpng) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("libgc" ,libgc) + ("libsoup" ,libsoup-minimal-2) + ("libcdr" ,libcdr) + ("libvisio" ,libvisio) + ("libwpd" ,libwpd) + ("libwpg" ,libwpg) + ("freetype" ,freetype) + ("popt" ,popt) + ("potrace" ,potrace) + ("lcms" ,lcms) + ("boost" ,boost) + ("python" ,python-wrapper) + ("python-scour" ,python-scour) + ("python-pyserial" ,python-pyserial) + ("python-numpy" ,python-numpy) + ("python-lxml" ,python-lxml))) + (native-inputs + (list imagemagick ;for tests + intltool + `(,glib "bin") + googletest + perl + pkg-config)) + (home-page "https://inkscape.org/") + (synopsis "Vector graphics editor") + (description "Inkscape is a vector graphics editor. What sets Inkscape apart is its use of Scalable Vector Graphics (SVG), an XML-based W3C standard, as the native format.") - (license license:gpl3+))) ;see the file COPYING + (license license:gpl3+)))) ;see the file COPYING diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index f146746058..efcd51db95 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -6455,7 +6455,7 @@ toolkits.") (string-append info "/matplotlib-figures")))))))) (native-inputs (list graphviz - inkscape + inkscape/stable python-colorspacious python-mpl-sphinx-theme python-scipy @@ -13148,7 +13148,7 @@ time.") "and not test_execute_widgets_from_nbconvert " "and not test_execute_multiple_notebooks "))))))))) (inputs - (list inkscape pandoc)) + (list inkscape/stable pandoc)) (native-inputs (list python-ipykernel ;; Adding ipywidgets would create a cycle. diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index ddd484b165..323ecd3042 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -862,11 +862,11 @@ on the screen.") "backgrounds/xfce-verticals.png")) #t))) - #:disallowed-references (,inkscape ,imagemagick))) + #:disallowed-references (,inkscape/stable ,imagemagick))) (native-inputs (list pkg-config intltool ;; For our own ‘prepare-background-image’ phase. - inkscape imagemagick)) + inkscape/stable imagemagick)) (inputs (list exo garcon diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index e5c255c33d..6a424b71d2 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2206,7 +2206,7 @@ X server: @code{handhelds}, @code{redglass} and @code{whiteglass}.") (lambda* (#:key make-flags #:allow-other-keys) (apply invoke `("make" "install" ,@make-flags "THEME_NAME=Hackneyed-Dark"))))))) - (native-inputs (list imagemagick inkscape xcursorgen)) + (native-inputs (list imagemagick inkscape/stable xcursorgen)) (home-page "https://gitlab.com/Enthymeme/hackneyed-x11-cursors") (synopsis "Classic cursor theme for X11") (description "Hackneyed is a scalable cursor theme mildly resembling old -- cgit v1.2.3