01bad09eed
This is not the final layout yet, but makes it so that my top-level attribute set is no longer overlaid into nixpkgs itself. This is useful for other people who are importing my monorepo.
61 lines
1.5 KiB
Nix
61 lines
1.5 KiB
Nix
{ pkgs, ... }:
|
|
|
|
let
|
|
inherit (pkgs) lispPackages;
|
|
inherit (pkgs.third_party.nixpkgs) stdenv sbcl elmPackages makeWrapper openssl;
|
|
|
|
frontend = stdenv.mkDerivation {
|
|
name = "gemma-frontend";
|
|
src = ./frontend;
|
|
buildInputs = [ elmPackages.elm ];
|
|
|
|
phases = [ "unpackPhase" "buildPhase" ];
|
|
buildPhase = ''
|
|
mkdir .home && export HOME="$PWD/.home"
|
|
mkdir -p $out
|
|
elm-make --yes Main.elm --output $out/index.html
|
|
'';
|
|
};
|
|
in stdenv.mkDerivation rec {
|
|
name = "gemma";
|
|
src = ./.;
|
|
|
|
nativeBuildInputs = with lispPackages; [
|
|
sbcl
|
|
hunchentoot
|
|
cl-json
|
|
cffi
|
|
cl-prevalence
|
|
local-time
|
|
makeWrapper
|
|
];
|
|
|
|
buildPhase = ''
|
|
mkdir -p $out/share/gemma $out/bin
|
|
|
|
# Build Lisp using the Nix-provided wrapper which sets the load
|
|
# paths correctly.
|
|
cd $src
|
|
env GEMMA_BIN_TARGET=$out/bin/gemma common-lisp.sh --load build.lisp
|
|
|
|
# Wrap gemma to find OpenSSL at runtime:
|
|
wrapProgram $out/bin/gemma --prefix LD_LIBRARY_PATH : "${openssl.out}/lib"
|
|
|
|
# and finally copy the frontend to the appropriate spot
|
|
cp ${frontend}/index.html $out/share/gemma/index.html
|
|
'';
|
|
|
|
installPhase = "true";
|
|
|
|
# Stripping an SBCL executable removes the application, which is unfortunate.
|
|
dontStrip = true;
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "Tool for tracking recurring tasks";
|
|
homepage = "https://github.com/tazjin/gemma";
|
|
license = licenses.gpl3;
|
|
|
|
# Lisp builds are broken for some reason (2019-09-22)
|
|
broken = true;
|
|
};
|
|
}
|