autonix: JSON manifest format

This commit is contained in:
Thomas Tuegel 2015-06-18 14:25:51 -05:00
parent 0aa8e64967
commit 8862d8d9c9
6 changed files with 494 additions and 502 deletions

View File

@ -12,23 +12,23 @@
# make a copy of this directory first. After copying, be sure to delete ./tmp # make a copy of this directory first. After copying, be sure to delete ./tmp
# if it exists. Then follow the minor update instructions. # if it exists. Then follow the minor update instructions.
{ autonix, symlinkJoin, kde4, kf5, pkgs, qt4, qt5, stdenv, newScope, debug ? false }: { pkgs, newScope, kf5 ? null, plasma5 ? null, qt5 ? null, debug ? false }:
with autonix; let inherit (pkgs) autonix kde4 stdenv symlinkJoin; in
let inherit (stdenv) lib; in with autonix; let inherit (stdenv) lib; in
let kf5Orig = kf5; in let
kf5_ = if kf5 != null then kf5 else pkgs.kf510;
plasma5_ = if plasma5 != null then plasma5 else pkgs.plasma53;
qt5_ = if qt5 != null then qt5 else pkgs.qt54;
in
let let
kf5 = kf5Orig.override { inherit debug qt5; }; kf5 = kf5_.override { inherit debug qt5; };
plasma5 = plasma5_.override { inherit debug kf5 qt5; };
kdePackage = pkg: qt5 = qt5_;
(kf5.kdePackage pkg).override {
inherit (stdenv) mkDerivation;
inherit scope;
};
kdeOrL10nPackage = name: pkg: kdeOrL10nPackage = name: pkg:
assert (builtins.isAttrs pkg); assert (builtins.isAttrs pkg);
@ -124,53 +124,58 @@ let
(lib.mapAttrs mirrorUrl) (lib.mapAttrs mirrorUrl)
]; ];
overrideDerivation = pkg: f: kde4Package = pkg: overrideScope pkg (with kde4; {
let mkDerivation = super: drv: super.mkDerivation (drv // f drv); inherit akonadi baloo kactivities libkdegames libkmahjongg;
in pkg.override (super: super // { mkDerivation = mkDerivation super; }); kde4 = self.kdelibs;
});
scope = scope =
# KDE Frameworks 5
kf5 //
# packages in this collection # packages in this collection
self // self //
{ {
kf5baloo = plasma5.baloo;
kf5kdcraw = self.libkdcraw;
kf5kdegames = self.libkdegames; kf5kdegames = self.libkdegames;
kf5kipi = self.libkipi;
libkonq = self.kde-baseapps; libkonq = self.kde-baseapps;
} // } //
# packages from KDE Frameworks 5
kf5.scope //
# packages requiring same Qt 5 # packages requiring same Qt 5
(with pkgs; { (with pkgs; {
accountsqt5 = accounts-qt.override { inherit qt5; }; accountsqt5 = accounts-qt.override { inherit qt5; };
dbusmenuqt = libdbusmenu_qt; dbusmenuqt = libdbusmenu_qt;
grantlee5 = grantlee5.override { inherit qt5; }; grantlee5 = grantlee5.override { inherit qt5; };
mlt = pkgs.mlt-qt5.override { inherit qt5; }; mlt = pkgs.mlt-qt5.override { inherit qt5; };
phonon4qt5 = pkgs.phonon_qt5.override { inherit qt5; };
qca-qt5 = qca-qt5.override { inherit qt5; }; qca-qt5 = qca-qt5.override { inherit qt5; };
qt5script = qt5.script;
qt5x11extras = qt5.x11extras;
signonqt5 = signon.override { inherit qt5; }; signonqt5 = signon.override { inherit qt5; };
telepathyqt5 = telepathy_qt5.override { inherit qt5; }; telepathyqt5 = telepathy_qt5.override { inherit qt5; };
}) // }) //
# packages from KDE 4
(with kde4; {
inherit akonadi baloo kactivities libkdegames libkmahjongg;
kde4 = self.kdelibs;
}) //
# packages from nixpkgs # packages from nixpkgs
(with pkgs; { (with pkgs; {
inherit acl attr automoc4 avahi bison cdparanoia cfitsio cups inherit acl attr automoc4 avahi bison cdparanoia cfitsio cmake cups
djvulibre docbook_xml_dtd_42 docbook_xsl enchant eigen2 djvulibre docbook_xml_dtd_42 docbook_xsl enchant eigen2
exiv2 fam ffmpeg flac flex freetype gmp gettext gpgme exiv2 fam ffmpeg flac flex freetype gmp gettext gpgme
grantlee gsl hunspell ilmbase intltool jasper lcms2 grantlee gsl hunspell ilmbase intltool jasper lcms2
libgcrypt libraw libssh libspectre libvncserver libical libaccounts-glib libgcrypt libotr libraw libssh libspectre
networkmanager openal opencv openexr phonon pkgconfig libvncserver libical networkmanager openal opencv
polkit_qt4 prison python qca2 qimageblitz qjson qt4 openexr perl phonon pkgconfig polkit_qt4 prison python qca2
samba saneBackends soprano qimageblitz qjson qt4 samba saneBackends soprano speechd
speechd strigi taglib udev xplanet xscreensaver xz; strigi taglib udev xlibs xplanet xscreensaver xz;
alsa = alsaLib; alsa = alsaLib;
assuan = libassuan; assuan = libassuan;
boost = boost156; boost = boost156;
canberra = libcanberra; canberra = libcanberra;
eigen3 = eigen;
epub = ebook_tools; epub = ebook_tools;
gif = giflib;
gphoto2 = libgphoto2; gphoto2 = libgphoto2;
hupnp = herqq; hupnp = herqq;
indi = indilib; indi = indilib;
jpeg = libjpeg;
ldap = openldap; ldap = openldap;
libattica = attica; libattica = attica;
musicbrainz3 = libmusicbrainz; musicbrainz3 = libmusicbrainz;
@ -180,6 +185,7 @@ let
qalculate = libqalculate; qalculate = libqalculate;
sasl2 = cyrus_sasl; sasl2 = cyrus_sasl;
shareddesktopontologies = shared_desktop_ontologies; shareddesktopontologies = shared_desktop_ontologies;
sharedmimeinfo = shared_mime_info;
sndfile = libsndfile; sndfile = libsndfile;
tiff = libtiff; tiff = libtiff;
telepathyqt4 = telepathy_qt; telepathyqt4 = telepathy_qt;
@ -189,212 +195,330 @@ let
}); });
self = self =
(builtins.removeAttrs super [ "artikulate" # build failure; wrong boost? (builtins.removeAttrs super [
"artikulate" # build failure; wrong boost?
"kde-dev-scripts" "kde-dev-utils" # docbook errors "kde-dev-scripts" "kde-dev-utils" # docbook errors
"kdewebdev" # unknown build failure "kdewebdev" # unknown build failure
"kde-l10n-sr" # missing CMake command
]) // { ]) // {
inherit kdePackage qt5 scope; audiocd-kio = kde4Package super.audiocd-kio;
ark = overrideDerivation super.ark (drv: { amor = kde4Package super.amor;
buildInputs = (drv.buildInputs or []) ++ [ pkgs.makeWrapper ];
ark = extendDerivation (kde4Package super.ark) {
buildInputs = [ pkgs.makeWrapper ];
# runtime dependency # runtime dependency
postInstall = (drv.postInstall or "") + '' postInstall = ''
wrapProgram $out/bin/ark --prefix PATH : "${pkgs.unzipNLS}/bin" wrapProgram $out/bin/ark --prefix PATH : "${pkgs.unzipNLS}/bin"
''; '';
}); };
ffmpegthumbs = overrideDerivation super.ffmpegthumbs (drv: { cervisia = kde4Package super.cervisia;
nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
});
kaccounts-providers = overrideDerivation super.kaccounts-providers (drv: { dolphin-plugins = kde4Package super.dolphin-plugins;
buildInputs = (drv.buildInputs or []) ++ [ pkgs.libaccounts-glib ];
dragon = kde4Package super.dragon;
ffmpegthumbs = extendDerivation (kde4Package super.ffmpegthumbs) {
nativeBuildInputs = [ scope.pkgconfig ];
};
juk = kde4Package super.juk;
jovie = kde4Package super.jovie;
kaccessible = kde4Package super.kaccessible;
kaccounts-providers = extendDerivation super.kaccounts-providers {
buildInputs = [ pkgs.libaccounts-glib ];
# hard-coded install path # hard-coded install path
preConfigure = (drv.preConfigure or "") + '' preConfigure = ''
substituteInPlace webkit-options/CMakeLists.txt \ substituteInPlace webkit-options/CMakeLists.txt \
--replace "/etc/signon-ui/webkit-options.d/" \ --replace "/etc/signon-ui/webkit-options.d/" \
"$out/etc/signon-ui/webkit-options.d/" "$out/etc/signon-ui/webkit-options.d/"
''; '';
}); };
kalzium = overrideDerivation super.kalzium (drv: { kajongg = kde4Package super.kajongg;
nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
});
kate = overrideDerivation super.kate (drv: { kalzium = extendDerivation (kde4Package super.kalzium) {
buildInputs = nativeBuildInputs = [ scope.pkgconfig ];
(drv.buildInputs or []) };
++ (with kf5; [ kconfig kguiaddons kiconthemes ki18n kinit kjobwidgets
kio kparts ktexteditor kwindowsystem kxmlgui ]);
nativeBuildInputs = (drv.nativeBuildInputs or []) ++ ([ kf5.kdoctools ]);
});
/* kamera = kde4Package super.kamera;
kde-baseapps = overrideDerivation super.kde-baseapps (drv: {
buildInputs = (drv.buildInputs or []) ++ [ scope.qt4 ];
});
*/
kde-runtime = overrideDerivation super.kde-runtime (drv: { kate = extendDerivation super.kate {
buildInputs = (drv.buildInputs or []) ++ [ scope.canberra ]; buildInputs = with scope; [
nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ]; kconfig kguiaddons kiconthemes ki18n kinit kjobwidgets kio
kparts ktexteditor kwindowsystem kxmlgui
];
nativeBuildInputs = [ scope.kdoctools ];
};
kcachegrind = kde4Package super.kcachegrind;
kcolorchooser = kde4Package super.kcolorchooser;
kde-base-artwork = kde4Package super.kde-base-artwork;
kde-baseapps = kde4Package super.kde-baseapps;
kde-runtime = extendDerivation (kde4Package super.kde-runtime) {
buildInputs = [ scope.canberra ];
nativeBuildInputs = [ scope.pkgconfig ];
# cmake does not detect path to `ilmbase` # cmake does not detect path to `ilmbase`
NIX_CFLAGS_COMPILE = NIX_CFLAGS_COMPILE = "-I${scope.ilmbase}/include/OpenEXR";
(drv.NIX_CFLAGS_COMPILE or "") + " -I${scope.ilmbase}/include/OpenEXR";
# some components of this package have been replaced in other packages # some components of this package have been replaced in other packages
meta = { priority = 10; }; meta = { priority = 10; };
}); };
kde-workspace = overrideDerivation super.kde-workspace (drv: { kde-wallpapers = kde4Package super.kde-wallpapers;
buildInputs =
(drv.buildInputs or []) ++ kde-workspace = extendDerivation (kde4Package super.kde-workspace) {
(with pkgs.xlibs; [ buildInputs = with scope.xlibs; [
libxkbfile libXcomposite xcbutilimage xcbutilkeysyms xcbutilrenderutil libxkbfile libXcomposite xcbutilimage xcbutilkeysyms xcbutilrenderutil
]); ];
nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ]; nativeBuildInputs = [ scope.pkgconfig ];
# some components of this package have been replaced in other packages # some components of this package have been replaced in other packages
meta = { priority = 10; }; meta = { priority = 10; };
}); };
kdelibs = overrideDerivation super.kdelibs (drv: { kdeartwork = kde4Package super.kdeartwork;
buildInputs =
(drv.buildInputs or []) ++ (with scope; [ attr polkit_qt4 xsltproc xz ]);
nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ]; kdegraphics-mobipocket = kde4Package super.kdegraphics-mobipocket;
kdegraphics-strigi-analyzer = kde4Package super.kdegraphics-strigi-analyzer;
kdegraphics-thumbnailers = kde4Package super.kdegraphics-thumbnailers;
kdelibs = extendDerivation super.kdelibs {
buildInputs = with scope; [ attr polkit_qt4 xsltproc xz ];
propagatedBuildInputs = with scope; [ qt4 soprano phonon strigi ];
nativeBuildInputs = [ scope.pkgconfig ];
propagatedNativeBuildInputs = with scope; [
automoc4 cmake perl sharedmimeinfo
];
patches = [ ./kdelibs/polkit-install.patch ];
# cmake does not detect path to `ilmbase` # cmake does not detect path to `ilmbase`
NIX_CFLAGS_COMPILE = NIX_CFLAGS_COMPILE = "-I${scope.ilmbase}/include/OpenEXR";
(drv.NIX_CFLAGS_COMPILE or "") + " -I${scope.ilmbase}/include/OpenEXR";
propagatedBuildInputs = cmakeFlags = [
(drv.propagatedBuildInputs or [])
++ (with scope; [ qt4 soprano phonon strigi ]);
propagatedNativeBuildInputs =
(drv.propagatedNativeBuildInputs or [])
++ (with scope; [ automoc4 cmake perl sharedmimeinfo ]);
patches = (drv.patches or []) ++ [ ./kdelibs/polkit-install.patch ];
cmakeFlags = (drv.cmakeFlags or []) ++ [
"-DDOCBOOKXML_CURRENTDTD_DIR=${scope.docbook_xml_dtd_42}/xml/dtd/docbook" "-DDOCBOOKXML_CURRENTDTD_DIR=${scope.docbook_xml_dtd_42}/xml/dtd/docbook"
"-DDOCBOOKXSL_DIR=${scope.docbook_xsl}/xml/xsl/docbook" "-DDOCBOOKXSL_DIR=${scope.docbook_xsl}/xml/xsl/docbook"
"-DHUPNP_ENABLED=ON" "-DHUPNP_ENABLED=ON"
"-DWITH_SOLID_UDISKS2=ON" "-DWITH_SOLID_UDISKS2=ON"
"-DKDE_DEFAULT_HOME=.kde" "-DKDE_DEFAULT_HOME=.kde"
]; ];
}); };
kdenlive = overrideDerivation super.kdenlive (drv: { kdenetwork-filesharing = kde4Package super.kdenetwork-filesharing;
buildInputs = (drv.buildInputs or []) ++ [ scope.mlt ];
});
kdepim = overrideDerivation super.kdepim (drv: { kdenetwork-strigi-analyzers = kde4Package super.kdenetwork-strigi-analyzers;
buildInputs = (drv.buildInputs or []) ++ (with scope; [ gpgme assuan ]);
nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
});
kdepimlibs = overrideDerivation super.kdepimlibs (drv: { kdenlive = extendDerivation super.kdenlive { buildInputs = [ scope.mlt ]; };
nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
});
kdesdk-thumbnailers = overrideDerivation super.kdesdk-thumbnailers (drv: { kdepim = extendDerivation (kde4Package super.kdepim) {
nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.gettext ]; buildInputs = with scope; [ gpgme assuan ];
}); nativeBuildInputs = [ scope.pkgconfig ];
};
kgpg = overrideDerivation super.kgpg (drv: { kdepim-runtime = kde4Package super.kdepim-runtime;
buildInputs = (drv.buildInputs or []) ++ [ scope.boost ];
});
khangman = overrideDerivation super.khangman (drv: { kdepimlibs = extendDerivation (kde4Package super.kdepimlibs) {
buildInputs = (drv.buildInputs or []) ++ [ kf5.kio ]; nativeBuildInputs = [ scope.pkgconfig ];
}); };
kmix = overrideDerivation super.kmix (drv: { kdesdk-kioslaves = kde4Package super.kdesdk-kioslaves;
nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
cmakeFlags = (drv.cmakeFlags or []) ++ [ "-DKMIX_KF5_BUILD=ON" ];
});
kmousetool = overrideDerivation super.kmousetool (drv: { kdesdk-strigi-analyzers = kde4Package super.kdesdk-strigi-analyzers;
buildInputs = (drv.buildInputs or []) ++ (with pkgs.xlibs; [ libXtst libXt ]);
});
kremotecontrol = overrideDerivation super.kremotecontrol (drv: { kdesdk-thumbnailers =
buildInputs = (drv.buildInputs or []) ++ [ pkgs.xlibs.libXtst ]; extendDerivation (kde4Package super.kdesdk-thumbnailers) {
}); nativeBuildInputs = [ scope.gettext ];
};
krfb = overrideDerivation super.krfb (drv: { kdf = kde4Package super.kdf;
buildInputs =
(drv.buildInputs or [])
++ [ pkgs.xlibs.libXtst scope.ktp-common-internals ];
});
kstars = overrideDerivation super.kstars (drv: { kfloppy = kde4Package super.kfloppy;
buildInputs = (drv.buildInputs or []) ++ (with scope; [ kparts cfitsio ]);
});
ktp-accounts-kcm = overrideDerivation super.ktp-accounts-kcm (drv: { kgamma = kde4Package super.kgamma;
buildInputs = (drv.buildInputs or []) ++ [ pkgs.libaccounts-glib ];
});
ktp-common-internals = overrideDerivation super.ktp-common-internals (drv: { kget = kde4Package super.kget;
buildInputs =
(drv.buildInputs or [])
++ (with scope; [ kdelibs4support kparts ])
++ [ pkgs.libotr ]; # needed for ktp-text-ui
});
ktp-text-ui = overrideDerivation super.ktp-text-ui (drv: { kgoldrunner = kde4Package super.kgoldrunner;
buildInputs = (drv.buildInputs or []) ++ [ scope.kdbusaddons ];
});
lokalize = overrideDerivation super.lokalize (drv: { kgpg = extendDerivation (kde4Package super.kgpg) {
buildInputs = (drv.buildInputs or []) ++ [ scope.kdbusaddons ]; buildInputs = [ scope.boost ];
}); };
libkdcraw = overrideDerivation super.libkdcraw (drv: { khangman = extendDerivation super.khangman { buildInputs = [ scope.kio ]; };
buildInputs = (drv.buildInputs or []) ++ (with scope; [ kdelibs libraw ]);
nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
});
libkexiv2 = overrideDerivation super.libkexiv2 (drv: { kigo = kde4Package super.kigo;
buildInputs = (drv.buildInputs or []) ++ (with scope; [ exiv2 kdelibs ]);
});
libkface = overrideDerivation super.libkface (drv: { kiriki = kde4Package super.kiriki;
buildInputs = (drv.buildInputs or []) ++ (with scope; [ kdelibs opencv ]);
});
libkgeomap = overrideDerivation super.libkgeomap (drv: { klickety = kde4Package super.klickety;
kmag = kde4Package super.kmag;
kmahjongg = kde4Package super.kmahjongg;
kmix = extendDerivation super.kmix {
nativeBuildInputs = [ scope.pkgconfig ];
cmakeFlags = [ "-DKMIX_KF5_BUILD=ON" ];
};
kmousetool = extendDerivation (kde4Package super.kmousetool) {
buildInputs = with scope.xlibs; [ libXtst libXt ];
};
kmouth = kde4Package super.kmouth;
knavalbattle = kde4Package super.knavalbattle;
kolf = kde4Package super.kolf;
kolourpaint = kde4Package super.kolourpaint;
konquest = kde4Package super.konquest;
kopete = kde4Package super.kopete;
kppp = kde4Package super.kppp;
kqtquickcharts = kde4Package super.kqtquickcharts;
krdc = kde4Package super.krdc;
kremotecontrol = extendDerivation (kde4Package super.kremotecontrol) {
buildInputs = [ scope.xlibs.libXtst ];
};
kreversi = kde4Package super.kreversi;
krfb = extendDerivation (kde4Package super.krfb) {
buildInputs = with scope; [ xlibs.libXtst ktp-common-internals ];
};
ksaneplugin = kde4Package super.ksaneplugin;
kscd = kde4Package super.kscd;
ksirk = kde4Package super.ksirk;
ksnakeduel = kde4Package super.ksnakeduel;
ksnapshot = kde4Package super.ksnapshot;
kspaceduel = kde4Package super.kspaceduel;
kstars = extendDerivation super.kstars {
buildInputs = with scope; [ kparts cfitsio ];
};
ksudoku = kde4Package super.ksudoku;
ksystemlog = kde4Package super.ksystemlog;
ktp-accounts-kcm = extendDerivation super.ktp-accounts-kcm {
buildInputs = [ scope.libaccounts-glib ];
};
ktp-common-internals = extendDerivation super.ktp-common-internals {
buildInputs = with scope; [ kdelibs4support kparts libotr ];
};
ktp-text-ui = extendDerivation super.ktp-text-ui {
buildInputs = [ scope.kdbusaddons ];
};
ktuberling = kde4Package super.ktuberling;
ktux = kde4Package super.ktux;
kubrick = kde4Package super.kubrick;
kuser = kde4Package super.kuser;
kwalletmanager = kde4Package super.kwalletmanager;
lokalize = extendDerivation super.lokalize {
buildInputs = [ scope.kdbusaddons ];
};
libkcddb = kde4Package super.libkcddb;
libkcompactdisc = kde4Package super.libkcompactdisc;
libkdcraw = extendDerivation super.libkdcraw {
buildInputs = with scope; [ kdelibs libraw ];
nativeBuildInputs = [ scope.pkgconfig ];
};
libkdeedu = kde4Package super.libkdeedu;
libkexiv2 = extendDerivation super.libkexiv2 {
buildInputs = with scope; [ exiv2 kdelibs ];
};
libkface = extendDerivation super.libkface {
buildInputs = with scope; [ kdelibs opencv ];
};
libkgeomap = extendDerivation (kde4Package super.libkgeomap) {
cmakeFlags = cmakeFlags =
(drv.cmakeFlags or []) [ "-DCMAKE_MODULE_PATH=${scope.marble}/share/apps/cmake/modules" ];
++ [ "-DCMAKE_MODULE_PATH=${scope.marble}/share/apps/cmake/modules" ]; };
});
libkipi = overrideDerivation super.libkipi (drv: { libkipi = extendDerivation super.libkipi {
buildInputs = (drv.buildInputs or []) ++ [ scope.kdelibs ]; buildInputs = [ scope.kdelibs ];
}); };
libksane = overrideDerivation super.libksane (drv: { libksane = extendDerivation super.libksane {
buildInputs = (drv.buildInputs or []) ++ (with scope; [ kdelibs saneBackends]); buildInputs = with scope; [ kdelibs saneBackends];
}); };
okular = overrideDerivation super.okular (drv: { lskat = kde4Package super.lskat;
nativeBuildInputs = (drv.nativeBuildInputs or []) ++ [ scope.pkgconfig ];
});
rocs = overrideDerivation super.rocs (drv: { marble = kde4Package super.marble;
buildInputs = (drv.buildInputs or []) ++ [ scope.kdelibs4support ];
});
signon-kwallet-extension = mplayerthumbs = kde4Package super.mplayerthumbs;
overrideDerivation super.signon-kwallet-extension (drv: {
buildInputs = (drv.buildInputs or []) ++ [ scope.signonqt5 ]; okular = extendDerivation (kde4Package super.okular) {
preConfigure = (drv.preConfigure or "") + '' nativeBuildInputs = [ scope.pkgconfig ];
sed -i src/CMakeLists.txt \ };
-e "s,\''${SIGNONEXTENSION_PLUGINDIR},$out/lib/signon/extensions,"
''; pairs = kde4Package super.pairs;
});
palapeli = kde4Package super.palapeli;
picmi = kde4Package super.picmi;
poxml = kde4Package super.poxml;
rocs = extendDerivation super.rocs {
buildInputs = [ scope.kdelibs4support ];
};
signon-kwallet-extension = extendDerivation super.signon-kwallet-extension {
buildInputs = [ scope.signonqt5 ];
preConfigure = ''
sed -i src/CMakeLists.txt \
-e "s,\''${SIGNONEXTENSION_PLUGINDIR},$out/lib/signon/extensions,"
'';
};
superkaramba = kde4Package super.superkaramba;
svgpart = kde4Package super.svgpart;
sweeper = kde4Package super.sweeper;
umbrello = kde4Package super.umbrello;
zeroconf-ioslave = kde4Package super.zeroconf-ioslave;
}; };

View File

@ -1 +1,12 @@
addToSearchPath XDG_DATA_DIRS @out@/share addToSearchPath XDG_DATA_DIRS @out@/share
addQt4Plugins() {
if [[ -d "$1/lib/qt4/plugins" ]]; then
propagatedUserEnvPkgs+=" $1"
fi
if [[ -d "$1/lib/kde4/plugins" ]]; then
propagatedUserEnvPkgs+=" $1"
fi
}
envHooks+=(addQt4Plugins)

View File

@ -1,5 +1,8 @@
{ bash, callPackage, coreutils, fetchurl, findutils, nix, runCommand, stdenv { pkgs }:
, substituteAll, wget, writeText }:
let inherit (pkgs) bash coreutils findutils nix wget;
inherit (pkgs) callPackage fetchurl runCommand stdenv substituteAll writeText;
in
/* autonix is a collection of tools to automate packaging large collections /* autonix is a collection of tools to automate packaging large collections
* of software, particularly KDE. It consists of three components: * of software, particularly KDE. It consists of three components:
@ -10,10 +13,18 @@
* expressions from the output of the previous steps. * expressions from the output of the previous steps.
*/ */
with stdenv.lib; let inherit (stdenv) lib; in
let let
resolveDeps = scope: deps:
let resolve = dep:
let res = scope."${dep}" or [];
in if lib.isList res then res else [res];
in lib.concatMap resolve deps;
in rec {
/* Download the packages into the Nix store, compute their hashes, /* Download the packages into the Nix store, compute their hashes,
* and generate a package manifest in ./manifest.nix. * and generate a package manifest in ./manifest.nix.
*/ */
@ -32,240 +43,94 @@ let
chmod +x $out chmod +x $out
''; '';
/* Convert a manifest.nix file to XML to be read by autonix-deps. */ mkPackage = callPackage: defaultOverride: name: pkg: let drv =
writeManifestXML = filename: { mkDerivation, fetchurl, scope }:
let
generateStores = mapAttrs (n: pkg: pkg.store);
manifest = importManifest filename { mirror = ""; };
stores = generateStores manifest;
in
writeText "manifest.xml" (builtins.toXML stores);
/* Generate a set of Nix expressions for the collection, given a mkDerivation (defaultOverride {
* manifest.nix, dependencies.nix, and renames.nix in the same directory. inherit (pkg) name;
*/
generateCollection = dir: # path to directory
{ mirror # mirror to download packages from
, mkDerivation ? mkDerivation
, preResolve ? id # modify package set before dependency resolution
, postResolve ? id # modify package set after dependency resolution
, renames ? {}
, scope ? {}
}:
let
fix = f: let x = f x; in x; src = fetchurl pkg.src;
resolvePkg = name: buildInputs = resolveDeps scope pkg.buildInputs;
mapAttrs (attr: if isDepAttr attr then resolveDeps scope else id); nativeBuildInputs = resolveDeps scope pkg.nativeBuildInputs;
propagatedBuildInputs = resolveDeps scope pkg.propagatedBuildInputs;
propagatedNativeBuildInputs =
resolveDeps scope pkg.propagatedNativeBuildInputs;
propagatedUserEnvPkgs = resolveDeps scope pkg.propagatedUserEnvPkgs;
resolve = mapAttrs resolvePkg; enableParallelBuilding = true;
});
in callPackage drv {};
derive = mapAttrs (name: mkDerivation); renameDeps = renames: lib.mapAttrs (name: pkg:
let breakCycles = lib.filter (dep: dep != name);
rename = dep: renames."${dep}" or dep;
in pkg // {
buildInputs = breakCycles (map rename pkg.buildInputs);
nativeBuildInputs = breakCycles (map rename pkg.nativeBuildInputs);
propagatedBuildInputs = breakCycles (map rename pkg.propagatedBuildInputs);
propagatedNativeBuildInputs =
breakCycles (map rename pkg.propagatedNativeBuildInputs);
propagatedUserEnvPkgs = breakCycles (map rename pkg.propagatedUserEnvPkgs);
});
renames_ = propagateDeps = propagated: lib.mapAttrs (name: pkg:
if renames == {} then (import (dir + "/renames.nix") {}) else renames; let isPropagated = dep: lib.elem dep propagated;
isNotPropagated = dep: !(isPropagated dep);
in pkg // {
buildInputs = lib.filter isNotPropagated pkg.buildInputs;
nativeBuildInputs = lib.filter isNotPropagated pkg.nativeBuildInputs;
propagatedBuildInputs =
pkg.propagatedBuildInputs
++ lib.filter isPropagated pkg.buildInputs;
propagatedNativeBuildInputs =
pkg.propagatedNativeBuildInputs
++ lib.filter isPropagated pkg.nativeBuildInputs;
});
packages = importPackages dir renames_ { inherit mirror; }; nativeDeps = native: lib.mapAttrs (name: pkg:
let isNative = dep: lib.elem dep native;
isNotNative = dep: !(isNative dep);
in pkg // {
buildInputs = lib.filter isNotNative pkg.buildInputs;
nativeBuildInputs =
pkg.nativeBuildInputs
++ lib.filter isNative pkg.buildInputs;
propagatedBuildInputs = lib.filter isNotNative pkg.propagatedBuildInputs;
propagatedNativeBuildInputs =
pkg.propagatedNativeBuildInputs
++ lib.filter isNative pkg.propagatedBuildInputs;
});
in derive (postResolve (resolve (preResolve packages))); userEnvDeps = user: lib.mapAttrs (name: pkg:
let allDeps = with pkg; lib.concatLists [
buildInputs
nativeBuildInputs
propagatedBuildInputs
propagatedNativeBuildInputs
];
in assert (lib.isList allDeps); pkg // {
propagatedUserEnvPkgs = lib.filter (dep: lib.elem dep user) allDeps;
});
pkgAttrName = pkg: (builtins.parseDrvName pkg.name).name; overrideDerivation = pkg: f: pkg.override (super: super // {
pkgVersion = pkg: (builtins.parseDrvName pkg.name).version; mkDerivation = drv: super.mkDerivation (drv // f drv);
});
depAttrNames = [ extendDerivation = pkg: attrs:
"buildInputs" "nativeBuildInputs" let mergeAttrBy = lib.mergeAttrBy // {
"propagatedBuildInputs" "propagatedNativeBuildInputs" propagatedNativeBuildInputs = a: b: a ++ b;
"propagatedUserEnvPkgs" NIX_CFLAGS_COMPILE = a: b: "${a} ${b}";
]; cmakeFlags = a: b: a ++ b;
isDepAttr = name: builtins.elem name depAttrNames;
removePkgDeps = deps:
let removeDepsIfDepAttr = attr: value:
if isDepAttr attr then fold remove value deps else value;
in mapAttrs removeDepsIfDepAttr;
hasDep = dep: pkg:
let depAttrs = attrValues (filterAttrs (n: v: isDepAttr n) pkg);
allDeps = concatLists depAttrs;
in elem dep allDeps;
importManifest = path: { mirror }:
let
uniqueNames = manifest:
unique (map pkgAttrName manifest);
versionsOf = manifest: name:
filter (pkg: pkgAttrName pkg == name) manifest;
bestVersions = manifest:
let best = versions:
let
strictlyLess = a: b:
builtins.compareVersions (pkgVersion a) (pkgVersion b) > 0;
sorted = sort strictlyLess versions;
in head sorted;
in map (name: best (versionsOf manifest name)) (uniqueNames manifest);
withNames = manifest:
builtins.listToAttrs
(map (p: nameValuePair (toLower (pkgAttrName p)) p) manifest);
orig = import path { inherit stdenv fetchurl mirror; };
in
fold (f: x: f x) orig [ withNames bestVersions ];
importPackages = path: renames: manifestScope:
let
# Do not allow any package to depend on itself.
breakRecursion =
let removeSelfDep = pkg:
mapAttrs
(n: if isDepAttr n
then filter (dep: dep != pkg && renamed dep != pkg)
else id);
in mapAttrs removeSelfDep;
renamed = dep: renames."${dep}" or dep;
manifest = importManifest (path + "/manifest.nix") manifestScope;
deps = import (path + "/dependencies.nix") {};
mkPkg = name: manifest:
{
inherit (manifest) name src;
inherit (deps."${name}")
buildInputs nativeBuildInputs propagatedBuildInputs
propagatedNativeBuildInputs propagatedUserEnvPkgs;
}; };
mergeAttrsByFunc = sets:
let merged = lib.foldl lib.mergeAttrByFunc { inherit mergeAttrBy; } sets;
in builtins.removeAttrs merged ["mergeAttrBy"];
in overrideDerivation pkg (drv: mergeAttrsByFunc [ drv attrs ]);
in breakRecursion (mapAttrs mkPkg manifest); overrideScope = pkg: fnOrSet: pkg.override (super: super // {
scope = if builtins.isFunction fnOrSet
mkDerivation = drv: stdenv.mkDerivation (drv // { src = fetchurl drv.src; }); then super.scope // fnOrSet super.scope
else super.scope // fnOrSet;
resolveDeps = scope: deps: });
let resolve = dep:
let res = scope."${dep}" or [];
in if lib.isList res then res else [res];
in lib.concatMap resolve deps;
userEnvPkg = dep:
mapAttrs
(name: pkg: pkg // {
propagatedUserEnvPkgs =
(pkg.propagatedUserEnvPkgs or [])
++ optional (hasDep dep pkg) dep;
});
in
{
inherit generateCollection;
inherit importManifest;
inherit isDepAttr;
inherit manifest;
inherit removePkgDeps;
inherit resolveDeps;
inherit userEnvPkg;
inherit writeManifestXML;
blacklist = names: pkgs:
let
removeDeps = deps: mapAttrs (name: removePkgDeps deps);
removePkgs = names: pkgs: builtins.removeAttrs pkgs names;
in removeDeps names (removePkgs names pkgs);
lib = rec {
mkPackage = callPackage: defaultOverride: name: pkg: let drv =
{ mkDerivation, fetchurl, scope }:
mkDerivation (defaultOverride {
inherit (pkg) name;
src = fetchurl pkg.src;
buildInputs = resolveDeps scope pkg.buildInputs;
nativeBuildInputs = resolveDeps scope pkg.nativeBuildInputs;
propagatedBuildInputs = resolveDeps scope pkg.propagatedBuildInputs;
propagatedNativeBuildInputs =
resolveDeps scope pkg.propagatedNativeBuildInputs;
propagatedUserEnvPkgs = resolveDeps scope pkg.propagatedUserEnvPkgs;
enableParallelBuilding = true;
});
in callPackage drv {};
renameDeps = renames: lib.mapAttrs (name: pkg:
let breakCycles = lib.filter (dep: dep != name);
rename = dep: renames."${dep}" or dep;
in pkg // {
buildInputs = breakCycles (map rename pkg.buildInputs);
nativeBuildInputs = breakCycles (map rename pkg.nativeBuildInputs);
propagatedBuildInputs = breakCycles (map rename pkg.propagatedBuildInputs);
propagatedNativeBuildInputs = breakCycles (map rename pkg.propagatedNativeBuildInputs);
propagatedUserEnvPkgs = breakCycles (map rename pkg.propagatedUserEnvPkgs);
});
propagateDeps = propagated: lib.mapAttrs (name: pkg:
let isPropagated = dep: lib.elem dep propagated;
isNotPropagated = dep: !(isPropagated dep);
in pkg // {
buildInputs = lib.filter isNotPropagated pkg.buildInputs;
nativeBuildInputs = lib.filter isNotPropagated pkg.nativeBuildInputs;
propagatedBuildInputs =
pkg.propagatedBuildInputs
++ lib.filter isPropagated pkg.buildInputs;
propagatedNativeBuildInputs =
pkg.propagatedNativeBuildInputs
++ lib.filter isPropagated pkg.nativeBuildInputs;
});
nativeDeps = native: lib.mapAttrs (name: pkg:
let isNative = dep: lib.elem dep native;
isNotNative = dep: !(isNative dep);
in pkg // {
buildInputs = lib.filter isNotNative pkg.buildInputs;
nativeBuildInputs =
pkg.nativeBuildInputs
++ lib.filter isNative pkg.buildInputs;
propagatedBuildInputs = lib.filter isNotNative pkg.propagatedBuildInputs;
propagatedNativeBuildInputs =
pkg.propagatedNativeBuildInputs
++ lib.filter isNative pkg.propagatedBuildInputs;
});
userEnvDeps = user: lib.mapAttrs (name: pkg:
let allDeps = with pkg; lib.concatLists [
buildInputs
nativeBuildInputs
propagatedBuildInputs
propagatedNativeBuildInputs
];
in assert (lib.isList allDeps); pkg // {
propagatedUserEnvPkgs = lib.filter (dep: lib.elem dep user) allDeps;
});
overrideDerivation = pkg: f: pkg.override (super: super // {
mkDerivation = drv: super.mkDerivation (drv // f drv);
});
extendDerivation = pkg: attrs:
let mergeAttrBy = lib.mergeAttrBy // {
propagatedNativeBuildInputs = a: b: a ++ b;
NIX_CFLAGS_COMPILE = a: b: "${a} ${b}";
cmakeFlags = a: b: a ++ b;
};
mergeAttrsByFunc = sets:
let merged = lib.foldl lib.mergeAttrByFunc { inherit mergeAttrBy; } sets;
in builtins.removeAttrs merged ["mergeAttrBy"];
in overrideDerivation pkg (drv: mergeAttrsByFunc [ drv attrs ]);
overrideScope = pkg: fnOrSet: pkg.override (super: super // {
scope = if builtins.isFunction fnOrSet
then super.scope // fnOrSet super.scope
else super.scope // fnOrSet;
});
};
} }

View File

@ -16,7 +16,7 @@
let inherit (pkgs) autonix stdenv symlinkJoin; in let inherit (pkgs) autonix stdenv symlinkJoin; in
let kf5Orig = kf5; in with autonix; let inherit (stdenv) lib; in
let let
kf5_ = if kf5 != null then kf5 else pkgs.kf510; kf5_ = if kf5 != null then kf5 else pkgs.kf510;
@ -26,7 +26,7 @@ in
let let
qt5 = qt5_; qt5 = qt5_;
kf5 = kf5_.override { inherit qt5; }; kf5 = kf5_.override { inherit debug qt5; };
kdePackage = name: pkg: kdePackage = name: pkg:
let defaultOverride = drv: drv // { let defaultOverride = drv: drv // {
@ -106,7 +106,7 @@ let
modemmanager openconnect openexr pam pango qt4 samba modemmanager openconnect openexr pam pango qt4 samba
socat substituteAll taglib utillinux wayland xapian socat substituteAll taglib utillinux wayland xapian
xkeyboard_config xlibs xorg; xkeyboard_config xlibs xorg;
boost = boost155; boost = boost156;
canberra = libcanberra; canberra = libcanberra;
epub = ebook_tools; epub = ebook_tools;
fontforge_executable = fontforge; fontforge_executable = fontforge;
@ -153,7 +153,7 @@ let
}); });
in symlinkJoin "breeze-${version}" [ breeze-qt4 breeze-qt5 ]; in symlinkJoin "breeze-${version}" [ breeze-qt4 breeze-qt5 ];
kde-gtk-config = overrideDerivation super.kde-gtk-config (drv: { kde-gtk-config = extendDerivation super.kde-gtk-config {
NIX_CFLAGS_COMPILE = with scope; NIX_CFLAGS_COMPILE = with scope;
lib.concatStringsSep " " [ lib.concatStringsSep " " [
"-I${cairo}/include/cairo" "-I${cairo}/include/cairo"
@ -163,55 +163,51 @@ let
"-I${glib}/lib/glib-2.0/include" "-I${glib}/lib/glib-2.0/include"
"-I${pango}/include/pango-1.0" "-I${pango}/include/pango-1.0"
]; ];
}); };
kfilemetadata = overrideDerivation super.kfilemetadata (drv: { kfilemetadata = extendDerivation super.kfilemetadata {
buildInputs = drv.buildInputs ++ [ pkgs.attr ]; buildInputs = [ scope.attr ];
}); };
kwin = overrideDerivation super.kwin (drv: { kwin = extendDerivation super.kwin {
buildInputs = buildInputs = with scope.xlibs; [ libICE libSM libXcursor ];
drv.buildInputs ++ (with pkgs.xlibs; [ libICE libSM libXcursor ]);
patches = [ ./kwin/kwin-import-plugin-follow-symlinks.patch ]; patches = [ ./kwin/kwin-import-plugin-follow-symlinks.patch ];
}); };
libkscreen = overrideDerivation super.libkscreen (drv: { libkscreen = extendDerivation super.libkscreen {
buildInputs = drv.buildInputs ++ [ pkgs.xlibs.libXrandr]; buildInputs = [ scope.xlibs.libXrandr];
}); };
plasma-desktop = overrideDerivation super.plasma-desktop (drv: { plasma-desktop = extendDerivation super.plasma-desktop {
buildInputs = buildInputs = with scope;
drv.buildInputs [ canberra ]
++ [ pkgs.libcanberra ] ++ (with xlibs; [ libxkbfile libXcursor libXft ]);
++ (with pkgs.xlibs; [ libxkbfile libXcursor libXft ]);
patches = [ patches = [
./plasma-desktop/plasma-desktop-hwclock.patch ./plasma-desktop/plasma-desktop-hwclock.patch
./plasma-desktop/plasma-desktop-zoneinfo.patch ./plasma-desktop/plasma-desktop-zoneinfo.patch
(pkgs.substituteAll { (scope.substituteAll {
src = ./plasma-desktop/plasma-desktop-xkb-rules.patch; src = ./plasma-desktop/plasma-desktop-xkb-rules.patch;
xkb = pkgs.xkeyboard_config; xkb = scope.xkeyboard_config;
}) })
]; ];
preConfigure = '' preConfigure = ''
substituteInPlace kcms/dateandtime/helper.cpp \ substituteInPlace kcms/dateandtime/helper.cpp \
--subst-var-by hwclock "${scope.utillinux}/sbin/hwclock" --subst-var-by hwclock "${scope.utillinux}/sbin/hwclock"
''; '';
}); };
plasma-workspace = overrideDerivation super.plasma-workspace (drv: { plasma-workspace = extendDerivation super.plasma-workspace {
patches = [ patches = [
(pkgs.substituteAll { (scope.substituteAll {
src = ./plasma-workspace/0001-startkde-NixOS-patches.patch; src = ./plasma-workspace/0001-startkde-NixOS-patches.patch;
inherit (pkgs) bash gnused gnugrep socat; inherit (scope) bash gnused gnugrep socat;
inherit (kf5) kconfig kinit kservice; inherit (scope) kconfig kinit kservice;
inherit (pkgs.xorg) mkfontdir xmessage xprop xrdb xset xsetroot; inherit (scope.xorg) mkfontdir xmessage xprop xrdb xset xsetroot;
qt5tools = qt5.tools; qt5tools = scope.qt5tools;
dbus_tools = pkgs.dbus.tools; dbus_tools = scope.dbus.tools;
}) })
]; ];
buildInputs = buildInputs = with scope.xlibs; [ libSM libXcursor scope.pam ];
(drv.buildInputs or [])
++ (with pkgs.xlibs; [ libSM libXcursor scope.pam ]);
postPatch = '' postPatch = ''
substituteInPlace startkde/kstartupconfig/kstartupconfig.cpp \ substituteInPlace startkde/kstartupconfig/kstartupconfig.cpp \
--replace kdostartupconfig5 $out/bin/kdostartupconfig5 --replace kdostartupconfig5 $out/bin/kdostartupconfig5
@ -220,15 +216,15 @@ let
substituteInPlace startkde/startkde.cmake \ substituteInPlace startkde/startkde.cmake \
--subst-var-by plasmaWorkspace "$out" --subst-var-by plasmaWorkspace "$out"
''; '';
}); };
powerdevil = overrideDerivation super.powerdevil (drv: { powerdevil = extendDerivation super.powerdevil {
buildInputs = drv.buildInputs ++ [pkgs.xlibs.libXrandr]; buildInputs = [ scope.xlibs.libXrandr ];
}); };
sddm-kcm = overrideDerivation super.sddm-kcm (drv: { sddm-kcm = extendDerivation super.sddm-kcm {
buildInputs = drv.buildInputs ++ [pkgs.xlibs.libXcursor]; buildInputs = [ scope.xlibs.libXcursor ];
}); };
}; };

View File

@ -12,13 +12,19 @@
# make a copy of this directory first. After copying, be sure to delete ./tmp # make a copy of this directory first. After copying, be sure to delete ./tmp
# if it exists. Then follow the minor update instructions. # if it exists. Then follow the minor update instructions.
{ autonix, fetchurl, pkgs, qt5, stdenv, newScope, debug ? false }: { pkgs, newScope, qt5 ? null, debug ? false }:
with autonix; let inherit (pkgs) autonix stdenv symlinkJoin; in
let inherit (stdenv) lib; in with autonix; let inherit (stdenv) lib; in
let let
qt5_ = if qt5 != null then qt5 else pkgs.qt54;
in
let
qt5 = qt5_;
super = super =
let json = builtins.fromJSON (builtins.readFile ./packages.json); let json = builtins.fromJSON (builtins.readFile ./packages.json);
@ -114,8 +120,6 @@ let
); );
self = super // { self = super // {
inherit kdePackage scope;
extra-cmake-modules = overrideDerivation super.extra-cmake-modules (drv: { extra-cmake-modules = overrideDerivation super.extra-cmake-modules (drv: {
buildInputs = []; buildInputs = [];
nativeBuildInputs = []; nativeBuildInputs = [];
@ -132,78 +136,72 @@ let
}; };
}); });
frameworkintegration = overrideDerivation super.frameworkintegration (drv: { frameworkintegration = extendDerivation super.frameworkintegration {
buildInputs = drv.buildInputs ++ [ pkgs.xlibs.libXcursor ]; buildInputs = [ scope.xlibs.libXcursor ];
}); };
kauth = overrideDerivation super.kauth (drv: { kauth = extendDerivation super.kauth {
buildInputs = drv.buildInputs ++ [ scope.polkit_qt5 ]; buildInputs = [ scope.polkit_qt5 ];
patches = [./kauth/kauth-policy-install.patch]; patches = [ ./kauth/kauth-policy-install.patch ];
}); };
kcmutils = overrideDerivation super.kcmutils (drv: { kcmutils = extendDerivation super.kcmutils {
patches = [./kcmutils/kcmutils-pluginselector-follow-symlinks.patch]; patches = [ ./kcmutils/kcmutils-pluginselector-follow-symlinks.patch ];
}); };
kconfigwidgets = overrideDerivation super.kconfigwidgets (drv: { kconfigwidgets = extendDerivation super.kconfigwidgets {
patches = [./kconfigwidgets/kconfigwidgets-helpclient-follow-symlinks.patch]; patches = [ ./kconfigwidgets/kconfigwidgets-helpclient-follow-symlinks.patch ];
}); };
kdelibs4support = overrideDerivation super.kdelibs4support (drv: { kdelibs4support = extendDerivation super.kdelibs4support {
buildInputs = drv.buildInputs ++ [ scope.networkmanager pkgs.xlibs.libSM ]; buildInputs = [ scope.networkmanager scope.xlibs.libSM ];
cmakeFlags = cmakeFlags = [
drv.cmakeFlags "-DDocBookXML4_DTD_DIR=${pkgs.docbook_xml_dtd_45}/xml/dtd/docbook"
++ [ "-DDocBookXML4_DTD_VERSION=4.5"
"-DDocBookXML4_DTD_DIR=${pkgs.docbook_xml_dtd_45}/xml/dtd/docbook" ];
"-DDocBookXML4_DTD_VERSION=4.5" };
];
});
kdoctools = overrideDerivation super.kdoctools (drv: { kdoctools = extendDerivation super.kdoctools {
propagatedNativeBuildInputs = propagatedNativeBuildInputs = [ scope.perl scope.perlPackages.URI ];
drv.propagatedNativeBuildInputs ++ [ scope.perl scope.perlPackages.URI ]; cmakeFlags = [
cmakeFlags = "-DDocBookXML4_DTD_DIR=${scope.docbook_xml_dtd_45}/xml/dtd/docbook"
drv.cmakeFlags "-DDocBookXML4_DTD_VERSION=4.5"
++ [ "-DDocBookXSL_DIR=${scope.docbook5_xsl}/xml/xsl/docbook"
"-DDocBookXML4_DTD_DIR=${pkgs.docbook_xml_dtd_45}/xml/dtd/docbook" ];
"-DDocBookXML4_DTD_VERSION=4.5" patches = [ ./kdoctools/kdoctools-no-find-docbook-xml.patch ];
"-DDocBookXSL_DIR=${pkgs.docbook5_xsl}/xml/xsl/docbook" };
];
patches = [./kdoctools/kdoctools-no-find-docbook-xml.patch];
});
ki18n = overrideDerivation super.ki18n (drv: { ki18n = extendDerivation super.ki18n {
propagatedNativeBuildInputs = propagatedNativeBuildInputs = with scope; [ libintl pythoninterp ];
drv.propagatedNativeBuildInputs ++ [ scope.libintl scope.pythoninterp ]; };
});
kimageformats = overrideDerivation super.kimageformats (drv: { kimageformats = extendDerivation super.kimageformats {
NIX_CFLAGS_COMPILE = "-I${pkgs.ilmbase}/include/OpenEXR"; NIX_CFLAGS_COMPILE = "-I${pkgs.ilmbase}/include/OpenEXR";
}); };
kinit = overrideDerivation super.kinit (drv: { kinit = extendDerivation super.kinit {
patches = [./kinit/0001-kinit-libpath.patch]; patches = [./kinit/0001-kinit-libpath.patch];
}); };
kpackage = overrideDerivation super.kpackage (drv: { kpackage = extendDerivation super.kpackage {
patches = [./kpackage/0001-allow-external-paths.patch]; patches = [ ./kpackage/0001-allow-external-paths.patch ];
}); };
kservice = overrideDerivation super.kservice (drv: { kservice = extendDerivation super.kservice {
buildInputs = drv.buildInputs ++ [ self.kwindowsystem ]; buildInputs = [ scope.kwindowsystem ];
patches = [ patches = [
./kservice/kservice-kbuildsycoca-follow-symlinks.patch ./kservice/kservice-kbuildsycoca-follow-symlinks.patch
./kservice/kservice-kbuildsycoca-no-canonicalize-path.patch ./kservice/kservice-kbuildsycoca-no-canonicalize-path.patch
]; ];
}); };
ktexteditor = overrideDerivation super.ktexteditor (drv: { ktexteditor = extendDerivation super.ktexteditor {
patches = [ ./ktexteditor/0001-no-qcoreapplication.patch ]; patches = [ ./ktexteditor/0001-no-qcoreapplication.patch ];
}); };
networkmanager-qt = overrideDerivation super.networkmanager-qt (drv: { networkmanager-qt = extendDerivation super.networkmanager-qt {
propagatedBuildInputs = drv.propagatedBuildInputs ++ [ scope.networkmanager ]; propagatedBuildInputs = [ scope.networkmanager ];
}); };
}; };
in self in self

View File

@ -251,7 +251,7 @@ let
theAttrSet = arg; theAttrSet = arg;
}; };
autonix = callPackage ../build-support/autonix {}; autonix = import ../build-support/autonix { inherit pkgs; };
autoreconfHook = makeSetupHook autoreconfHook = makeSetupHook
{ substitutions = { inherit autoconf automake libtool gettext; }; } { substitutions = { inherit autoconf automake libtool gettext; }; }
@ -11658,9 +11658,7 @@ let
boost = boost155; boost = boost155;
}; };
kdeApps_15_04 = recurseIntoAttrs (callPackage ../applications/kde-apps-15.04 { kdeApps_15_04 = recurseIntoAttrs (callPackage ../applications/kde-apps-15.04 {});
kf5 = kf510;
});
kdeApps_stable = kdeApps_15_04; kdeApps_stable = kdeApps_15_04;
kdeApps_latest = kdeApps_15_04; kdeApps_latest = kdeApps_15_04;
@ -13940,7 +13938,7 @@ let
numix-gtk-theme = callPackage ../misc/themes/gtk3/numix-gtk-theme { }; numix-gtk-theme = callPackage ../misc/themes/gtk3/numix-gtk-theme { };
plasma53 = recurseIntoAttrs (import ../desktops/plasma-5.3 { inherit pkgs newScope; }); plasma53 = recurseIntoAttrs (callPackage ../desktops/plasma-5.3 { inherit pkgs newScope; });
plasma5_latest = plasma53; plasma5_latest = plasma53;
plasma5_stable = plasma53; plasma5_stable = plasma53;