{ inputs = { nixpkgs = { type = "github"; owner = "nixos"; repo = "nixpkgs"; ref = "nixos-22.05"; }; flake-compat = { url = "github:edolstra/flake-compat"; flake = false; }; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-compat, flake-utils, }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; fwoar-lisputils = pkgs.lispPackages.buildLispPackage { baseName = "fwoar-lisputils"; version = "whatever"; buildSystems = ["fwoar-lisputils"]; description = "lisputils"; deps = with pkgs.quicklispPackages; [ alexandria cl-containers closer-mop iterate parachute plump serapeum swank uiop yason ]; src = pkgs.fetchFromGitHub { owner = "fiddlerwoaroof"; repo = "fwoar-lisputils"; rev = "5e0d458a4d70e35fea74ecc1edc3352d26b2b74e"; sha256 = "sha256-XTCBgREpTcvug2rLDQbvnwo8k59NaraswFve0TH9DmI="; }; asdFilesToKeep = ["fwoar-lisputils.asd"]; }; cl-isaac = pkgs.lispPackages.buildLispPackage { baseName = "cl-isaac"; version = "whatever"; buildSystems = ["cl-isaac"]; description = "lisputils"; deps = with pkgs.quicklispPackages; [ ]; src = pkgs.fetchFromGitHub { owner = "thephoeron"; repo = "cl-isaac"; rev = "master"; sha256 = "sha256-iV+7YkGPAA+e0SXODlSDAJIUUiL+pcj2ya7FHJGr4UU="; }; asdFilesToKeep = ["cl-isaac.asd"]; }; map-set = pkgs.lispPackages.buildLispPackage { baseName = "map-set"; version = "whatever"; buildSystems = ["map-set"]; description = "lisputils"; deps = with pkgs.quicklispPackages; [ ]; src = builtins.fetchTarball { url = "http://beta.quicklisp.org/archive/map-set/2019-03-07/map-set-20190307-hg.tgz"; sha256 = "0fikz2s0pw5dfbs91j8y7iy3908gknhxy9047mp23jxv1f54jzdh"; }; asdFilesToKeep = ["map-set.asd"]; }; lack = pkgs.lispPackages.buildLispPackage { baseName = "lack"; version = "whatever"; buildSystems = [ # "lack-app-directory" # "lack-app-file" "lack-component" "lack-middleware-accesslog" "lack-middleware-auth-basic" "lack-middleware-backtrace" "lack-middleware-csrf" "lack-middleware-mount" "lack-middleware-session" # "lack-middleware-static" "lack-request" "lack-response" # "lack-session-store-dbi" # "lack-session-store-redis" # "lack-test" "lack-util-writer-stream" "lack-util" "lack" ]; description = "lisputils"; deps = with pkgs.quicklispPackages; [ bordeaux-threads circular-streams cl-base64 cl-isaac http-body local-time quri split-sequence ]; src = pkgs.fetchFromGitHub { owner = "fukamachi"; repo = "lack"; rev = "master"; sha256 = "sha256-XCbaAqZhyBd9h6clFbQPV2QdlfdQBmfGE43dkDv5pXs="; }; asdFilesToKeep = [ # "lack-app-directory.asd" # "lack-app-file.asd" "lack-component.asd" "lack-middleware-accesslog.asd" "lack-middleware-auth-basic.asd" "lack-middleware-backtrace.asd" "lack-middleware-csrf.asd" "lack-middleware-mount.asd" "lack-middleware-session.asd" # "lack-middleware-static.asd" "lack-request.asd" "lack-response.asd" # "lack-session-store-dbi.asd" # "lack-session-store-redis.asd" # "lack-test.asd" "lack-util-writer-stream.asd" "lack-util.asd" "lack.asd" ]; }; myway = pkgs.lispPackages.buildLispPackage { baseName = "myway"; version = "whatever"; buildSystems = ["myway"]; description = "lisputils"; deps = with pkgs.quicklispPackages; [ cl-ppcre map-set quri ]; src = pkgs.fetchFromGitHub { owner = "fukamachi"; repo = "myway"; rev = "master"; sha256 = "sha256-TzXyS6MVYxjM06hHMYOz6hVYDXHzfyncKQRvtm5HTHU="; }; asdFilesToKeep = ["myway.asd"]; }; ningle = pkgs.lispPackages.buildLispPackage { baseName = "ningle"; version = "whatever"; buildSystems = ["ningle"]; description = "lisputils"; deps = with pkgs.quicklispPackages; [ cl-syntax-annot lack myway ]; src = pkgs.fetchFromGitHub { owner = "fukamachi"; repo = "ningle"; rev = "master"; sha256 = "sha256-F7ngGme6akS+vC/XH3iHFk/r9WKybeZzGojIQCuyNmk="; }; asdFilesToKeep = ["ningle.asd"]; }; araneus = pkgs.lispPackages.buildLispPackage { baseName = "araneus"; version = "whatever"; buildSystems = ["araneus"]; description = "lisputils"; deps = [ningle] ++ (with pkgs.quicklispPackages; [ alexandria fwoar-lisputils spinneret cl-mustache ]); src = pkgs.fetchFromGitHub { owner = "fiddlerwoaroof"; repo = "araneus"; rev = "4cc1c130b6e0c01b81b5a4a83d744025d37a48d1"; sha256 = "sha256-Jxbx7gLIW8T6FNLdxepCbEEYRFtGAmvZ1L4lvlAeqPY="; }; asdFilesToKeep = ["araneus.asd"]; }; in { packages = { inherit fwoar-lisputils araneus; default = pkgs.stdenv.mkDerivation { inherit system; name = "wfv"; src = ./.; builder = ./build.sh; dontStrip = true; LD_LIBRARY_PATH = "${pkgs.openssl.out}/lib"; nativeBuildInputs = [ ]; buildInputs = [ pkgs.bash pkgs.makeWrapper pkgs.openssl.dev araneus fwoar-lisputils pkgs.quicklispPackages.alexandria (pkgs.quicklispPackages.clack.override (o: { buildSystems = [ # "clack-handler-fcgi" "clack-handler-hunchentoot" # "clack-handler-toot" # "clack-handler-wookie "clack-socket" # "clack-test" "clack" ]; asdFilesToKeep = [ # "clack-handler-fcgi.asd" "clack-handler-hunchentoot.asd" # "clack-handler-toot.asd" # "clack-handler-wookie.asd" "clack-socket.asd" # "clack-test.asd" "clack.asd" ]; deps = with pkgs.quicklispPackages; o.deps ++ [ hunchentoot ]; })) pkgs.quicklispPackages.drakma pkgs.quicklispPackages.fset pkgs.quicklispPackages.hunchentoot pkgs.quicklispPackages.quri pkgs.quicklispPackages.serapeum pkgs.quicklispPackages.spinneret pkgs.quicklispPackages.uiop pkgs.quicklispPackages.yason pkgs.sbcl pkgs.which ]; }; docker = pkgs.dockerTools.buildLayeredImage { name = "wfv-docker"; config = { Cmd = ["${self.packages.${system}.default}/bin/wfv"]; }; }; }; }); }