summary refs log tree commit diff
path: root/pkgs/applications/kde-apps-14.12/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/kde-apps-14.12/default.nix')
-rw-r--r--pkgs/applications/kde-apps-14.12/default.nix324
1 files changed, 324 insertions, 0 deletions
diff --git a/pkgs/applications/kde-apps-14.12/default.nix b/pkgs/applications/kde-apps-14.12/default.nix
new file mode 100644
index 00000000000..96f1aea6875
--- /dev/null
+++ b/pkgs/applications/kde-apps-14.12/default.nix
@@ -0,0 +1,324 @@
+# 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, 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";
+      "Kexiv2" = "libkexiv2";
+      "Kdcraw" = "libkdcraw";
+      "Kipi" = "libkipi";
+      "LibKMahjongg" = "libkmahjongg";
+      "LibKonq" = "kde-baseapps";
+    };
+
+  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;
+        Akonadi = kde4.akonadi;
+        Alsa = alsaLib;
+        Automoc4 = automoc4;
+        Avahi = avahi;
+        BISON = bison;
+        Baloo = kde4.baloo;
+        Boost = boost156;
+        Canberra = libcanberra;
+        Cdparanoia = cdparanoia;
+        CUPS = cups;
+        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;
+        GSL = gsl;
+        HUNSPELL = hunspell;
+        HUpnp = herqq;
+        Jasper = jasper;
+        KActivities = kde4.kactivities;
+        LCMS2 = lcms2;
+        Ldap = openldap;
+        LibAttica = attica;
+        LibGcrypt = libgcrypt;
+        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;
+        QImageBlitz = qimageblitz;
+        QJSON = qjson;
+        Qt4 = qt4;
+        Samba = samba;
+        Sasl2 = cyrus_sasl;
+        SharedDesktopOntologies = shared_desktop_ontologies;
+        SndFile = libsndfile;
+        Speechd = speechd;
+        TIFF = libtiff;
+        Taglib = taglib;
+        TelepathyQt4 = telepathy_qt;
+        TunePimp = libtunepimp;
+        UDev = udev;
+        USB = libusb;
+        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];
+      };
+
+      kalzium = with pkgs; super.kalzium // {
+        nativeBuildInputs = super.kalzium.nativeBuildInputs ++ [pkgconfig];
+      };
+
+      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"
+        ];
+      };
+
+      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];
+      };
+
+      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 kde4.telepathy.common_internals];
+      };
+
+      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];
+      };
+
+      libkipi = with pkgs; super.libkipi // {
+        buildInputs = super.libkipi.buildInputs ++ [scope.KDE4];
+      };
+
+      libksane = with pkgs; super.libksane // {
+        buildInputs = super.libksane.buildInputs ++ [scope.KDE4 saneBackends];
+      };
+
+    };
+
+  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)