summary refs log tree commit diff
path: root/pkgs/applications/office/scribus/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/office/scribus/default.nix')
-rw-r--r--pkgs/applications/office/scribus/default.nix171
1 files changed, 131 insertions, 40 deletions
diff --git a/pkgs/applications/office/scribus/default.nix b/pkgs/applications/office/scribus/default.nix
index a6427d0f890..d3f706bbf05 100644
--- a/pkgs/applications/office/scribus/default.nix
+++ b/pkgs/applications/office/scribus/default.nix
@@ -1,52 +1,143 @@
-{ lib, stdenv, fetchurl, pkg-config, freetype, lcms, libtiff, libxml2
-, libart_lgpl, qt4, python2, cups, fontconfig, libjpeg
-, zlib, libpng, xorg, cairo, podofo, hunspell, boost, cmake, imagemagick, ghostscript }:
+{ boost
+, cairo
+, cmake
+, cups
+, fetchurl
+, fetchpatch
+, fontconfig
+, freetype
+, harfbuzzFull
+, hunspell
+, lcms2
+, libjpeg
+, libtiff
+, libxml2
+, mkDerivation
+, pixman
+, pkg-config
+, podofo
+, poppler
+, poppler_data
+, python3
+, qtbase
+, qtimageformats
+, qttools
+, lib
+}:
 
 let
-  icon = fetchurl {
-    url = "https://gist.githubusercontent.com/ejpcmac/a74b762026c9bc4000be624c3d085517/raw/18edc497c5cb6fdeef1c8aede37a0ee68413f9d3/scribus-icon-centered.svg";
-    sha256 = "0hq3i7c2l50445an9glhhg47kj26y16svfajc6naqn307ph9vzc3";
-  };
-
-  pythonEnv = python2.withPackages(ps: [ps.tkinter ps.pillow]);
-in stdenv.mkDerivation rec {
+  pythonEnv = python3.withPackages (
+    ps: [
+      ps.pillow
+      ps.tkinter
+    ]
+  );
+in
+mkDerivation rec {
   pname = "scribus";
-  version = "1.4.8";
+
+  version = "1.5.7";
 
   src = fetchurl {
-    url = "mirror://sourceforge/${pname}/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0bq433myw6h1siqlsakxv6ghb002rp3mfz5k12bg68s0k6skn992";
+    url = "mirror://sourceforge/${pname}/${pname}-devel/${pname}-${version}.tar.xz";
+    sha256 = "sha256-MYMWss/Hp2GR0+DT+MImUUfa6gVwFiAo4kPCktgm+M4=";
   };
 
-  nativeBuildInputs = [ pkg-config cmake ];
-  buildInputs = with xorg;
-    [ freetype lcms libtiff libxml2 libart_lgpl qt4
-      pythonEnv cups fontconfig
-      libjpeg zlib libpng podofo hunspell cairo
-      boost # for internal 2geom library
-      libXaw libXext libX11 libXtst libXi libXinerama
-      libpthreadstubs libXau libXdmcp
-      imagemagick # To build the icon
-    ];
+  patches = [
+    # For harfbuzz >= 2.9.0
+    (fetchpatch {
+      url = "https://github.com/scribusproject/scribus/commit/1b546978bc4ea0b2a73fbe4d7cf947887e865162.patch";
+      sha256 = "sha256-noRCaN63ZYFfXmAluEYXdFPNOk3s5W3KBAsLU1Syxv4=";
+    })
+    # For harfbuzz >= 3.0
+    (fetchpatch {
+      url = "https://github.com/scribusproject/scribus/commit/68ec41169eaceea4a6e1d6f359762a191c7e61d5.patch";
+      sha256 = "sha256-xhp65qVvaof0md1jb3XHZw7uFX1RtNxPfUOaVnvZV1Y=";
+    })
+    # For Poppler 22.02
+    (fetchpatch {
+      url = "https://github.com/scribusproject/scribus/commit/85c0dff3422fa3c26fbc2e8d8561f597ec24bd92.patch";
+      sha256 = "YR0ii09EVU8Qazz6b8KAIWsUMTwPIwO8JuQPymAWKdw=";
+    })
+    (fetchpatch {
+      url = "https://github.com/scribusproject/scribus/commit/f75c1613db67f4067643d0218a2db3235e42ec9f.patch";
+      sha256 = "vJU8HsKHE3oXlhcXQk9uCYINPYVPF5IGmrWYFQ6Py5c=";
+    })
+    # For Poppler 22.03
+    (fetchpatch {
+      url = "https://github.com/scribusproject/scribus/commit/553d1fd5f76ffb3743583b88c78a7232b076a965.patch";
+      sha256 = "56JrEG3eCzyALTH04yjzurKRj2PocpjO6b4PusMRxjY=";
+    })
+    (fetchpatch {
+      url = "https://github.com/scribusproject/scribus/commit/1f82e38be0782b065910f5fb4cece23f690349ae.patch";
+      sha256 = "qektUfel5KeA327D3THyqi8dznP1SQQFToUC5Kd0+W4=";
+    })
+    (fetchpatch {
+      url = "https://github.com/scribusproject/scribus/commit/f19410ac3b27e33dd62105746784e61e85b90a1d.patch";
+      sha256 = "JHdgntYcioYatPeqpmym3c9dORahj0CinGOzbGtA4ds=";
+    })
+    (fetchpatch {
+      url = "https://github.com/scribusproject/scribus/commit/e013e8126d2100e8e56dea5b836ad43275429389.patch";
+      sha256 = "+siPNtJq9Is9V2PgADeQJB+b4lkl5g8uk6zKBu10Jqw=";
+    })
+    (fetchpatch {
+      url = "https://github.com/scribusproject/scribus/commit/48263954a7dee0be815b00f417ae365ab26cdd85.patch";
+      sha256 = "1WE9kALFw79bQH88NUafXaZ1Y/vJEKTIWxlk5c+opsQ=";
+    })
+    # For Poppler 22.04
+    (fetchpatch {
+      url = "https://github.com/scribusproject/scribus/commit/f2237b8f0b5cf7690e864a22ef7a63a6d769fa36.patch";
+      sha256 = "FXpLoX/a2Jy3GcfzrUUyVUfEAp5wAy2UfzfVA5lhwJw=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
 
-  postPatch = ''
-    substituteInPlace scribus/util_ghostscript.cpp \
-      --replace 'QString gsName("gs");' \
-                'QString gsName("${ghostscript}/bin/gs");'
-  '';
-
-  postInstall = ''
-    for i in 16 24 48 64 96 128 256 512; do
-      mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps
-      convert -background none -resize ''${i}x''${i} ${icon} $out/share/icons/hicolor/''${i}x''${i}/apps/scribus.png
-    done
-  '';
-
-  meta = {
-    maintainers = [ lib.maintainers.marcweber ];
-    platforms = lib.platforms.linux;
+  buildInputs = [
+    boost
+    cairo
+    cups
+    fontconfig
+    freetype
+    harfbuzzFull
+    hunspell
+    lcms2
+    libjpeg
+    libtiff
+    libxml2
+    pixman
+    podofo
+    poppler
+    poppler_data
+    pythonEnv
+    qtbase
+    qtimageformats
+    qttools
+  ];
+
+  cmakeFlags = [
+    # poppler uses std::optional
+    "-DWANT_CPP17=ON"
+  ];
+
+  meta = with lib; {
+    maintainers = with maintainers; [
+      erictapen
+      kiwi
+    ];
+    platforms = platforms.linux;
     description = "Desktop Publishing (DTP) and Layout program for Linux";
     homepage = "https://www.scribus.net";
-    license = lib.licenses.gpl2;
+    # There are a lot of licenses...
+    # https://github.com/scribusproject/scribus/blob/20508d69ca4fc7030477db8dee79fd1e012b52d2/COPYING#L15-L19
+    license = with licenses; [
+      bsd3
+      gpl2Plus
+      mit
+      publicDomain
+    ];
   };
 }