From dfe608c8a2ecfdf0ab2838a967440207250a0b95 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Tue, 26 Apr 2016 15:10:42 +0300 Subject: symlinkJoin: accept set as an argument with additional options --- nixos/modules/services/logging/logcheck.nix | 5 ++++- nixos/modules/services/mail/dovecot.nix | 6 ++++-- pkgs/build-support/trivial-builders.nix | 14 +++++++++++--- pkgs/desktops/kde-5/plasma-5.5/default.nix | 6 ++++-- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/nixos/modules/services/logging/logcheck.nix b/nixos/modules/services/logging/logcheck.nix index 6069262b4705..3a85fa60fe7a 100644 --- a/nixos/modules/services/logging/logcheck.nix +++ b/nixos/modules/services/logging/logcheck.nix @@ -11,7 +11,10 @@ let rm $out/logcheck.* ''; - rulesDir = pkgs.symlinkJoin "logcheck-rules-dir" ([ defaultRules ] ++ cfg.extraRulesDirs); + rulesDir = pkgs.symlinkJoin + { name = "logcheck-rules-dir"; + paths = ([ defaultRules ] ++ cfg.extraRulesDirs); + }; configFile = pkgs.writeText "logcheck.conf" cfg.config; diff --git a/nixos/modules/services/mail/dovecot.nix b/nixos/modules/services/mail/dovecot.nix index 127c3da69d14..47e374d8edc3 100644 --- a/nixos/modules/services/mail/dovecot.nix +++ b/nixos/modules/services/mail/dovecot.nix @@ -63,8 +63,10 @@ let cfg.extraConfig ]; - modulesDir = pkgs.symlinkJoin "dovecot-modules" - (map (pkg: "${pkg}/lib/dovecot") ([ dovecotPkg ] ++ map (module: module.override { dovecot = dovecotPkg; }) cfg.modules)); + modulesDir = pkgs.symlinkJoin { + name = "dovecot-modules"; + paths = map (pkg: "${pkg}/lib/dovecot") ([ dovecotPkg ] ++ map (module: module.override { dovecot = dovecotPkg; }) cfg.modules); + }; in { diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix index fef91e1d89dc..b0040cf18177 100644 --- a/pkgs/build-support/trivial-builders.nix +++ b/pkgs/build-support/trivial-builders.nix @@ -47,16 +47,24 @@ rec { # Create a forest of symlinks to the files in `paths'. - symlinkJoin = name: paths: + symlinkJoin = + { name + , paths + , preferLocalBuild ? true + , allowSubstitutes ? false + , postBuild ? "" + , buildInputs ? [] + , meta ? {} + }: runCommand name - { inherit paths; - preferLocalBuild = true; allowSubstitutes = false; + { inherit paths preferLocalBuild allowSubstitutes buildInputs meta; } '' mkdir -p $out for i in $paths; do ${lndir}/bin/lndir $i $out done + ${postBuild} ''; diff --git a/pkgs/desktops/kde-5/plasma-5.5/default.nix b/pkgs/desktops/kde-5/plasma-5.5/default.nix index a4f5c7c23204..3921f93a41d1 100644 --- a/pkgs/desktops/kde-5/plasma-5.5/default.nix +++ b/pkgs/desktops/kde-5/plasma-5.5/default.nix @@ -51,8 +51,10 @@ let let version = (builtins.parseDrvName breeze-qt5.name).version; in - symlinkJoin "breeze-${version}" - (map (pkg: pkg.out or pkg) [ breeze-gtk breeze-qt4 breeze-qt5 ]); + symlinkJoin { + name = "breeze-${version}"; + paths = map (pkg: pkg.out or pkg) [ breeze-gtk breeze-qt4 breeze-qt5 ]; + }; kde-cli-tools = callPackage ./kde-cli-tools.nix {}; kde-gtk-config = callPackage ./kde-gtk-config {}; kdecoration = callPackage ./kdecoration.nix {}; -- cgit 1.4.1 From 5690c6ca071e388e1ff9f9981a6def0a45349be0 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Tue, 26 Apr 2016 15:26:15 +0300 Subject: deadbeef-with-plugins: use symlinkJoin --- pkgs/applications/audio/deadbeef/wrapper.nix | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/pkgs/applications/audio/deadbeef/wrapper.nix b/pkgs/applications/audio/deadbeef/wrapper.nix index b612f195af3f..5b14302204e7 100644 --- a/pkgs/applications/audio/deadbeef/wrapper.nix +++ b/pkgs/applications/audio/deadbeef/wrapper.nix @@ -1,22 +1,14 @@ -{ stdenv, buildEnv, deadbeef, makeWrapper, plugins }: +{ stdenv, symlinkJoin, deadbeef, makeWrapper, plugins }: -let -drv = buildEnv { - name = "deadbeef-with-plugins-" + (builtins.parseDrvName deadbeef.name).version; +symlinkJoin { + name = "deadbeef-with-plugins-${deadbeef.version}"; paths = [ deadbeef ] ++ plugins; + 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 ${deadbeef}/bin/*; do - ln -s $i $out/bin - done - fi wrapProgram $out/bin/deadbeef \ --set DEADBEEF_PLUGIN_DIR "$out/lib/deadbeef" ''; - }; -in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; }) +} -- cgit 1.4.1 From 41b6a178260ad1fe627c0a9faf795920b4dd68dc Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Tue, 26 Apr 2016 15:26:23 +0300 Subject: puredata-with-plugins: use symlinkJoin --- pkgs/applications/audio/puredata/wrapper.nix | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/pkgs/applications/audio/puredata/wrapper.nix b/pkgs/applications/audio/puredata/wrapper.nix index 0a30037b2268..9c0a48db51cc 100644 --- a/pkgs/applications/audio/puredata/wrapper.nix +++ b/pkgs/applications/audio/puredata/wrapper.nix @@ -1,23 +1,16 @@ -{ stdenv, buildEnv, puredata, makeWrapper, plugins }: +{ stdenv, symlinkJoin, puredata, makeWrapper, plugins }: let puredataFlags = map (x: "-path ${x}/") plugins; -drv = buildEnv { - name = "puredata-with-plugins-" + (builtins.parseDrvName puredata.name).version; +in symlinkJoin { + name = "puredata-with-plugins-${puredata.version}"; paths = [ puredata ] ++ plugins; + 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 ${puredata}/bin/*; do - ln -s $i $out/bin - done - fi wrapProgram $out/bin/pd \ --add-flags "${toString puredataFlags}" ''; - }; -in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; }) +} -- cgit 1.4.1 From d04dafd64eaaff5b55ba277662a7ec376cc2f10f Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Tue, 26 Apr 2016 15:26:45 +0300 Subject: gimp: add version to derivation, use symlinkJoin for a wrapper --- pkgs/applications/graphics/gimp/2.8.nix | 3 ++- pkgs/applications/graphics/gimp/wrapper.nix | 19 ++++++------------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/pkgs/applications/graphics/gimp/2.8.nix b/pkgs/applications/graphics/gimp/2.8.nix index b09838656929..5943cb9cdacf 100644 --- a/pkgs/applications/graphics/gimp/2.8.nix +++ b/pkgs/applications/graphics/gimp/2.8.nix @@ -4,7 +4,8 @@ , python, pygtk, libart_lgpl, libexif, gettext, xorg, wrapPython }: stdenv.mkDerivation rec { - name = "gimp-2.8.16"; + name = "gimp-${version}"; + version = "2.8.16"; # This declarations for `gimp-with-plugins` wrapper, # (used for determining $out/lib/gimp/${majorVersion}/ paths) diff --git a/pkgs/applications/graphics/gimp/wrapper.nix b/pkgs/applications/graphics/gimp/wrapper.nix index 53067dc39c9a..7455a69dde97 100644 --- a/pkgs/applications/graphics/gimp/wrapper.nix +++ b/pkgs/applications/graphics/gimp/wrapper.nix @@ -1,24 +1,18 @@ -{ stdenv, lib, buildEnv, gimp, makeWrapper, gimpPlugins, plugins ? null}: +{ stdenv, lib, symlinkJoin, gimp, makeWrapper, gimpPlugins, plugins ? null}: let allPlugins = lib.filter (pkg: builtins.isAttrs pkg && pkg.type == "derivation") (lib.attrValues gimpPlugins); selectedPlugins = if plugins == null then allPlugins else plugins; extraArgs = map (x: x.wrapArgs or "") selectedPlugins; -drv = buildEnv { - name = "gimp-with-plugins-" + (builtins.parseDrvName gimp.name).version; +in symlinkJoin { + name = "gimp-with-plugins-${gimp.version}"; paths = [ gimp ] ++ selectedPlugins; + 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 ${gimp}/bin/*; do - ln -s $i $out/bin - done - fi for each in gimp-2.8 gimp-console-2.8; do wrapProgram $out/bin/$each \ --set GIMP2_PLUGINDIR "$out/lib/gimp/2.0" \ @@ -29,5 +23,4 @@ drv = buildEnv { ln -sf "$each-2.8" $out/bin/$each done ''; - }; -in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; }) +} -- cgit 1.4.1 From d40e636bdc27341ca8dc72b0dd6763126930138c Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Tue, 26 Apr 2016 15:26:55 +0300 Subject: k3b: use symlinkJoin --- pkgs/applications/misc/k3b/wrapper.nix | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/pkgs/applications/misc/k3b/wrapper.nix b/pkgs/applications/misc/k3b/wrapper.nix index d5c98a2affa7..486d3fb7ddf7 100644 --- a/pkgs/applications/misc/k3b/wrapper.nix +++ b/pkgs/applications/misc/k3b/wrapper.nix @@ -1,22 +1,14 @@ -{ lib, buildEnv, k3b-original, cdrtools, makeWrapper }: +{ lib, symlinkJoin, k3b-original, cdrtools, makeWrapper }: let binPath = lib.makeBinPath [ cdrtools ]; -in buildEnv { +in symlinkJoin { 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} ''; -- cgit 1.4.1 From c1e9ea6c86343541978593fe1af068d9d62d4e2a Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Tue, 26 Apr 2016 15:27:05 +0300 Subject: rxvt_unicode-with-plugins: use symlinkJoin --- pkgs/applications/misc/rxvt_unicode/wrapper.nix | 33 ++++++++++--------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/pkgs/applications/misc/rxvt_unicode/wrapper.nix b/pkgs/applications/misc/rxvt_unicode/wrapper.nix index 2f68e4ec5f11..c9b0823fb51f 100644 --- a/pkgs/applications/misc/rxvt_unicode/wrapper.nix +++ b/pkgs/applications/misc/rxvt_unicode/wrapper.nix @@ -1,28 +1,21 @@ -{ stdenv, buildEnv, rxvt_unicode, makeWrapper, plugins }: +{ stdenv, symlinkJoin, rxvt_unicode, makeWrapper, plugins }: let rxvt = rxvt_unicode.override { perlSupport = true; }; - drv = buildEnv { - name = "${rxvt.name}-with-plugins"; +in symlinkJoin { + name = "${rxvt.name}-with-plugins"; - paths = [ rxvt ] ++ plugins; + paths = [ rxvt ] ++ plugins; - 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 ${rxvt}/bin/*; do - ln -s $i $out/bin - done - fi - wrapProgram $out/bin/urxvt \ - --suffix-each URXVT_PERL_LIB ':' "$out/lib/urxvt/perl" - wrapProgram $out/bin/urxvtd \ - --suffix-each URXVT_PERL_LIB ':' "$out/lib/urxvt/perl" - ''; - }; -in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; }) + buildInputs = [ makeWrapper ]; + + postBuild = '' + wrapProgram $out/bin/urxvt \ + --suffix-each URXVT_PERL_LIB ':' "$out/lib/urxvt/perl" + wrapProgram $out/bin/urxvtd \ + --suffix-each URXVT_PERL_LIB ':' "$out/lib/urxvt/perl" + ''; +} -- cgit 1.4.1 From 1f89dbd46b9aa6c8ca3877e2fb4463dd61cf217b Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Tue, 26 Apr 2016 15:27:17 +0300 Subject: pidgin-with-plugins: use symlinkJoin --- .../networking/instant-messengers/pidgin/wrapper.nix | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix b/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix index 7e637c767cfa..cff0f0818eeb 100644 --- a/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix +++ b/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix @@ -1,24 +1,17 @@ -{ stdenv, buildEnv, pidgin, makeWrapper, plugins }: +{ stdenv, symlinkJoin, pidgin, makeWrapper, plugins }: let extraArgs = map (x: x.wrapArgs or "") plugins; -drv = buildEnv { - name = "pidgin-with-plugins-" + (builtins.parseDrvName pidgin.name).version; +in symlinkJoin { + name = "pidgin-with-plugins-${pidgin.version}"; paths = [ pidgin ] ++ plugins; + 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 ${pidgin}/bin/*; do - ln -s $i $out/bin - done - fi wrapProgram $out/bin/pidgin \ --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.majorVersion} $out/lib/pidgin" \ ${toString extraArgs} ''; - }; -in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; }) +} -- cgit 1.4.1 From 7b4fc0f5a97aca61a08643938f5104254cc6a39b Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Tue, 26 Apr 2016 15:27:25 +0300 Subject: avidemux: use symlinkJoin --- pkgs/applications/video/avidemux/wrapper.nix | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/pkgs/applications/video/avidemux/wrapper.nix b/pkgs/applications/video/avidemux/wrapper.nix index 1d1c66cb9fe5..7f05b81baec7 100644 --- a/pkgs/applications/video/avidemux/wrapper.nix +++ b/pkgs/applications/video/avidemux/wrapper.nix @@ -1,4 +1,4 @@ -{ buildEnv, avidemux_unwrapped, makeWrapper +{ symlinkJoin, avidemux_unwrapped, makeWrapper # GTK version is broken upstream, see https://bugzilla.redhat.com/show_bug.cgi?id=1244340 , withUi ? "qt4" }: @@ -7,24 +7,14 @@ let ui = builtins.getAttr "avidemux_${withUi}" avidemux_unwrapped; in assert ui.isUi; -buildEnv { - name = "avidemux-${withUi}-" + ui.version; +symlinkJoin { + name = "avidemux-${withUi}-${ui.version}"; paths = [ ui avidemux_unwrapped.avidemux_common avidemux_unwrapped.avidemux_settings ]; - ignoreCollisions = true; - 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 ${ui}/bin/*; do - ln -s $i $out/bin - done - fi for i in $out/bin/*; do wrapProgram $i --set ADM_ROOT_DIR $out done -- cgit 1.4.1 From aa1a40b63d30e994232bcf69fbadb8873743a1c9 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Tue, 26 Apr 2016 15:27:48 +0300 Subject: dwarf-therapist: add version to derivation, use symlinkJoin --- .../dwarf-fortress/dwarf-therapist/default.nix | 6 ++---- .../dwarf-fortress/dwarf-therapist/wrapper.nix | 22 +++++----------------- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix index 6c094ff20f81..37eab6d077a3 100644 --- a/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix +++ b/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix @@ -1,10 +1,8 @@ { stdenv, fetchFromGitHub, coreutils, qtbase, qtdeclarative, qmakeHook, texlive }: -let - version = "37.0.0"; -in -stdenv.mkDerivation { +stdenv.mkDerivation rec { name = "dwarf-therapist-original-${version}"; + version = "37.0.0"; src = fetchFromGitHub { owner = "splintermind"; diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix index a16c1284a672..cbc8d31e6750 100644 --- a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix +++ b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix @@ -1,4 +1,4 @@ -{ buildEnv, lib, dwarf-therapist-original, dwarf-fortress-original, makeWrapper }: +{ symlinkJoin, lib, dwarf-therapist-original, dwarf-fortress-original, makeWrapper }: let df = dwarf-fortress-original; @@ -6,8 +6,8 @@ let inifile = "linux/v0${df.baseVersion}.${df.patchVersion}.ini"; dfHashFile = "${df}/hash.md5"; -in buildEnv { - name = "dwarf-therapist-${lib.getVersion dt}"; +in symlinkJoin { + name = "dwarf-therapist-${dt.version}"; paths = [ dt ]; @@ -16,22 +16,10 @@ in buildEnv { postBuild = '' # DwarfTherapist assumes it's run in $out/share/dwarftherapist and # therefore uses many relative paths. - rm $out/bin - mkdir $out/bin - makeWrapper ${dt}/bin/DwarfTherapist $out/bin/DwarfTherapist \ + wrapProgram $out/bin/DwarfTherapist \ --run "cd $out/share/dwarftherapist" - # Fix checksum of memory access directives. We really need #4621 fixed! - recreate_dir() { - rm "$out/$1" - mkdir -p "$out/$1" - for i in "${dt}/$1/"*; do - ln -s "$i" "$out/$1" - done - } - - recreate_dir share - recreate_dir share/dwarftherapist + rm -rf $out/share/dwarftherapist/memory_layouts/linux mkdir -p $out/share/dwarftherapist/memory_layouts/linux origmd5=$(cat "${dfHashFile}.orig" | cut -c1-8) patchedmd5=$(cat "${dfHashFile}" | cut -c1-8) -- cgit 1.4.1 From 73db7887edc223bde336e84e4001ce692c8a922f Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Tue, 26 Apr 2016 15:27:59 +0300 Subject: brasero: use symlinkJoin --- pkgs/tools/cd-dvd/brasero/wrapper.nix | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/pkgs/tools/cd-dvd/brasero/wrapper.nix b/pkgs/tools/cd-dvd/brasero/wrapper.nix index 021e0da0e724..839cc1d604e6 100644 --- a/pkgs/tools/cd-dvd/brasero/wrapper.nix +++ b/pkgs/tools/cd-dvd/brasero/wrapper.nix @@ -1,22 +1,14 @@ -{ lib, buildEnv, brasero-original, cdrtools, makeWrapper }: +{ lib, symlinkJoin, brasero-original, cdrtools, makeWrapper }: let binPath = lib.makeBinPath [ cdrtools ]; -in buildEnv { +in symlinkJoin { name = "brasero-${brasero-original.version}"; paths = [ brasero-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 ${brasero-original}/bin/*; do - ln -s $i $out/bin - done - fi wrapProgram $out/bin/brasero \ --prefix PATH ':' ${binPath} ''; -- cgit 1.4.1 From 8415fa35c79214fc2093882ed688f98f9abf7048 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Tue, 26 Apr 2016 15:28:06 +0300 Subject: fcitx-with-plugins: use symlinkJoin --- pkgs/tools/inputmethods/fcitx/wrapper.nix | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/pkgs/tools/inputmethods/fcitx/wrapper.nix b/pkgs/tools/inputmethods/fcitx/wrapper.nix index a0ae26189541..1e1a2b76a4bb 100644 --- a/pkgs/tools/inputmethods/fcitx/wrapper.nix +++ b/pkgs/tools/inputmethods/fcitx/wrapper.nix @@ -1,4 +1,4 @@ -{ stdenv, buildEnv, fcitx, fcitx-configtool, makeWrapper, plugins, kde5 }: +{ stdenv, symlinkJoin, fcitx, fcitx-configtool, makeWrapper, plugins, kde5 }: # This is based on the pidgin-with-plugins package. # Users should be able to configure what plugins are used @@ -12,24 +12,16 @@ # (fcitx-with-plugins.override { plugins = [ fcitx-anthy ]; }) # } -let -drv = buildEnv { - name = "fcitx-with-plugins-" + (builtins.parseDrvName fcitx.name).version; +symlinkJoin { + name = "fcitx-with-plugins-${fcitx.version}"; paths = [ fcitx fcitx-configtool kde5.fcitx-qt5 ] ++ plugins; + 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 ${fcitx}/bin/*; do - ln -s $i $out/bin - done - fi wrapProgram $out/bin/fcitx \ --set FCITXDIR "$out/" ''; - }; -in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; }) +} -- cgit 1.4.1