Hi, I wanted the same. My package is working but I cannot replace the current inkscape as there's a dependency loop, so I called it inkscape-1.0. But in today's blogpost Ludo installed inkscape 1.0, so maybe he already solved it. Here's my working definition btw, if you want to submit it please go ahead :)
Nicolò [1] https://guix.gnu.org/blog/2020/grafts-continued/ (define-public libgdl (package (name "libgdl") (version "3.34.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gdl/" (version-major+minor version) "/gdl-" version ".tar.xz")) (sha256 (base32 "00ldva6wg6s4wlxmisiqzyz8ihsprra7sninx2rlqk6frpq312w5")))) (build-system gnu-build-system) (native-inputs `(("automake" ,automake) ("autoconf" ,autoconf) ("intltool" ,intltool) ("libtool" ,libtool) ("pkg-config" ,pkg-config) ("gtk-doc" ,gtk-doc) ("gtk+" ,gtk+) ("which" ,which))) (inputs `( ("libxml2" ,libxml2) ;; ("boost" ,boost) )) ;; (native-inputs ;; `(("intltool" ,intltool) ;; ("glib" ,glib "bin") ;; ("perl" ,perl) ;; ("pkg-config" ,pkg-config))) ;; (arguments ;; `(#:phases ;; (modify-phases %standard-phases ;; (add-before 'bootstrap 'disable-maintainer-mode ;; (lambda _ ;; (substitute* "autogen.sh" ;; (("/bin/sh") (which "sh"))) ;; #t)) ;; (replace 'bootstrap ;; (lambda _ ;; (system* "./autogen.sh") ;; (substitute* "./configure" ;; (("/bin/sh") (which "sh"))) ;; (invoke "./autogen.sh") ;; #t))))) (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:gpl2+))) (define-public inkscape-1.0 (package (name "inkscape") (version "1.0") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.com/inkscape/inkscape.git") (commit "INKSCAPE_1_0") (recursive? #t))) ;; (patches (search-patches "inkscape-poppler-0.76.patch")) (sha256 (base32 "119j1yhjgjh49dhlxzy9xmprkgw2d8q8ypvr23wac0ppv2kklp57")))) (build-system cmake-build-system) (inputs `(("aspell" ,aspell) ("double-conversion" ,double-conversion) ("gtkmm" ,gtkmm) ("gtk" ,gtk+) ("gsl" ,gsl) ("poppler" ,poppler) ("libpng" ,libpng) ("libxml2" ,libxml2) ("libxslt" ,libxslt) ("libgc" ,libgc) ("libgdl" ,libgdl) ("libjpeg" ,libjpeg) ("libsoup" ,libsoup) ("libvisio" ,libvisio) ("libwpg" ,libwpg) ("libwpd" ,libwpd) ("libcdr" ,libcdr) ("freetype" ,freetype) ("gtkspell3" ,gtkspell3) ("imagemagick" ,imagemagick) ("popt" ,popt) ("potrace" ,potrace) ("python" ,python-3) ("lcms" ,lcms) ("boost" ,boost))) (native-inputs `(("intltool" ,intltool) ("glib" ,glib "bin") ("googletest" ,googletest) ("perl" ,perl) ("pkg-config" ,pkg-config))) (arguments ;; RE-enable `(#:tests? #f ;; Defaults to RelWithDebInfo #:configure-flags '("-DCMAKE_BUILD_TYPE=Release") #:phases (modify-phases %standard-phases ;; (add-after 'unpack 'patch-icon-cache-generator ;; (lambda _ ;; (substitute* "share/icons/application/CMakeLists.txt" ;; (("gtk-update-icon-cache") "true")) ;; #t)) (add-before 'configure 'dont-use-system-includes (lambda _ ;; Don't add redundant -isystem includes which confuses GCC7. (substitute* "CMakeScripts/DefineDependsandFlags.cmake" (("include_directories\\(SYSTEM") "include_directories(")) #t)) (add-before 'configure 'dont-use-werror-format (lambda _ ;; Don't add redundant -isystem includes which confuses GCC7. (substitute* "CMakeScripts/DefineDependsandFlags.cmake" (("-Werror=format\"") "\"") (("-Werror=format-security\"") "\"")) #t))))) (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:gpl2+))) Ekaitz Zarraga <eka...@elenq.tech> writes: > Hi all, > > With the release of the 1.0 version of Inkscape I wanted to update our > package and I'm encountering some problems I'm unable to solve myself. > > First, it depends on GDL (Gnome Devtool Libraries) which is not included in > Guix so I'm packaging that too. I found an issue I don't know how to solve on > it: > > GDL makes its bootstrap with this ./autogen.sh: > https://gitlab.gnome.org/GNOME/gdl/-/blob/master/autogen.sh > > That autogen is calling gnome-common's (gnome-common is already on guix) > autogen for everything else but, even if I'm able to patch the autogen from > GDL to find the correct `sh`, gnome-common's one is still failing because > it's looking for `/bin/sh`. I don't find any way to solve this. > > Ideas? > > Thanks! > > This is the GDL package I have at the moment: > > (define-public gdl > (package > (name "gdl") > (version "GDL_3_34_0") > (source (origin > (method git-fetch) > (uri (git-reference > (url "https://gitlab.gnome.org/GNOME/gdl.git") > (commit version))) > (sha256 > (base32 > "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna")))) > > (build-system gnu-build-system) > (inputs `()) > (native-inputs `(("gnome-common" ,gnome-common) > ("autoconf" ,autoconf) > ("automake" ,automake) > ("libtool" ,libtool) > ("intltool" ,intltool) > ("pkg-config" ,pkg-config) > ("gtk-doc" ,gtk-doc) > ("which" ,which))) > (arguments > `(#:phases > (modify-phases %standard-phases > (add-after 'unpack 'autogen > (lambda _ > (with-directory-excursion "." > (for-each make-file-writable (find-files "." ".*")) > ;; Use autogen so that 'configure' works. > (substitute* "autogen.sh" (("/bin/sh") (which "sh"))) > (setenv "CONFIG_SHELL" (which "sh")) > (invoke "./autogen.sh")) > #t))))) > (home-page "...") > (synopsis "...") > (description "...") > (license license:lgpl3+)))