nixpkgs/pkgs/tools/X11/winswitch/default.nix
aszlig 4e10617bc4
winswitch: Basic somewhat working version.
Wow, this is one of the most dangerous programs I've seen in a while. It not
only tries to probe for a package manager to install dependencies but also
tries to execute a whole bunch of programs in $PATH. That's why I decided to
override the postFixup phase for now in order to get rid of the current $PATH
and meanwhile getting the basics working.

So, I'm still not sure how to do the best implementation here on NixOS without
allowing winswitch to be too invasive and without restricting it too much so
that it's of no use.

But let's figure that out once we trimmed down the radiation level of this
"living" thing ;-)

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-06-24 10:33:15 +02:00

47 lines
1.3 KiB
Nix

{ stdenv, fetchurl, buildPythonPackage, pythonPackages
, which, xpra, xmodmap }:
let
base = buildPythonPackage rec {
name = "winswitch-${version}";
namePrefix = "";
version = "0.12.16";
src = fetchurl {
url = "http://winswitch.org/src/${name}.src.tar.bz2";
sha256 = "0ix122d7rgzdkk70f2q3sd7a4pvyaqsyxkw93pc4zkcg1xh9z3y8";
};
propagatedBuildInputs = with pythonPackages; [
pygtk twisted pycrypto pyasn1 which xpra xmodmap
];
patchPhase = ''
sed -i -r -e 's|(PREFIX_DIR *= *).*|\1"'"$out"'"|' \
-e 's|(PREFIX_SEARCH_ORDER *= *).*|\1["'"$out"'"]|' \
-e 's|(ETC_SEARCH_ORDER *= *).*|\1["'"$out/etc"'"]|' \
-e 's|(BIN_SEARCH_ORDER *= *).*|\1["'"$out/bin"'"]|' \
winswitch/util/paths.py
sed -i -e '/elif *LINUX:/,/distro_helper/{
s/elif *LINUX:.*/else: name = "NixOS"/p
/distro_helper/!d
}' winswitch/util/distro_packaging_util.py
'';
buildPhase = ''
python setup.py build
'';
installCommand = ''
PREFIX="$out" python ./setup.py install --prefix="$out"
'';
doCheck = false;
};
in stdenv.lib.overrideDerivation base (b: {
postFixup = b.postFixup + ''
sed -i -e 's/\''${PATH:+:}\$PATH//g' "$out/bin"/*
'';
})