416 lines
12 KiB
Nix
416 lines
12 KiB
Nix
# Maintainer's Notes:
|
|
#
|
|
# Minor updates:
|
|
# 1. Edit ./manifest.sh to point to the updated URL. Upstream sometimes
|
|
# releases updates that include only the changed packages; in this case,
|
|
# multiple URLs can be provided and the results will be merged.
|
|
# 2. Run ./manifest.sh and ./dependencies.sh.
|
|
# 3. Build and enjoy.
|
|
#
|
|
# Major updates:
|
|
# We prefer not to immediately overwrite older versions with major updates, so
|
|
# make a copy of this directory first. After copying, be sure to delete ./tmp
|
|
# if it exists. Then follow the minor update instructions.
|
|
|
|
{ autonix, symlinkJoin, kde4, kf5, pkgs, qt4, qt5, stdenv, callPackage, debug ? false }:
|
|
|
|
with stdenv.lib; with autonix;
|
|
|
|
let kf5Orig = kf5; in
|
|
|
|
let
|
|
|
|
kf5 = kf5Orig.override { inherit debug qt5; };
|
|
|
|
mirror = "mirror://kde";
|
|
|
|
renames =
|
|
(builtins.removeAttrs
|
|
(import ./renames.nix {})
|
|
["Backend" "CTest"])
|
|
// {
|
|
"KDE4" = "kdelibs";
|
|
"KF5KDEGames" = "libkdegames";
|
|
"Kexiv2" = "libkexiv2";
|
|
"Kdcraw" = "libkdcraw";
|
|
"Kipi" = "libkipi";
|
|
"LibKonq" = "kde-baseapps";
|
|
"Marble" = "marble";
|
|
};
|
|
|
|
mkDerivation = drv: kf5.mkDerivation (drv // {
|
|
preHook = (drv.preHook or "") + ''
|
|
addQt4Plugins() {
|
|
if [[ -d "$1/lib/qt4/plugins" ]]; then
|
|
propagatedUserEnvPkgs+=" $1"
|
|
fi
|
|
|
|
if [[ -d "$1/lib/kde4/plugins" ]]; then
|
|
propagatedUserEnvPkgs+=" $1"
|
|
fi
|
|
}
|
|
|
|
envHooks+=(addQt4Plugins)
|
|
'';
|
|
});
|
|
|
|
scope =
|
|
# packages in this collection
|
|
(mapAttrs (dep: name: kdeApps."${name}") renames) //
|
|
# packages from KDE Frameworks 5
|
|
kf5.scope //
|
|
# packages from nixpkgs
|
|
(with pkgs;
|
|
{
|
|
ACL = acl;
|
|
AccountsQt5 = accounts-qt.override { inherit qt5; };
|
|
Akonadi = kde4.akonadi;
|
|
Alsa = alsaLib;
|
|
Automoc4 = automoc4;
|
|
Avahi = avahi;
|
|
BISON = bison;
|
|
Baloo = kde4.baloo;
|
|
Boost = boost156;
|
|
CFitsio = cfitsio;
|
|
CUPS = cups;
|
|
Canberra = libcanberra;
|
|
Cdparanoia = cdparanoia;
|
|
DBusMenuQt = libdbusmenu_qt;
|
|
DjVuLibre = djvulibre;
|
|
ENCHANT = enchant;
|
|
EPub = ebook_tools;
|
|
Eigen2 = eigen2;
|
|
Eigen3 = eigen;
|
|
Exiv2 = exiv2;
|
|
FAM = fam;
|
|
FFmpeg = ffmpeg;
|
|
Flac = flac;
|
|
FLEX = flex;
|
|
Freetype = freetype;
|
|
GMP = gmp;
|
|
Gettext = gettext;
|
|
Gpgme = gpgme;
|
|
Gphoto2 = libgphoto2;
|
|
Grantlee = grantlee;
|
|
Grantlee5 = grantlee5;
|
|
GSL = gsl;
|
|
HUNSPELL = hunspell;
|
|
HUpnp = herqq;
|
|
INDI = indilib;
|
|
Intltool = intltool;
|
|
Jasper = jasper;
|
|
KActivities = kde4.kactivities;
|
|
KDEGames = kde4.libkdegames;
|
|
LCMS2 = lcms2;
|
|
Ldap = openldap;
|
|
LibAttica = attica;
|
|
LibGcrypt = libgcrypt;
|
|
LibKMahjongg = kde4.libkmahjongg;
|
|
LibSSH = libssh;
|
|
LibSpectre = libspectre;
|
|
LibVNCServer = libvncserver;
|
|
Libical = libical;
|
|
MusicBrainz3 = libmusicbrainz;
|
|
NetworkManager = networkmanager;
|
|
OggVorbis = libvorbis;
|
|
OpenAL = openal;
|
|
OpenEXR = openexr;
|
|
Poppler = poppler_qt4;
|
|
Prison = prison;
|
|
PulseAudio = pulseaudio;
|
|
PythonLibrary = python;
|
|
Qalculate = libqalculate;
|
|
QCA2 = qca2;
|
|
Qca-qt5 = qca-qt5.override { inherit qt5; };
|
|
QImageBlitz = qimageblitz;
|
|
QJSON = qjson;
|
|
Qt4 = qt4;
|
|
Samba = samba;
|
|
Sasl2 = cyrus_sasl;
|
|
SharedDesktopOntologies = shared_desktop_ontologies;
|
|
SignOnQt5 = signon.override { inherit qt5; };
|
|
SndFile = libsndfile;
|
|
Speechd = speechd;
|
|
TIFF = libtiff;
|
|
Taglib = taglib;
|
|
TelepathyQt4 = telepathy_qt;
|
|
TelepathyQt5 = telepathy_qt5;
|
|
TunePimp = libtunepimp;
|
|
UDev = udev;
|
|
USB = libusb;
|
|
Xplanet = xplanet;
|
|
Xscreensaver = xscreensaver;
|
|
Xsltproc = libxslt;
|
|
}
|
|
);
|
|
|
|
qt5Only = tgt:
|
|
let qt4Deps = [ "KDE4" "Phonon" ];
|
|
in mapAttrs (name: if name == tgt then removePkgDeps qt4Deps else id);
|
|
|
|
preResolve = super:
|
|
fold (f: x: f x) super
|
|
[
|
|
(qt5Only "kmix")
|
|
(userEnvPkg "SharedMimeInfo")
|
|
(userEnvPkg "SharedDesktopOntologies")
|
|
(blacklist ["artikulate"]) # build failure, wrong boost?
|
|
(blacklist ["kde-dev-scripts" "kde-dev-utils"]) # docbook errors
|
|
(blacklist ["kdewebdev"]) # unknown build failure
|
|
];
|
|
|
|
l10nPkgQt4 = orig:
|
|
let drvName = builtins.parseDrvName orig.name; in
|
|
mkDerivation {
|
|
name = "${drvName.name}-qt4-${drvName.version}";
|
|
inherit (orig) src;
|
|
buildInputs = [ kdeApps.kdelibs ];
|
|
nativeBuildInputs = with pkgs; [ cmake gettext perl ];
|
|
preConfigure = ''
|
|
cd 4/
|
|
'';
|
|
};
|
|
|
|
l10nPkgQt5 = orig:
|
|
let drvName = builtins.parseDrvName orig.name; in
|
|
mkDerivation {
|
|
name = "${drvName.name}-qt5-${drvName.version}";
|
|
inherit (orig) src;
|
|
buildInputs = with kf5; [ kdoctools ki18n ];
|
|
nativeBuildInputs = with pkgs; [ cmake kf5.extra-cmake-modules gettext perl ];
|
|
preConfigure = ''
|
|
cd 5/
|
|
'';
|
|
};
|
|
|
|
l10nPkg = name: orig: symlinkJoin orig.name [(l10nPkgQt4 orig) (l10nPkgQt5 orig)];
|
|
|
|
removeL10nPkgs = filterAttrs (n: v: !(hasPrefix "kde-l10n") n);
|
|
|
|
postResolve = super:
|
|
(removeL10nPkgs super) // {
|
|
|
|
ark = with pkgs; super.ark // {
|
|
buildInputs = (super.ark.buildInputs or []) ++ [ makeWrapper ];
|
|
postInstall = ''
|
|
wrapProgram $out/bin/ark --prefix PATH : "${unzipNLS}/bin"
|
|
'';
|
|
};
|
|
|
|
ffmpegthumbs = with pkgs; super.ffmpegthumbs // {
|
|
nativeBuildInputs = super.ffmpegthumbs.nativeBuildInputs ++ [pkgconfig];
|
|
};
|
|
|
|
kaccounts-providers = super.kaccounts-providers // {
|
|
buildInputs = super.kaccounts-providers.buildInputs
|
|
++ (with pkgs; [ libaccounts-glib ]);
|
|
preConfigure = ''
|
|
${super.kaccounts-providers.preConfigure or ""}
|
|
substituteInPlace webkit-options/CMakeLists.txt \
|
|
--replace "/etc/signon-ui/webkit-options.d/" "$out/etc/signon-ui/webkit-options.d/"
|
|
'';
|
|
};
|
|
|
|
kalzium = with pkgs; super.kalzium // {
|
|
nativeBuildInputs = super.kalzium.nativeBuildInputs ++ [pkgconfig];
|
|
};
|
|
|
|
kate = super.kate // {
|
|
buildInputs =
|
|
super.kate.buildInputs
|
|
++ (with kf5; [ kconfig kguiaddons kiconthemes ki18n kinit kjobwidgets
|
|
kio kparts ktexteditor kwindowsystem kxmlgui ]);
|
|
nativeBuildInputs = super.kate.nativeBuildInputs ++ (with kf5; [ kdoctools ]);
|
|
};
|
|
|
|
kde-runtime = with pkgs; super.kde-runtime // {
|
|
buildInputs =
|
|
super.kde-runtime.buildInputs ++ [libcanberra];
|
|
nativeBuildInputs =
|
|
super.kde-runtime.nativeBuildInputs ++ [pkgconfig];
|
|
NIX_CFLAGS_COMPILE =
|
|
(super.kde-runtime.NIX_CFLAGS_COMPILE or "")
|
|
+ " -I${ilmbase}/include/OpenEXR";
|
|
meta = { priority = 10; };
|
|
};
|
|
|
|
kde-workspace = with pkgs; super.kde-workspace // {
|
|
buildInputs = with xlibs;
|
|
super.kde-workspace.buildInputs
|
|
++
|
|
[
|
|
libxkbfile libXcomposite xcbutilimage xcbutilkeysyms
|
|
xcbutilrenderutil
|
|
];
|
|
nativeBuildInputs =
|
|
super.kde-workspace.nativeBuildInputs
|
|
++ [ pkgconfig ];
|
|
meta = { priority = 10; };
|
|
};
|
|
|
|
kdelibs = with pkgs; super.kdelibs // {
|
|
buildInputs =
|
|
super.kdelibs.buildInputs ++ [ attr libxslt polkit_qt4 xz ];
|
|
|
|
nativeBuildInputs =
|
|
super.kdelibs.nativeBuildInputs ++ [ pkgconfig ];
|
|
|
|
NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
|
|
|
|
propagatedBuildInputs =
|
|
super.kdelibs.propagatedBuildInputs ++ [ qt4 soprano phonon strigi ];
|
|
|
|
propagatedNativeBuildInputs =
|
|
super.kdelibs.propagatedNativeBuildInputs
|
|
++ [ automoc4 cmake perl shared_mime_info ];
|
|
|
|
patches = [ ./kdelibs/polkit-install.patch ];
|
|
|
|
cmakeFlags = [
|
|
"-DDOCBOOKXML_CURRENTDTD_DIR=${docbook_xml_dtd_42}/xml/dtd/docbook"
|
|
"-DDOCBOOKXSL_DIR=${docbook_xsl}/xml/xsl/docbook"
|
|
"-DHUPNP_ENABLED=ON"
|
|
"-DWITH_SOLID_UDISKS2=ON"
|
|
"-DKDE_DEFAULT_HOME=.kde"
|
|
];
|
|
};
|
|
|
|
kdenlive =
|
|
let mlt = pkgs.mlt-qt5.override { inherit qt5; };
|
|
in super.kdenlive // {
|
|
buildInputs = super.kdenlive.buildInputs ++ [ mlt ];
|
|
};
|
|
|
|
kdepim = with pkgs; super.kdepim // {
|
|
buildInputs =
|
|
super.kdepim.buildInputs ++ [ gpgme libassuan ];
|
|
nativeBuildInputs =
|
|
super.kdepim.nativeBuildInputs ++ [ pkgconfig ];
|
|
};
|
|
|
|
kdepimlibs = with pkgs; super.kdepimlibs // {
|
|
nativeBuildInputs =
|
|
super.kdepimlibs.nativeBuildInputs ++ [ pkgconfig ];
|
|
};
|
|
|
|
kdesdk-thumbnailers = with pkgs; super.kdesdk-thumbnailers // {
|
|
nativeBuildInputs =
|
|
super.kdesdk-thumbnailers.nativeBuildInputs
|
|
++ [gettext];
|
|
};
|
|
|
|
kgpg = with pkgs; super.kgpg // {
|
|
buildInputs = super.kgpg.buildInputs ++ [boost];
|
|
};
|
|
|
|
khangman = super.khangman // {
|
|
buildInputs =
|
|
super.khangman.buildInputs
|
|
++ [ kf5.kio ];
|
|
};
|
|
|
|
kmix = with pkgs; super.kmix // {
|
|
nativeBuildInputs = super.kmix.nativeBuildInputs ++ [pkgconfig];
|
|
cmakeFlags = [ "-DKMIX_KF5_BUILD=ON" ];
|
|
};
|
|
|
|
kmousetool = with pkgs; super.kmousetool // {
|
|
buildInputs = with xlibs;
|
|
super.kmousetool.buildInputs
|
|
++ [libXtst libXt];
|
|
};
|
|
|
|
kremotecontrol = with pkgs; super.kremotecontrol // {
|
|
buildInputs = super.kremotecontrol.buildInputs ++ [xlibs.libXtst];
|
|
};
|
|
|
|
krfb = super.krfb // {
|
|
buildInputs =
|
|
super.krfb.buildInputs
|
|
++ [pkgs.xlibs.libXtst kdeApps.ktp-common-internals];
|
|
};
|
|
|
|
kstars = super.kstars // {
|
|
buildInputs =
|
|
super.kstars.buildInputs
|
|
++ (with kf5; [ kparts ])
|
|
++ [ pkgs.cfitsio ];
|
|
};
|
|
|
|
ktp-accounts-kcm = super.ktp-accounts-kcm // {
|
|
buildInputs =
|
|
super.ktp-accounts-kcm.buildInputs
|
|
++ [ pkgs.libaccounts-glib ];
|
|
};
|
|
|
|
ktp-common-internals = super.ktp-common-internals // {
|
|
buildInputs =
|
|
super.ktp-common-internals.buildInputs
|
|
++ (with kf5; [ kdelibs4support kparts ])
|
|
++ [ pkgs.libotr ]; # needed for ktp-text-ui
|
|
};
|
|
|
|
lokalize = super.lokalize // {
|
|
buildInputs =
|
|
super.lokalize.buildInputs
|
|
++ [ kf5.kdbusaddons ];
|
|
};
|
|
|
|
libkdcraw = with pkgs; super.libkdcraw // {
|
|
buildInputs = super.libkdcraw.buildInputs ++ [scope.KDE4 libraw];
|
|
nativeBuildInputs = super.libkdcraw.nativeBuildInputs ++ [pkgconfig];
|
|
};
|
|
|
|
libkexiv2 = with pkgs; super.libkexiv2 // {
|
|
buildInputs = super.libkexiv2.buildInputs ++ [exiv2 scope.KDE4];
|
|
};
|
|
|
|
libkface = with pkgs; super.libkface // {
|
|
buildInputs = super.libkface.buildInputs ++ [scope.KDE4 opencv];
|
|
};
|
|
|
|
libkgeomap = super.libkgeomap // {
|
|
cmakeFlags =
|
|
(super.libkgeomap.cmakeFlags or [])
|
|
++ [
|
|
"-DCMAKE_MODULE_PATH=${kdeApps.marble}/share/apps/cmake/modules"
|
|
];
|
|
};
|
|
|
|
libkipi = with pkgs; super.libkipi // {
|
|
buildInputs = super.libkipi.buildInputs ++ [scope.KDE4];
|
|
};
|
|
|
|
libksane = with pkgs; super.libksane // {
|
|
buildInputs = super.libksane.buildInputs ++ [scope.KDE4 saneBackends];
|
|
};
|
|
|
|
rocs = super.rocs // {
|
|
buildInputs = super.rocs.buildInputs ++ (with kf5; [ kdelibs4support ]);
|
|
};
|
|
|
|
signon-kwallet-extension =
|
|
let signon = pkgs.signon.override { inherit qt5; };
|
|
in super.signon-kwallet-extension // {
|
|
buildInputs = super.signon-kwallet-extension.buildInputs ++ [ signon ];
|
|
preConfigure = ''
|
|
${super.signon-kwallet-extension.preConfigure or ""}
|
|
sed -e "s,\''${SIGNONEXTENSION_PLUGINDIR},$out/lib/signon/extensions," \
|
|
-i src/CMakeLists.txt
|
|
'';
|
|
};
|
|
|
|
};
|
|
|
|
l10nManifest =
|
|
filterAttrs
|
|
(n: v: hasPrefix "kde-l10n" n)
|
|
(importManifest ./manifest.nix { inherit mirror; });
|
|
|
|
kdeApps = generateCollection ./. {
|
|
inherit mkDerivation;
|
|
inherit mirror preResolve postResolve renames scope;
|
|
};
|
|
|
|
in kdeApps // (mapAttrs l10nPkg l10nManifest)
|