diff options
Diffstat (limited to 'pkgs/applications/office/scribus/default.nix')
-rw-r--r-- | pkgs/applications/office/scribus/default.nix | 171 |
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 + ]; }; } |