From 56a0d0b9689a89d77cdb0a99989568dff7f9d933 Mon Sep 17 00:00:00 2001 From: Astro Date: Thu, 10 Oct 2019 23:37:35 +0200 Subject: [PATCH] add frpball --- frpball.nix | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++ jobsets.nix | 8 +++++++ 2 files changed, 68 insertions(+) create mode 100644 frpball.nix diff --git a/frpball.nix b/frpball.nix new file mode 100644 index 0000000..677fb79 --- /dev/null +++ b/frpball.nix @@ -0,0 +1,60 @@ +{ pkgs ? import {}, +}: + +with pkgs; +let + source = stdenv.mkDerivation { + name = "frpball-source"; + src = ; + buildInputs = [ cabal2nix ]; + buildPhase = '' + cabal2nix . > package.nix + + cat > default.nix << EOF + { pkgs ? import {}, + }: + + let + # NixOS 19.09 ships gl-0.9 which is excluded from GPipe's + # dependency bounds + gl = with pkgs; with haskellPackages; mkDerivation { + pname = "gl"; + version = "0.8.0"; + sha256 = "0f8l1ra05asqjnk97sliqb3wqvr6lic18rfs1f9dm1kw2lw2hkda"; + revision = "3"; + editedCabalFile = "0q8d4237ds78y4p35xl2arlmmpgs2ag7krw9chby6q9dcs00zxrl"; + setupHaskellDepends = [ + base Cabal containers directory filepath hxt transformers + ]; + libraryHaskellDepends = [ + base containers fixed half transformers + ]; + librarySystemDepends = [ libGL ]; + description = "Complete OpenGL raw bindings"; + license = stdenv.lib.licenses.bsd3; + }; + haskellPackages = pkgs.haskellPackages.override { + overrides = self: super: { + inherit gl; + }; + }; + in + haskellPackages.callPackage ./package.nix {} + EOF + ''; + installPhase = "cp -ar . $out"; + }; + ghcVersions = + builtins.filter (p: + p == "ghcHEAD" || builtins.match "ghc[[:digit:]]+" p != null + ) (builtins.attrNames pkgs.haskell.packages); + frpball = haskellPackages: + import source { + pkgs = pkgs // { inherit haskellPackages; }; + }; +in +builtins.listToAttrs + (map (ghcVersion: { + name = "frpball-${ghcVersion}"; + value = pkgs.lib.hydraJob (frpball (builtins.getAttr ghcVersion haskell.packages)); + }) ghcVersions) diff --git a/jobsets.nix b/jobsets.nix index 3176be7..5564910 100644 --- a/jobsets.nix +++ b/jobsets.nix @@ -84,6 +84,14 @@ let ticker = "https://gitea.c3d2.de/astro/ticker.git master 1"; }; }; + + frpball = mkJobset { + description = "Functional reactive programming ball game"; + nixexprpath = "frpball.nix"; + gitUrls = { + frpball = "https://github.com/nek0/frpball.git master 1"; + }; + }; }; jobsetsJson = pkgs.writeText "jobsets.json" (builtins.toJSON jobsets );