nixpkgs/pkgs/applications/office/calligra/default.nix
Artturin f9fdf2d402 treewide: move NIX_CFLAGS_COMPILE to the env attrset
with structuredAttrs lists will be bash arrays which cannot be exported
which will be a issue with some patches and some wrappers like cc-wrapper

this makes it clearer that NIX_CFLAGS_COMPILE must be a string as lists
in env cause a eval failure
2023-02-22 21:23:04 +02:00

93 lines
3.9 KiB
Nix

{ mkDerivation, 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, libgit2, libodfgen
, librevenge, libvisio, libwpd, libwpg, libwps, okular, openexr, openjpeg, phonon
, poppler, pstoedit, qca-qt5, vc, fontconfig
# TODO: package Spnav, m2mml LibEtonyek, Libqgit2
}:
mkDerivation rec {
pname = "calligra";
version = "3.2.1";
src = fetchurl {
url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
sha256 = "0iqi6z6gkck2afgy200dacgcspq7i7887alcj0pklm08hbmsdy5i";
};
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 = [
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 libgit2 libodfgen librevenge
libvisio libwpd libwpg libwps okular openexr openjpeg phonon poppler qca-qt5 vc
fontconfig
];
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"
];
meta = with lib; {
description = "A 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; [ ebzzry zraexy ];
platforms = platforms.linux;
license = with licenses; [ gpl2 lgpl2 ];
};
}