gnu: emacspeak: Fix Tclx and espeak server loading.
[jackhill/guix/guix.git] / gnu / packages / scribus.scm
index 20795da..9a6b753 100644 (file)
@@ -3,6 +3,8 @@
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (gnu packages tls)
   #:use-module (gnu packages xml))
 
+(define podofo-for-scribus
+  (package
+    (inherit podofo)
+    (version "0.9.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/podofo/podofo/" version
+                           "/podofo-" version ".tar.gz"))
+       (sha256
+        (base32 "0wj0y4zcmj4q79wrn3vv3xq4bb0vhhxs8yifafwy9f2sjm83c5p9"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Fix the build with CMake 3.12.0.
+           (substitute* "test/TokenizerTest/CMakeLists.txt"
+             (("\\$\\{CMAKE_COMMAND\\}")
+              "true"))
+           #t))))))
+
 (define-public scribus
   (package
     (name "scribus")
-    (version "1.5.4")
+    (version "1.5.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/scribus/scribus-devel/"
                            version "/scribus-" version ".tar.xz"))
        (sha256
-        (base32
-         "00ys0p6h3iq77kh72dkl0qrf7qvznq18qdrgiq10gfxja1995034"))
-       (patches (append
-                 ;; Scribus relies heavily on Poppler internals, which have
-                 ;; changed a lot since the latest Scribus release (2018-04).
-                 ;; Thus, we require a bunch of patches to stay compatible.
-                 (search-patches "scribus-poppler.patch")
-                 (list (origin
-                         (method url-fetch)
-                         (uri (string-append
-                               "https://github.com/scribusproject/scribus/commit/"
-                               "7d4ceeb5cac32287769e3c0238699e0b3e56c24d.patch"))
-                         (file-name "scribus-poppler-0.64.patch")
-                         (sha256
-                          (base32
-                           "1kr27bfzkpabrh42nsrrvlqyycdg9isbavpaa5spgmrhidcg02xj")))
-                       (origin
-                         (method url-fetch)
-                         (uri (string-append
-                               "https://github.com/scribusproject/scribus/commit/"
-                               "76561c1a55cd07c268f8f2b2fea888532933700b.patch"))
-                         (file-name "scribus-poppler-config.patch")
-                         (sha256
-                          (base32
-                           "01k18xjj82c3ndzp89dlpfhhdccc8z0acf8b04r592jyr5y9rc19")))
-                       (origin
-                         (method url-fetch)
-                         (uri (string-append
-                               "https://github.com/scribusproject/scribus/commit/"
-                               "8e05d26c19097ac2ad5b4ebbf40a3771ee6faf9c.patch"))
-                         (file-name "scribus-poppler-0.69.patch")
-                         (sha256
-                          (base32
-                           "1avdmsj5l543j0irq18nxgiw99n395jj56ih5dsal59fn0wbqk42")))
-                       (origin
-                         (method url-fetch)
-                         (uri (string-append "https://git.archlinux.org/svntogit/"
-                                             "community.git/plain/trunk/scribus-"
-                                             "poppler-0.70.patch?h=packages/scribus&id="
-                                             "8ef43ee2fceb0753ed5a76bb0a11c84775898ffc"))
-                         (file-name "scribus-poppler-0.70.patch")
-                         (sha256
-                          (base32
-                           "0dw7ix3jaj0y1q97cmmqwb2qgdx760yhxx86wa8rnx0xhfi5x6qr"))))))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           (for-each (lambda (file)
-                       (substitute* file
-                         ;; These are required for compatibility with Poppler 0.71.
-                         (("GBool") "bool") (("gTrue") "true") (("gFalse") "false")
-                         ;; ...and this for Poppler 0.72.
-                         (("getCString") "c_str")))
-                     (find-files "scribus/plugins/import/pdf"))
-           #t))))
+        (base32 "1axp8ffnx3nh6k4s5mfa9gbx8d0yql2azgcampg41ylwafapc9fl"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ;no test target
        (modify-phases %standard-phases
          (add-after 'install 'wrap-program
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             ;; Fix "ImportError: No module named _sysconfigdata_nd" where
-             ;; Scribus checks PATH and eventually runs system's Python
-             ;; instead of package's.
+             ;; Fix "ImportError: No module named _sysconfigdata_nd"
+             ;; runtime error where Scribus checks PATH and eventually
+             ;; runs system's Python instead of package's.
              (let* ((out (assoc-ref outputs "out"))
                     (py2 (assoc-ref inputs "python")))
                (wrap-program (string-append out "/bin/scribus")
        ("lcms" ,lcms)
        ("libcdr" ,libcdr)
        ("libfreehand" ,libfreehand)
-       ("libjpeg" ,libjpeg)
+       ("libjpeg" ,libjpeg-turbo)
        ("libmspub" ,libmspub)
        ("libpagemaker" ,libpagemaker)
        ("librevenge" ,librevenge)
        ("libxml2" ,libxml2)
        ("libzmf" ,libzmf)
        ("openssl" ,openssl)
-       ("podofo" ,podofo)
+       ;; Scribus 1.5.6.1 does not build with later versions, see
+       ;; <https://bugs.scribus.net/view.php?id=16427>.
+       ("podofo" ,podofo-for-scribus)
        ("poppler" ,poppler)
-       ("python" ,python-2)             ;need Python library
+       ("python" ,python)               ; need Python library
        ("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)
        ("zlib" ,zlib)))
     (home-page "https://www.scribus.net")
     (synopsis "Desktop publishing and page layout program")
     (description
-     "Scribus is a @dfn{desktop publishing} (DTP) application and can be used
-for many tasks; from brochure design to newspapers, magazines, newsletters and
-posters to technical documentation.  Scribus supports professional DTP
-features, such as CMYK color and a color management system to soft proof
-images for high quality color printing, flexible PDF creation options,
-Encapsulated PostScript import/export and creation of four color separations,
-import of EPS/PS and SVG as native vector graphics, Unicode text including
-right to left scripts such as Arabic and Hebrew via freetype.")
+     "Scribus is a @dfn{desktop publishing} (DTP) application and can
+be used for many tasks; from brochure design to newspapers, magazines,
+newsletters and posters to technical documentation.  Scribus supports
+professional DTP features, such as CMYK color and a color management
+system to soft proof images for high quality color printing, flexible
+PDF creation options, Encapsulated PostScript import/export and
+creation of four color separations, import of EPS/PS and SVG as native
+vector graphics, Unicode text including right to left scripts such as
+Arabic and Hebrew via FreeType.")
     (license license:gpl2+)))