summary refs log tree commit diff
diff options
context:
space:
mode:
authorWeijia Wang <9713184+wegank@users.noreply.github.com>2023-08-31 01:05:51 +0200
committerGitHub <noreply@github.com>2023-08-31 01:05:51 +0200
commit30c071bebb01ce521ce6a2b02ea1ca035b03214b (patch)
treed7e0149509260642ef34b5000ed3508e47c14304
parentff65ba82ffe49b99b9722ca2ac42c54d0aa333ac (diff)
parentf58a6078fa737bd9a2c68db99486132f88b132af (diff)
downloadnixpkgs-30c071bebb01ce521ce6a2b02ea1ca035b03214b.tar
nixpkgs-30c071bebb01ce521ce6a2b02ea1ca035b03214b.tar.gz
nixpkgs-30c071bebb01ce521ce6a2b02ea1ca035b03214b.tar.bz2
nixpkgs-30c071bebb01ce521ce6a2b02ea1ca035b03214b.tar.lz
nixpkgs-30c071bebb01ce521ce6a2b02ea1ca035b03214b.tar.xz
nixpkgs-30c071bebb01ce521ce6a2b02ea1ca035b03214b.tar.zst
nixpkgs-30c071bebb01ce521ce6a2b02ea1ca035b03214b.zip
Merge pull request #249982 from nagy/chicken-scope
chickenPackages: turn into scope, update
-rw-r--r--doc/languages-frameworks/chicken.section.md29
-rw-r--r--pkgs/development/compilers/chicken/4/default.nix2
-rw-r--r--pkgs/development/compilers/chicken/5/default.nix66
-rw-r--r--pkgs/development/compilers/chicken/5/deps.toml72
-rw-r--r--pkgs/top-level/all-packages.nix4
5 files changed, 102 insertions, 71 deletions
diff --git a/doc/languages-frameworks/chicken.section.md b/doc/languages-frameworks/chicken.section.md
index d329943dc3c..72c2642a647 100644
--- a/doc/languages-frameworks/chicken.section.md
+++ b/doc/languages-frameworks/chicken.section.md
@@ -47,3 +47,32 @@ To include more eggs, edit `pkgs/development/compilers/chicken/5/eggs.scm`.
 The first section of this file lists eggs which are required by `egg2nix`
 itself; all other eggs go into the second section. After editing, follow the
 procedure for updating eggs.
+
+## Override Scope {#sec-chicken-override-scope}
+
+The chicken package and its eggs, respectively, reside in a scope. This means,
+the scope can be overridden to effect other packages in it.
+
+This example shows how to use a local copy of `srfi-180` and have it affect
+all the other eggs:
+
+```nix
+let
+  myChickenPackages = pkgs.chickenPackages.overrideScope' (self: super: {
+      # The chicken package itself can be overridden to effect the whole ecosystem.
+      # chicken = super.chicken.overrideAttrs {
+      #   src = ...
+      # };
+
+      chickenEggs = super.chickenEggs.overrideScope' (eggself: eggsuper: {
+        srfi-180 = eggsuper.srfi-180.overrideAttrs {
+          # path to a local copy of srfi-180
+          src = ...
+        };
+      });
+  });
+in
+# Here, `myChickenPackages.chickenEggs.json-rpc`, which depends on `srfi-180` will use
+# the local copy of `srfi-180`.
+# ...
+```
diff --git a/pkgs/development/compilers/chicken/4/default.nix b/pkgs/development/compilers/chicken/4/default.nix
index 08952e028de..de64d20d3e0 100644
--- a/pkgs/development/compilers/chicken/4/default.nix
+++ b/pkgs/development/compilers/chicken/4/default.nix
@@ -18,4 +18,4 @@ let
     egg2nix = callPackage ./egg2nix.nix { };
   };
 
-in lib.recurseIntoAttrs self
+in self
diff --git a/pkgs/development/compilers/chicken/5/default.nix b/pkgs/development/compilers/chicken/5/default.nix
index 6aed893c97e..e66b4940ff0 100644
--- a/pkgs/development/compilers/chicken/5/default.nix
+++ b/pkgs/development/compilers/chicken/5/default.nix
@@ -1,40 +1,42 @@
 { lib, newScope, fetchurl }:
-let
-  callPackage = newScope self;
 
-  self = with lib; {
-    inherit callPackage;
+lib.makeScope newScope (self: {
 
-    fetchegg = { pname, version, sha256, ... }:
-      fetchurl {
-        inherit sha256;
-        url =
-          "https://code.call-cc.org/egg-tarballs/5/${pname}/${pname}-${version}.tar.gz";
-      };
-
-    eggDerivation = callPackage ./eggDerivation.nix { };
-
-    chicken = callPackage ./chicken.nix {
-      bootstrap-chicken = self.chicken.override { bootstrap-chicken = null; };
+  fetchegg = { pname, version, sha256, ... }:
+    fetchurl {
+      inherit sha256;
+      url =
+        "https://code.call-cc.org/egg-tarballs/5/${pname}/${pname}-${version}.tar.gz";
     };
 
-    chickenEggs = recurseIntoAttrs (mapAttrs (pname:
-      eggData@{ version, synopsis, dependencies, license, ... }:
-      self.eggDerivation {
-        name = "${pname}-${version}";
-        src = self.fetchegg (eggData // { inherit pname; });
-        buildInputs = map (x: self.chickenEggs.${x}) dependencies;
-        meta.homepage =
-          "https://code.call-cc.org/cgi-bin/gitweb.cgi?p=eggs-5-latest.git;a=tree;f=${pname}/${version}";
-        meta.description = synopsis;
-        meta.license = (licenses // {
-          "bsd-2-clause" = licenses.bsd2;
-          "bsd-3-clause" = licenses.bsd3;
-          "public-domain" = licenses.publicDomain;
-        }).${license} or license;
-      }) (importTOML ./deps.toml));
+  eggDerivation = self.callPackage ./eggDerivation.nix { };
 
-    egg2nix = callPackage ./egg2nix.nix { };
+  chicken = self.callPackage ./chicken.nix {
+    bootstrap-chicken = self.chicken.override { bootstrap-chicken = null; };
   };
 
-in lib.recurseIntoAttrs self
+  chickenEggs = lib.recurseIntoAttrs (lib.makeScope self.newScope (eggself:
+    (lib.mapAttrs
+      (pname:
+        eggData@{ version, synopsis, dependencies, license, ... }:
+        self.eggDerivation {
+          name = "${pname}-${version}";
+          src = self.fetchegg (eggData // { inherit pname; });
+          buildInputs = map (x: eggself.${x}) dependencies;
+          meta.homepage =
+            "https://code.call-cc.org/cgi-bin/gitweb.cgi?p=eggs-5-latest.git;a=tree;f=${pname}/${version}";
+          meta.description = synopsis;
+          meta.license = (lib.licenses // {
+            "bsd-1-clause" = lib.licenses.bsd1;
+            "bsd-2-clause" = lib.licenses.bsd2;
+            "bsd-3-clause" = lib.licenses.bsd3;
+            "lgpl-2.0+" = lib.licenses.lgpl2Plus;
+            "lgpl-2.1-or-later" = lib.licenses.lgpl21Plus;
+            "public-domain" = lib.licenses.publicDomain;
+          }).${license} or license;
+        })
+      (lib.importTOML ./deps.toml))));
+
+  egg2nix = self.callPackage ./egg2nix.nix { };
+
+})
diff --git a/pkgs/development/compilers/chicken/5/deps.toml b/pkgs/development/compilers/chicken/5/deps.toml
index b61c38506bb..e54ac4691c7 100644
--- a/pkgs/development/compilers/chicken/5/deps.toml
+++ b/pkgs/development/compilers/chicken/5/deps.toml
@@ -107,9 +107,9 @@ version = "0.6"
 [apropos]
 dependencies = ["srfi-1", "utf8", "string-utils", "symbol-utils", "check-errors"]
 license = "bsd"
-sha256 = "1xnqfnbnac4pzm4j3mphq09p18q962dxg11cfyxqk8k6v8qrv5nh"
+sha256 = "0njkdxwd9122l9vql64nqm7dy3lggikr2bzwidwk7i8yz3nm3g6w"
 synopsis = "CHICKEN apropos"
-version = "3.7.2"
+version = "3.8.1"
 
 [arcadedb]
 dependencies = ["uri-common", "medea"]
@@ -282,9 +282,9 @@ version = "1.37"
 [bitwise-utils]
 dependencies = []
 license = "public-domain"
-sha256 = "09fdcv81069br4pz0ccr2jj6xgakvwbshdiy21r85865r7r6g05m"
+sha256 = "065q6ha8wsj6qhg7zxkaj2qrj5sm3iz2v7shcp5wh7j3fqwbs5q5"
 synopsis = "Bitwise utilities"
-version = "1.2.5"
+version = "1.3.0"
 
 [blas]
 dependencies = ["bind", "compile-file", "srfi-13"]
@@ -364,11 +364,11 @@ synopsis = "Byte array utility procedures for blobs."
 version = "2.3"
 
 [cairo]
-dependencies = []
+dependencies = ["srfi-1"]
 license = "lgpl-2.1"
-sha256 = "1krsjlydqa9zj0bpad0w4x636kg30ng1azlyyn8j8vx3b8lcd362"
+sha256 = "1x69i4aysn8mf93ic36947p6gvgglk8c0vg2m6vdhimf6y65szi1"
 synopsis = "Chicken bindings for Cairo, a vector graphics library"
-version = "0.1.17"
+version = "0.1.18"
 
 [call-table-generics]
 dependencies = ["brev-separate"]
@@ -1157,9 +1157,9 @@ version = "0.4.2"
 [gochan]
 dependencies = ["matchable", "srfi-18", "queues"]
 license = "bsd"
-sha256 = "1yp3yzfx97qfx8kkxvjvs1vnr2h8iffnx1zaqq05dbh5ivnx74j8"
+sha256 = "1pyzr387zbbw7x9zk524qcs368hzxv4c46p24cz3x2nl30y84d5h"
 synopsis = "golang channels in CHICKEN"
-version = "5.2.9"
+version = "5.2.10"
 
 [graph-bfs]
 dependencies = ["srfi-1", "iset", "matchable", "yasos", "digraph"]
@@ -1213,9 +1213,9 @@ version = "0.10.1"
 [hash-trie]
 dependencies = []
 license = "mit"
-sha256 = "0kcr99fdc0b09inq8ansb79ynblcxryvsg67zfms5y7z91v11p0c"
+sha256 = "1860bp5h3kh0ra6b2qvb5pccylajq1x2hng0skqnv8ik068lnfr0"
 synopsis = "hash-trie"
-version = "1.1.7"
+version = "1.1.8"
 
 [heap-o-rama]
 dependencies = ["srfi-18"]
@@ -1395,9 +1395,9 @@ version = "0.3"
 [ipfs]
 dependencies = ["http-client", "intarweb", "medea", "srfi-1", "srfi-13", "srfi-189", "srfi-197", "uri-common"]
 license = "unlicense"
-sha256 = "1cxjbl5kl4xk42a4p8j3av6ip0gqvp5yxahsccvm0snc98n3ngqg"
+sha256 = "1mw6z3piddy9xz494kv0243jhhirlb1dp15dph2p1ks4bhipbr4m"
 synopsis = "IPFS HTTP API for Scheme"
-version = "0.0.12"
+version = "0.0.13"
 
 [irc]
 dependencies = ["matchable", "regex", "srfi-1"]
@@ -1556,9 +1556,9 @@ version = "1.2.1"
 [list-utils]
 dependencies = ["utf8", "srfi-1", "check-errors"]
 license = "bsd"
-sha256 = "0wqmsvh3sfgp8ssh98n8y615lxnjlcda1k375jfss7vf8k5xn032"
+sha256 = "0sbd04kmiahk7mbw1cy64n1qjz2rpldjx66aj41r964kjscm6izv"
 synopsis = "list-utils"
-version = "2.4.3"
+version = "2.5.1"
 
 [live-define]
 dependencies = ["matchable"]
@@ -1794,9 +1794,9 @@ version = "0.7"
 [micro-benchmark]
 dependencies = ["micro-stats", "srfi-1"]
 license = "gplv3"
-sha256 = "0ahvxdm350bc9v80gnb8ccmjqqp60jznfjkx7w5ypf0q61mnj8sj"
+sha256 = "022fkwr1wm1im40rgk3g5dz8n4rvlw1zdmskqsh9idv31gbfi456"
 synopsis = "Easily create micro-benchmarks"
-version = "0.0.19"
+version = "0.0.20"
 
 [micro-stats]
 dependencies = ["srfi-1", "sequences", "sequences-utils"]
@@ -2333,9 +2333,9 @@ version = "2.1.2"
 [rlimit]
 dependencies = ["srfi-13"]
 license = "bsd"
-sha256 = "0jmz98253k3q9a6kyyby6jm722w3s74c5y3km7ih9ybjjmcdkyzv"
+sha256 = "1yxdn9y11i8s9mj5dknlpz588d48bklylxcq73v0s48a5m7vfpwp"
 synopsis = "Setting resource limits"
-version = "1.0.1"
+version = "1.0.2"
 
 [rocksdb]
 dependencies = []
@@ -2368,9 +2368,9 @@ version = "0.9.12"
 [s9fes-char-graphics]
 dependencies = ["srfi-1", "utf8", "format"]
 license = "public-domain"
-sha256 = "1h12l59860cyv8xwvvpf96dnlqwd25mrq2qapj9nyxv0vbkcs4p6"
+sha256 = "1ysz8vrx7zwfv4drx955ca28avmdfilafd9a20sl67y5vwb47i8m"
 synopsis = "Scheme 9 from Empty Space Char Graphics"
-version = "1.3.3"
+version = "1.4.2"
 
 [salmonella-diff]
 dependencies = ["salmonella", "salmonella-html-report", "srfi-1", "srfi-13", "sxml-transforms"]
@@ -2508,9 +2508,9 @@ version = "1.9.1"
 [sequences-utils]
 dependencies = ["srfi-1", "srfi-69", "sequences"]
 license = "bsd"
-sha256 = "0s5yadn034a3g89xjcy0yxga7k60dadcnynv16yvbcfg4wjrs81k"
+sha256 = "1c0yq4bzq6lkax4pwky5vyb2gl0yw88r7fzsbx37xsw14lb4fl64"
 synopsis = "(More) Generic sequence operators"
-version = "0.4.0"
+version = "0.5.0"
 
 [sequences]
 dependencies = ["fast-generic", "srfi-42"]
@@ -3047,9 +3047,9 @@ version = "0.2.3"
 [srfi-18]
 dependencies = []
 license = "bsd"
-sha256 = "0v2pkdck0ji1wiqgg8sg4z6rbkj2qw4vy4b9lx0w0pmhlxqpg1xd"
+sha256 = "0mkg3g045md9v74p4ac24q0c4xvvinz1nggakyg7wlg7c176i2l9"
 synopsis = "SRFI-18 thread library"
-version = "0.1.6"
+version = "0.1.7"
 
 [srfi-180]
 dependencies = ["r7rs", "srfi-60", "srfi-145", "srfi-121"]
@@ -3068,9 +3068,9 @@ version = "1.0.3"
 [srfi-19]
 dependencies = ["srfi-1", "utf8", "srfi-18", "srfi-29", "srfi-69", "miscmacros", "locale", "record-variants", "check-errors"]
 license = "bsd"
-sha256 = "14nyv6m67k2angmhg028rd50mq77qi1zfr5f0praiyy07k2pmcpz"
+sha256 = "0mq9nd1ck1qq9bs415xw4sqlbw1jcrg9n1vrh8kiqy197xbymh0h"
 synopsis = "Time Data Types and Procedures"
-version = "4.7.3"
+version = "4.7.5"
 
 [srfi-193]
 dependencies = []
@@ -3159,9 +3159,9 @@ version = "4.2.2"
 [srfi-29]
 dependencies = ["srfi-1", "srfi-69", "utf8", "locale", "posix-utils", "condition-utils", "check-errors"]
 license = "bsd"
-sha256 = "1wxz4kj6dqylfiqi035vzsphgbj68y6wwivmx25z5j11c8v3s81c"
+sha256 = "15g2knq5b76f3nhxnmxidhkvbw9dyyc00hrzvsnpkmnfqzcmxbxw"
 synopsis = "Localization"
-version = "3.0.6"
+version = "3.0.7"
 
 [srfi-34]
 dependencies = []
@@ -3647,11 +3647,11 @@ synopsis = "tracing and breakpoints"
 version = "2.0"
 
 [transducers]
-dependencies = ["srfi-1", "srfi-128", "srfi-133", "srfi-143", "srfi-146", "srfi-160", "check-errors"]
+dependencies = ["srfi-1", "srfi-128", "srfi-133", "srfi-143", "srfi-146", "srfi-160", "check-errors", "r7rs"]
 license = "mit"
-sha256 = "0mkrrfvskwgy5w8c9gz21np3p9857sm8fylq0hjz608jaxzybpcz"
+sha256 = "162f0xvk69jha55sszdkgm47q18k3x5bc2g6psn2107im4ma45fi"
 synopsis = "Transducers for working with foldable data types."
-version = "0.4.0"
+version = "0.4.2"
 
 [transmission]
 dependencies = ["http-client", "intarweb", "medea", "r7rs", "srfi-1", "srfi-189", "uri-common"]
@@ -3789,9 +3789,9 @@ version = "3.6.3"
 [uuid-lib]
 dependencies = ["record-variants"]
 license = "bsd"
-sha256 = "0da71k0f3j1l9wjnfk9gqs9gw3v1192xhxbxv2gfmah3fvxf203p"
+sha256 = "1hk5p2yvwq4dx93a1wnxggrbwkh050b6m9jlw44s7xvhxhvdqyns"
 synopsis = "OSF DCE 1.1 UUID"
-version = "0.0.10"
+version = "0.0.14"
 
 [uuid]
 dependencies = []
@@ -3915,9 +3915,9 @@ version = "0.2"
 [zshbrev]
 dependencies = ["brev"]
 license = "lgplv3"
-sha256 = "16sn87z72x8d4ddbkwgz1jxas471r5nvazwi0klsn204v1qc30dy"
+sha256 = "1id8a728ibi3fzcpfdd7ary41g7nrlb7pc3vjpmz70jp1q53qppx"
 synopsis = "Access Chicken functions from any shell and access zsh functions from Chicken"
-version = "1.19"
+version = "1.20"
 
 [zstd]
 dependencies = []
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index bb58fbf4719..9a2eb1dfa2a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -15510,8 +15510,8 @@ with pkgs;
   colmap = libsForQt5.callPackage ../applications/science/misc/colmap { inherit (config) cudaSupport; };
   colmapWithCuda = colmap.override { cudaSupport = true; };
 
-  chickenPackages_4 = callPackage ../development/compilers/chicken/4 { };
-  chickenPackages_5 = callPackage ../development/compilers/chicken/5 { };
+  chickenPackages_4 = recurseIntoAttrs (callPackage ../development/compilers/chicken/4 { });
+  chickenPackages_5 = recurseIntoAttrs (callPackage ../development/compilers/chicken/5 { });
   chickenPackages = dontRecurseIntoAttrs chickenPackages_5;
 
   inherit (chickenPackages_5)