summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
authorArianna Masciolini <uzkamascio@gmail.com>2025-08-08 20:15:46 +0200
committerArianna Masciolini <uzkamascio@gmail.com>2025-08-08 20:15:46 +0200
commit17ebcac84f6bbed07532b300d17095a6b4768033 (patch)
treefc1725bb427b808e397d3980122917154109a2a0 /flake.nix
parent7d018dde6276a18388f5429d5953adee927a1ea1 (diff)
parent4dba12c0cefbc6dde77c0f4ef63d039f525e26e1 (diff)
Merge branch 'master' of https://github.com/GrammaticalFramework/gf-core
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix50
1 files changed, 50 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 000000000..ccacc15b0
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,50 @@
+{
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05";
+ systems.url = "github:nix-systems/default";
+ };
+
+ nixConfig = {
+ # extra-trusted-public-keys =
+ # "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=";
+ # extra-substituters = "https://devenv.cachix.org";
+ };
+
+ outputs = { self, nixpkgs, systems, ... }@inputs:
+ let forEachSystem = nixpkgs.lib.genAttrs (import systems);
+ in {
+ packages = forEachSystem (system:
+ let
+ pkgs = nixpkgs.legacyPackages.${system};
+ haskellPackages = pkgs.haskell.packages.ghc925.override {
+ overrides = self: _super: {
+ cgi = pkgs.haskell.lib.unmarkBroken (pkgs.haskell.lib.dontCheck
+ (self.callHackage "cgi" "3001.5.0.1" { }));
+ };
+ };
+
+ in {
+ gf = pkgs.haskell.lib.overrideCabal
+ (haskellPackages.callCabal2nixWithOptions "gf" self "--flag=-server"
+ { }) (_old: {
+ # Fix utf8 encoding problems
+ patches = [
+ # Already applied in master
+ # (
+ # pkgs.fetchpatch {
+ # url = "https://github.com/anka-213/gf-core/commit/6f1ca05fddbcbc860898ddf10a557b513dfafc18.patch";
+ # sha256 = "17vn3hncxm1dwbgpfmrl6gk6wljz3r28j191lpv5zx741pmzgbnm";
+ # }
+ # )
+ ./nix/expose-all.patch
+ ./nix/revert-new-cabal-madness.patch
+ ];
+ jailbreak = true;
+ # executableSystemDepends = [
+ # (pkgs.ncurses.override { enableStatic = true; })
+ # ];
+ # executableHaskellDepends = [ ];
+ });
+ });
+ };
+}