nixpkgs-suyu/pkgs/desktops/plasma-5.3/default.nix
2015-05-06 07:08:20 -05:00

192 lines
5.9 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, kf5, pkgs, qt5, stdenv, 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"];
scope =
# packages in this collection
(mapAttrs (dep: name: plasma5."${name}") renames) //
# packages from KDE Frameworks 5
kf5.scope //
# packages pinned to this version of Qt 5
{
LibBlueDevil = pkgs.libbluedevil;
PolkitQt5-1 = pkgs.polkit_qt5.override { inherit qt5; };
PopplerQt5 = pkgs.poppler_qt5.override { inherit qt5; };
} //
# packages from nixpkgs
(with pkgs;
{
inherit epoxy;
Epub = ebook_tools;
Exiv2 = exiv2;
FFmpeg = ffmpeg;
FONTFORGE_EXECUTABLE = fontforge;
Freetype = freetype;
GTK2 = gtk2;
GTK3 = gtk3;
Libinput = libinput;
LibSSH = libssh;
PulseAudio = pulseaudio;
Taglib = taglib;
USB = libusb;
Wayland = wayland;
Xapian = xapian;
}
);
preResolve = super:
fold (f: x: f x) super
[
(userEnvPkg "SharedMimeInfo")
(userEnvPkg "SharedDesktopOntologies")
(blacklist ["bluedevil"])
];
postResolve = super:
(builtins.removeAttrs super ["breeze"]) // {
bluez-qt = super.bluez-qt // {
preConfigure = ''
substituteInPlace CMakeLists.txt \
--replace /lib/udev/rules.d "$out/lib/udev/rules.d"
'';
};
breeze-qt4 = with pkgs; super.breeze // {
name = "breeze-qt4-" + (builtins.parseDrvName super.breeze.name).version;
buildInputs = [ xlibs.xproto kde4.kdelibs qt4 ];
nativeBuildInputs = [ cmake pkgconfig ];
cmakeFlags =
[
"-DUSE_KDE4=ON"
"-DQT_QMAKE_EXECUTABLE=${qt4}/bin/qmake"
];
};
breeze-qt5 = with pkgs; super.breeze // {
name = "breeze-qt5-" + (builtins.parseDrvName super.breeze.name).version;
buildInputs = with kf5; with plasma5;
[
kcompletion kconfig kconfigwidgets kcoreaddons kdecoration kguiaddons
frameworkintegration ki18n kwindowsystem qt5.base qt5.x11extras
];
nativeBuildInputs = [ cmake kf5.extra-cmake-modules pkgconfig ];
cmakeFlags = [ "-DUSE_KDE4=OFF" ];
};
kde-gtk-config = with pkgs; super.kde-gtk-config // {
NIX_CFLAGS_COMPILE =
(super.kde-gtk-config.NIX_CFLAGS_COMPILE or "")
+ " -I${cairo}/include/cairo"
+ " -I${gtk2}/include/gtk-2.0 -I${gtk2}/lib/gtk-2.0/include"
+ " -I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include"
+ " -I${pango}/include/pango-1.0";
};
kfilemetadata = super.kfilemetadata // {
buildInputs = with pkgs; super.kfilemetadata.buildInputs ++ [ attr ];
};
kwin = with pkgs; super.kwin // {
buildInputs = with xlibs;
super.kwin.buildInputs ++ [ libICE libSM libXcursor ];
patches = [ ./kwin/kwin-import-plugin-follow-symlinks.patch ];
};
libkscreen = with pkgs; super.libkscreen // {
buildInputs = with xlibs; super.libkscreen.buildInputs ++ [libXrandr];
};
plasma-desktop = with pkgs; super.plasma-desktop // {
buildInputs = with xlibs;
super.plasma-desktop.buildInputs ++
[ pkgs.libcanberra libxkbfile libXcursor libXft ];
patches = [
./plasma-desktop/plasma-desktop-hwclock.patch
./plasma-desktop/plasma-desktop-zoneinfo.patch
(substituteAll {
src = ./plasma-desktop/plasma-desktop-xkb-rules.patch;
xkb = pkgs.xkeyboard_config;
})
];
preConfigure = ''
substituteInPlace kcms/dateandtime/helper.cpp \
--subst-var-by hwclock "${utillinux}/sbin/hwclock"
'';
};
plasma-workspace = with pkgs; super.plasma-workspace // {
patches = [
(substituteAll {
src = ./plasma-workspace/0001-startkde-NixOS-patches.patch;
inherit (pkgs) bash gnused gnugrep socat;
inherit (kf5) kconfig kinit kservice;
inherit (pkgs.xorg) mkfontdir xmessage xprop xrdb xset xsetroot;
qt5tools = qt5.tools;
dbus_tools = pkgs.dbus.tools;
})
];
buildInputs = with xlibs;
super.plasma-workspace.buildInputs ++ [ libSM libXcursor pam ];
postPatch = ''
substituteInPlace startkde/kstartupconfig/kstartupconfig.cpp \
--replace kdostartupconfig5 $out/bin/kdostartupconfig5
'';
preConfigure = ''
substituteInPlace startkde/startkde.cmake \
--subst-var-by plasmaWorkspace "$out"
'';
};
powerdevil = with pkgs; super.powerdevil // {
buildInputs = with xlibs; super.powerdevil.buildInputs ++ [libXrandr];
};
sddm-kcm = with pkgs; super.sddm-kcm // {
buildInputs = with xlibs; super.sddm-kcm.buildInputs ++ [libXcursor];
};
/*
user-manager = super.user-manager // {
buildInputs = with pkgs; super.user-manager.buildInputs ++ [ libpwquality ];
};
*/
};
plasma5 = generateCollection ./. {
inherit (kf5) mkDerivation;
inherit mirror preResolve postResolve renames scope;
};
in
plasma5 // {
inherit kf5 scope;
}