diff options
Diffstat (limited to 'pkgs/development/libraries/kde-frameworks-5.12/default.nix')
-rw-r--r-- | pkgs/development/libraries/kde-frameworks-5.12/default.nix | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/pkgs/development/libraries/kde-frameworks-5.12/default.nix b/pkgs/development/libraries/kde-frameworks-5.12/default.nix new file mode 100644 index 00000000000..229f28f9095 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.12/default.nix @@ -0,0 +1,228 @@ +# 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. + +{ pkgs, newScope, qt5 ? null, debug ? false }: + +let inherit (pkgs) autonix stdenv symlinkJoin; in + +with autonix; let inherit (stdenv) lib; in + +let + qt5_ = if qt5 != null then qt5 else pkgs.qt54; +in + +let + + qt5 = qt5_; + + super = + let json = builtins.fromJSON (builtins.readFile ./packages.json); + mirrorUrl = n: pkg: pkg // { + src = pkg.src // { url = "mirror://kde/${pkg.src.url}"; }; + }; + renames = builtins.fromJSON (builtins.readFile ./renames.json); + propagated = [ "extra-cmake-modules" ]; + native = [ + "bison" + "extra-cmake-modules" + "flex" + "kdoctools" + "ki18n" + "libxslt" + "perl" + "pythoninterp" + ]; + user = [ + "qt5" + "qt5core" + "qt5dbus" + "qt5gui" + "qt5qml" + "qt5quick" + "qt5svg" + "qt5webkitwidgets" + "qt5widgets" + "qt5x11extras" + "shareddesktopontologies" + "sharedmimeinfo" + ]; + in lib.fold (f: attrs: f attrs) json [ + (lib.mapAttrs kdePackage) + (userEnvDeps user) + (nativeDeps native) + (propagateDeps propagated) + (renameDeps renames) + (lib.mapAttrs mirrorUrl) + ]; + + kdePackage = name: pkg: + let defaultOverride = drv: drv // { + setupHook = ./setup-hook.sh; + cmakeFlags = + (drv.cmakeFlags or []) + ++ [ "-DBUILD_TESTING=OFF" ] + ++ lib.optional debug "-DCMAKE_BUILD_TYPE=Debug"; + meta = { + license = with stdenv.lib.licenses; [ + lgpl21Plus lgpl3Plus bsd2 mit gpl2Plus gpl3Plus fdl12 + ]; + platforms = stdenv.lib.platforms.linux; + maintainers = with stdenv.lib.maintainers; [ ttuegel ]; + homepage = "http://www.kde.org"; + }; + }; + callPackage = newScope { + inherit (stdenv) mkDerivation; + inherit (pkgs) fetchurl; + inherit scope; + }; + in mkPackage callPackage defaultOverride name pkg; + + scope = + # packages in this collection + self // + # packages pinned to this version of Qt 5 + { + dbusmenu-qt5 = pkgs.libdbusmenu_qt5.override { inherit qt5; }; + phonon4qt5 = pkgs.phonon_qt5.override { inherit qt5; }; + polkit_qt5 = pkgs.polkit_qt5.override { inherit qt5; }; + qt5 = qt5.base; + qt5core = qt5.base; + qt5dbus = qt5.base; + qt5gui = qt5.base; + qt5linguisttools = qt5.tools; + qt5qml = [qt5.declarative qt5.graphicaleffects]; + qt5quick = [qt5.quickcontrols qt5.graphicaleffects]; + qt5script = qt5.script; + qt5svg = qt5.svg; + qt5webkitwidgets = qt5.webkit; + qt5widgets = qt5.base; + qt5x11extras = qt5.x11extras; + qt5xmlpatterns = qt5.xmlpatterns; + } // + # packages from the nixpkgs collection + (with pkgs; + { + inherit acl cmake docbook_xml_dtd_45 docbook5_xsl epoxy fam gpgme + libgcrypt libgit2 modemmanager networkmanager perl + perlPackages qimageblitz xorg zlib; + boost = boost155; + gif = giflib; + glib2 = glib; + jpeg = libjpeg; + libintl = gettext; + liblzma = lzma; + pythoninterp = python; + pythonlibrary = python; + sharedmimeinfo = shared_mime_info; + } + ); + + self = super // { + bluez-qt = overrideDerivation super.bluez-qt (drv: { + preConfigure = '' + substituteInPlace CMakeLists.txt \ + --replace /lib/udev/rules.d "$out/lib/udev/rules.d" + ''; + }); + + extra-cmake-modules = overrideDerivation super.extra-cmake-modules (drv: { + buildInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + propagatedNativeBuildInputs = [ scope.cmake pkgs.pkgconfig qt5.tools ]; + propagatedUserEnvPkgs = []; + cmakeFlags = ["-DBUILD_TESTING=OFF"]; + patches = [./extra-cmake-modules/0001-extra-cmake-modules-paths.patch]; + meta = { + license = stdenv.lib.licenses.bsd2; + platforms = stdenv.lib.platforms.linux; + maintainers = with stdenv.lib.maintainers; [ ttuegel ]; + homepage = "http://www.kde.org"; + }; + }); + + frameworkintegration = extendDerivation super.frameworkintegration { + buildInputs = [ scope.xorg.libXcursor ]; + }; + + kauth = extendDerivation super.kauth { + buildInputs = [ scope.polkit_qt5 ]; + patches = [ ./kauth/kauth-policy-install.patch ]; + }; + + kcmutils = extendDerivation super.kcmutils { + patches = [ ./kcmutils/kcmutils-pluginselector-follow-symlinks.patch ]; + }; + + kconfigwidgets = extendDerivation super.kconfigwidgets { + patches = [ ./kconfigwidgets/kconfigwidgets-helpclient-follow-symlinks.patch ]; + }; + + kdelibs4support = extendDerivation super.kdelibs4support { + buildInputs = [ scope.networkmanager scope.xorg.libSM ]; + cmakeFlags = [ + "-DDocBookXML4_DTD_DIR=${pkgs.docbook_xml_dtd_45}/xml/dtd/docbook" + "-DDocBookXML4_DTD_VERSION=4.5" + ]; + }; + + kdoctools = extendDerivation super.kdoctools { + propagatedNativeBuildInputs = [ scope.perl scope.perlPackages.URI ]; + cmakeFlags = [ + "-DDocBookXML4_DTD_DIR=${scope.docbook_xml_dtd_45}/xml/dtd/docbook" + "-DDocBookXML4_DTD_VERSION=4.5" + "-DDocBookXSL_DIR=${scope.docbook5_xsl}/xml/xsl/docbook" + ]; + patches = [ ./kdoctools/kdoctools-no-find-docbook-xml.patch ]; + }; + + ki18n = extendDerivation super.ki18n { + propagatedNativeBuildInputs = with scope; [ libintl pythoninterp ]; + }; + + kimageformats = extendDerivation super.kimageformats { + NIX_CFLAGS_COMPILE = "-I${pkgs.ilmbase}/include/OpenEXR"; + }; + + kinit = extendDerivation super.kinit { + patches = [./kinit/0001-kinit-libpath.patch]; + }; + + kpackage = extendDerivation super.kpackage { + patches = [ ./kpackage/0001-allow-external-paths.patch ]; + }; + + kservice = extendDerivation super.kservice { + buildInputs = [ scope.kwindowsystem ]; + patches = [ + ./kservice/kservice-kbuildsycoca-follow-symlinks.patch + ./kservice/kservice-kbuildsycoca-no-canonicalize-path.patch + ]; + }; + + ktexteditor = extendDerivation super.ktexteditor { + patches = [ ./ktexteditor/0001-no-qcoreapplication.patch ]; + }; + + kwallet = extendDerivation super.kwallet { + buildInputs = [ scope.kdoctools ]; + }; + + networkmanager-qt = extendDerivation super.networkmanager-qt { + propagatedBuildInputs = [ scope.networkmanager ]; + }; + }; + +in self |