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: Fernando Rodrigues <alpha@sigmasquadron.net>
This commit is contained in:
Fernando Rodrigues 2024-09-27 18:49:22 +00:00
parent 5bcdd2ec44
commit faa4fdb825
No known key found for this signature in database
GPG Key ID: CC3AE2EA00000000

View File

@ -1,57 +1,11 @@
{ {
mkDerivation, mkKdeDerivation,
lib, lib,
fetchpatch,
fetchurl, fetchurl,
extra-cmake-modules,
kdoctools,
boost, 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, eigen,
git, imath,
gsl, libetonyek,
ilmbase,
kproperty,
kreport,
lcms2,
marble,
pcre,
libgit2, libgit2,
libodfgen, libodfgen,
librevenge, librevenge,
@ -60,110 +14,27 @@
libwpg, libwpg,
libwps, libwps,
okular, okular,
openexr, perl,
openjpeg, pkg-config,
phonon,
poppler, poppler,
pstoedit, qtkeychain,
qca-qt5, qtsvg,
vc,
fontconfig,
# TODO: package Spnav, m2mml LibEtonyek, Libqgit2
}: }:
mkDerivation rec { mkKdeDerivation rec {
pname = "calligra"; pname = "calligra";
version = "3.2.1"; version = "4.0.1";
src = fetchurl { src = fetchurl {
url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz"; url = "mirror://kde/stable/calligra/calligra-${version}.tar.xz";
sha256 = "0iqi6z6gkck2afgy200dacgcspq7i7887alcj0pklm08hbmsdy5i"; hash = "sha256-1AH15z9PG9wLNUjqGlCwrBd4we3jCmozWUTtf72I2V8=";
}; };
patches = [ extraBuildInputs = [
# 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 = [
boost 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 eigen
git imath
gsl libetonyek
ilmbase
kproperty
kreport
lcms2
marble
pcre
libgit2 libgit2
libodfgen libodfgen
librevenge librevenge
@ -172,42 +43,34 @@ mkDerivation rec {
libwpg libwpg
libwps libwps
okular okular
openexr
openjpeg
phonon
poppler poppler
qca-qt5 qtkeychain
vc qtsvg
fontconfig
]; ];
propagatedUserEnvPkgs = [ kproperty ]; extraNativeBuildInputs = [
perl
env.NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR"; pkg-config
qtWrapperArgs = [
"--prefix PATH : ${lib.getBin pstoedit}/bin"
"--prefix XDG_DATA_DIRS : ${breeze-icons}/share"
]; ];
meta = with lib; { # Recommended by the upstream packaging instructions. RELEASE_BUILD disables
description = "Suite of productivity applications"; # unmaintained components, like Braindump, from being built, and KDE_NO_DEBUG_OUTPUT
longDescription = '' # is supposed to improve performance in the finished package.
Calligra Suite is a set of applications written to help extraCmakeFlags = [
you to accomplish your work. Calligra includes efficient (lib.cmakeBool "RELEASE_BUILD" true)
and capable office components: Words for text processing, (lib.cmakeFeature "CMAKE_CXX_FLAGS" "-DKDE_NO_DEBUG_OUTPUT")
Sheets for computations, Plan for planning, and Karbon for ];
vector graphics.
''; meta = {
homepage = "https://www.calligra.org/"; maintainers = with lib.maintainers; [
maintainers = with maintainers; [
ebzzry ebzzry
zraexy zraexy
sigmasquadron
]; ];
platforms = platforms.linux; license = with lib.licenses; [
license = with licenses; [
gpl2 gpl2
lgpl2 lgpl2
]; ];
mainProgram = "calligralauncher";
}; };
} }