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,
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";
qtWrapperArgs = [
"--prefix PATH : ${lib.getBin pstoedit}/bin"
"--prefix XDG_DATA_DIRS : ${breeze-icons}/share"
extraNativeBuildInputs = [
perl
pkg-config
];
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; [
# 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 = {
maintainers = with lib.maintainers; [
ebzzry
zraexy
sigmasquadron
];
platforms = platforms.linux;
license = with licenses; [
license = with lib.licenses; [
gpl2
lgpl2
];
mainProgram = "calligralauncher";
};
}