From e690c3a8dd566651f5fa237bb6cb1d3166450b50 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Sat, 23 Apr 2016 04:14:10 +0300 Subject: [PATCH] k3b: move cdrtools dependency to a wrapper --- pkgs/applications/misc/k3b/default.nix | 7 ++++--- pkgs/applications/misc/k3b/wrapper.nix | 23 +++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 6 +++--- 3 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 pkgs/applications/misc/k3b/wrapper.nix diff --git a/pkgs/applications/misc/k3b/default.nix b/pkgs/applications/misc/k3b/default.nix index 922dec111806..8c69e36a4e49 100644 --- a/pkgs/applications/misc/k3b/default.nix +++ b/pkgs/applications/misc/k3b/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchurl, makeWrapper, automoc4, cmake, perl, pkgconfig , shared_mime_info, libvorbis, taglib, flac, libsamplerate , libdvdread, lame, libsndfile, libmad, gettext , transcode, cdrdao -, cdrtools, dvdplusrwtools, vcdimager, cdparanoia, kdelibs, libdvdcss, ffmpeg +, dvdplusrwtools, vcdimager, cdparanoia, kdelibs, libdvdcss, ffmpeg , kdemultimedia, phonon, libkcddb ? null }: @@ -9,10 +9,11 @@ let # at runtime, k3b needs the executables cdrdao, cdrecord, dvd+rw-format, # eMovix, growisofs, mkisofs, normalize, readcd, transcode, vcdxbuild, # vcdxminfo, and vcdxrip - binPath = lib.makeBinPath [ cdrdao dvdplusrwtools transcode vcdimager cdrtools ]; + binPath = lib.makeBinPath [ cdrdao dvdplusrwtools transcode vcdimager ]; in stdenv.mkDerivation rec { - name = "k3b-2.0.3a"; + name = "k3b-${version}"; + version = "2.0.3a"; src = fetchurl { url = "http://download.kde.org/stable/k3b/${name}.tar.xz"; diff --git a/pkgs/applications/misc/k3b/wrapper.nix b/pkgs/applications/misc/k3b/wrapper.nix new file mode 100644 index 000000000000..d5c98a2affa7 --- /dev/null +++ b/pkgs/applications/misc/k3b/wrapper.nix @@ -0,0 +1,23 @@ +{ lib, buildEnv, k3b-original, cdrtools, makeWrapper }: + +let + binPath = lib.makeBinPath [ cdrtools ]; +in buildEnv { + name = "k3b-${k3b-original.version}"; + + paths = [ k3b-original ]; + buildInputs = [ makeWrapper ]; + + postBuild = '' + # TODO: This could be avoided if buildEnv could be forced to create all directories + if [ -L $out/bin ]; then + rm $out/bin + mkdir $out/bin + for i in ${k3b-original}/bin/*; do + ln -s $i $out/bin + done + fi + wrapProgram $out/bin/k3b \ + --prefix PATH ':' ${binPath} + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c70314209b23..9a7bffe73a5e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15292,9 +15292,9 @@ in eventlist = callPackage ../applications/office/eventlist {}; - k3b = callPackage ../applications/misc/k3b { - cdrtools = cdrkit; - }; + k3b-original = lowPrio (callPackage ../applications/misc/k3b { }); + + k3b = callPackage ../applications/misc/k3b/wrapper.nix { }; kadu = callPackage ../applications/networking/instant-messengers/kadu { };