nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix

62 lines
1.7 KiB
Nix
Raw Normal View History

args :
let
lib = args.lib;
fetchurl = args.fetchurl;
noDepEntry = args.noDepEntry;
fullDepEntry = args.fullDepEntry;
buildInputs = lib.attrVals ["clisp" "texinfo"] args;
version = lib.attrByPath ["version"] "0.9.7" args;
pkgName = "stumpwm";
in
rec {
src = fetchurl {
url = "mirror://savannah/stumpwm/${pkgName}-${version}.tgz";
sha256 = "a0793d22ef90731d34f84e51deafb4bc2095a357c70b9505dc57516f481cdf78";
};
inherit buildInputs;
configureFlags = ["--with-lisp=clisp"];
envVars = noDepEntry (''
export HOME="$NIX_BUILD_TOP";
'');
installation = fullDepEntry (''
mkdir -p $out/bin
mkdir -p $out/share/stumpwm/doc
mkdir -p $out/share/info
mkdir -p $out/share/stumpwm/lisp
cp stumpwm $out/bin
cp contrib/stumpish $out/bin || true
cp sample-stumpwmrc.lisp $out/share/stumpwm/doc
cp stumpwm.info $out/share/info
cp -r {.,cl-ppcre}/*.{lisp,fas,lib,asd} contrib $out/share/stumpwm/lisp
cd $out/share/stumpwm/lisp
cat << EOF >init-stumpwm.lisp
(require "asdf")
(asdf:operate 'asdf:load-op :cl-ppcre)
(asdf:operate 'asdf:load-op :stumpwm)
EOF
clisp -K full -i init-stumpwm.lisp
cat << EOF >init-stumpwm.lisp
(require "asdf")
(asdf:operate 'asdf:load-source-op :cl-ppcre)
(asdf:operate 'asdf:load-source-op :stumpwm)
EOF
'') ["minInit" "defEnsureDir" "addInputs" "doMake"];
/* doConfigure should be specified separately */
phaseNames = ["envVars" "doConfigure" "doMake" "installation"];
name = "${pkgName}-" + version;
meta = {
description = "Common Lisp-based ratpoison-like window manager";
maintainers = [args.lib.maintainers.raskin];
platforms = with args.lib.platforms;
linux ++ freebsd;
};
}