Unverified Commit faa4fdb8 authored by Fernando Rodrigues's avatar Fernando Rodrigues
Browse files

kdePackages.calligra: 3.2.1 -> 4.0.1



Massively simplifies the build. We remove most of the meta attributes,
all of the downstream patches, and nuke most of the unecessary
dependencies. The result is a pretty feature-complete build of Calligra
4.0 that's only missing legacy components that nobody should be using
anyway.

Signed-off-by: default avatarFernando Rodrigues <alpha@sigmasquadron.net>
parent 5bcdd2ec
Loading
Loading
Loading
Loading
+31 −168
Original line number Diff line number Diff line
{
  mkDerivation,
  mkKdeDerivation,
  lib,
  fetchpatch,
  fetchurl,
  extra-cmake-modules,
  kdoctools,
  boost,
  qtwebkit,
  qtx11extras,
  shared-mime-info,
  breeze-icons,
  kactivities,
  karchive,
  kcodecs,
  kcompletion,
  kconfig,
  kconfigwidgets,
  kcoreaddons,
  kdbusaddons,
  kdiagram,
  kguiaddons,
  khtml,
  ki18n,
  kiconthemes,
  kitemviews,
  kjobwidgets,
  kcmutils,
  kdelibs4support,
  kio,
  kross,
  knotifications,
  knotifyconfig,
  kparts,
  ktextwidgets,
  kwallet,
  kwidgetsaddons,
  kwindowsystem,
  kxmlgui,
  sonnet,
  threadweaver,
  kcontacts,
  akonadi,
  akonadi-calendar,
  akonadi-contacts,
  eigen,
  git,
  gsl,
  ilmbase,
  kproperty,
  kreport,
  lcms2,
  marble,
  pcre,
  imath,
  libetonyek,
  libgit2,
  libodfgen,
  librevenge,
@@ -60,110 +14,27 @@
  libwpg,
  libwps,
  okular,
  openexr,
  openjpeg,
  phonon,
  perl,
  pkg-config,
  poppler,
  pstoedit,
  qca-qt5,
  vc,
  fontconfig,
# TODO: package Spnav, m2mml LibEtonyek, Libqgit2
  qtkeychain,
  qtsvg,
}:

mkDerivation rec {
mkKdeDerivation rec {
  pname = "calligra";
  version = "3.2.1";
  version = "4.0.1";

  src = fetchurl {
    url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
    sha256 = "0iqi6z6gkck2afgy200dacgcspq7i7887alcj0pklm08hbmsdy5i";
    url = "mirror://kde/stable/calligra/calligra-${version}.tar.xz";
    hash = "sha256-1AH15z9PG9wLNUjqGlCwrBd4we3jCmozWUTtf72I2V8=";
  };

  patches = [
    # Fix fontconfig underlinking: https://github.com/NixOS/nixpkgs/issues/137794
    # Can be dropped on next release.
    (fetchpatch {
      name = "fix-fontconfig-linking.patch";
      url = "https://github.com/KDE/calligra/commit/62f510702ef9c34ac50f8d8601a4290ab558464c.patch";
      sha256 = "11dzrp9q05dmvnwp4vk4ihcibqcf4xyr0ijscpi716cyy730flma";
      excludes = [ "CMakeLists.txt" ];
    })
    # Fixes for building calligra with gcc11/c++17
    (fetchpatch {
      name = "build_c++17_poppler.patch";
      url = "https://github.com/archlinux/svntogit-packages/raw/bbbe35f97eb1033798f1cf95d427890168598199/trunk/068cd9ae.patch";
      sha256 = "sha256-d9/ILwSeW+ov11DF191hzIaUafO/rjQrAeONwqDSKbA=";
    })
    # Fixes for building calligra with modern poppler[-qt5]
    (fetchpatch {
      name = "calligra-poppler-22.03.patch";
      url = "https://invent.kde.org/office/calligra/-/commit/236bacbe13739414e919de868283b0caf2df5d8a.patch";
      sha256 = "sha256-9DmKPCvEFy2Cs3g7350iOCF5Vrx1HL+/8jr+Tb44CyE=";
    })
    (fetchpatch {
      name = "calligra-poppler-22.04.patch";
      url = "https://invent.kde.org/office/calligra/-/commit/6b75bec784c9835c78993349845d8c2ef22ec3de.patch";
      sha256 = "sha256-z9/4he4x0WN2K/ZGrDAAtHF/W5X1PAtpeO6s7fgL/fA=";
    })
  ];
  postPatch = ''
    substituteInPlace CMakeLists.txt \
      --replace 'CMAKE_CXX_STANDARD 11' 'CMAKE_CXX_STANDARD 17'
  '';

  nativeBuildInputs = [
    extra-cmake-modules
    kdoctools
  ];

  buildInputs = [
  extraBuildInputs = [
    boost
    qtwebkit
    qtx11extras
    shared-mime-info
    kactivities
    karchive
    kcodecs
    kcompletion
    kconfig
    kconfigwidgets
    kcoreaddons
    kdbusaddons
    kdiagram
    kguiaddons
    khtml
    ki18n
    kiconthemes
    kitemviews
    kjobwidgets
    kcmutils
    kdelibs4support
    kio
    kross
    knotifications
    knotifyconfig
    kparts
    ktextwidgets
    kwallet
    kwidgetsaddons
    kwindowsystem
    kxmlgui
    sonnet
    threadweaver
    kcontacts
    akonadi
    akonadi-calendar
    akonadi-contacts
    eigen
    git
    gsl
    ilmbase
    kproperty
    kreport
    lcms2
    marble
    pcre
    imath
    libetonyek
    libgit2
    libodfgen
    librevenge
@@ -172,42 +43,34 @@ mkDerivation rec {
    libwpg
    libwps
    okular
    openexr
    openjpeg
    phonon
    poppler
    qca-qt5
    vc
    fontconfig
    qtkeychain
    qtsvg
  ];

  propagatedUserEnvPkgs = [ kproperty ];

  env.NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR";
  extraNativeBuildInputs = [
    perl
    pkg-config
  ];

  qtWrapperArgs = [
    "--prefix PATH : ${lib.getBin pstoedit}/bin"
    "--prefix XDG_DATA_DIRS : ${breeze-icons}/share"
  # Recommended by the upstream packaging instructions. RELEASE_BUILD disables
  # unmaintained components, like Braindump, from being built, and KDE_NO_DEBUG_OUTPUT
  # is supposed to improve performance in the finished package.
  extraCmakeFlags = [
    (lib.cmakeBool "RELEASE_BUILD" true)
    (lib.cmakeFeature "CMAKE_CXX_FLAGS" "-DKDE_NO_DEBUG_OUTPUT")
  ];

  meta = with lib; {
    description = "Suite of productivity applications";
    longDescription = ''
      Calligra Suite is a set of applications written to help
      you to accomplish your work. Calligra includes efficient
      and capable office components: Words for text processing,
      Sheets for computations, Plan for planning, and Karbon for
      vector graphics.
    '';
    homepage = "https://www.calligra.org/";
    maintainers = with maintainers; [
  meta = {
    maintainers = with lib.maintainers; [
      ebzzry
      zraexy
      sigmasquadron
    ];
    platforms = platforms.linux;
    license = with licenses; [
    license = with lib.licenses; [
      gpl2
      lgpl2
    ];
    mainProgram = "calligralauncher";
  };
}