···11+# CHICKEN {#sec-chicken}
22+33+[CHICKEN](https://call-cc.org/) is a
44+[R⁵RS](https://schemers.org/Documents/Standards/R5RS/HTML/)-compliant Scheme
55+compiler. It includes an interactive mode and a custom package format, "eggs".
66+77+## Using Eggs
88+99+Eggs described in nixpkgs are available inside the
1010+`chickenPackages.chickenEggs` attrset. Including an egg as a build input is
1111+done in the typical Nix fashion. For example, to include support for [SRFI
1212+189](https://srfi.schemers.org/srfi-189/srfi-189.html) in a derivation, one
1313+might write:
1414+1515+```nix
1616+ buildInputs = [
1717+ chicken
1818+ chickenPackages.chickenEggs.srfi-189
1919+ ];
2020+```
2121+2222+Both `chicken` and its eggs have a setup hook which configures the environment
2323+variables `CHICKEN_INCLUDE_PATH` and `CHICKEN_REPOSITORY_PATH`.
2424+2525+## Updating Eggs
2626+2727+nixpkgs only knows about a subset of all published eggs. It uses
2828+[egg2nix](https://github.com/the-kenny/egg2nix) to generate a
2929+package set from a list of eggs to include.
3030+3131+The package set is regenerated by running the following shell commands:
3232+3333+```
3434+$ nix-shell -p chickenPackages.egg2nix
3535+$ cd pkgs/development/compilers/chicken/5/
3636+$ egg2nix eggs.scm > eggs.nix
3737+```
3838+3939+## Adding Eggs
4040+4141+When we run `egg2nix`, we obtain one collection of eggs with
4242+mutually-compatible versions. This means that when we add new eggs, we may
4343+need to update existing eggs. To keep those separate, follow the procedure for
4444+updating eggs before including more eggs.
4545+4646+To include more eggs, edit `pkgs/development/compilers/chicken/5/eggs.scm`.
4747+The first section of this file lists eggs which are required by `egg2nix`
4848+itself; all other eggs go into the second section. After editing, follow the
4949+procedure for updating eggs.
···253253 => false
254254 */
255255 hasInfix = infix: content:
256256- let
257257- drop = x: substring 1 (stringLength x) x;
258258- in hasPrefix infix content
259259- || content != "" && hasInfix infix (drop content);
256256+ builtins.match ".*${escapeRegex infix}.*" content != null;
260257261258 /* Convert a string to a list of characters (i.e. singleton strings).
262259 This allows you to, e.g., map a function over each character. However,
···299299 virtualisation.qemu.diskInterface =
300300 if grubVersion == 1 then "scsi" else "virtio";
301301302302+ # We don't want to have any networking in the guest whatsoever.
303303+ # Also, if any vlans are enabled, the guest will reboot
304304+ # (with a different configuration for legacy reasons),
305305+ # and spend 5 minutes waiting for the vlan interface to show up
306306+ # (which will never happen).
307307+ virtualisation.vlans = [];
308308+302309 boot.loader.systemd-boot.enable = mkIf (bootLoader == "systemd-boot") true;
303310304311 hardware.enableAllFirmware = mkForce false;
···313320 docbook5
314321 docbook_xsl_ns
315322 kmod.dev
323323+ libarchive.dev
316324 libxml2.bin
317325 libxslt.bin
318326 nixos-artwork.wallpapers.simple-dark-gray-bottom
+1-1
nixos/tests/nar-serve.nix
···31313232 # Create a fake cache with Nginx service the static files
3333 server.succeed(
3434- "nix copy --to file:///var/www ${pkgs.hello}"
3434+ "nix --experimental-features nix-command copy --to file:///var/www ${pkgs.hello}"
3535 )
3636 server.wait_for_unit("nginx.service")
3737 server.wait_for_open_port(80)
···44, fetchFromGitHub
55, html5lib
66, pillow
77+, pyhanko
78, pypdf3
89, pytestCheckHook
910, python-bidi
···14151516buildPythonPackage rec {
1617 pname = "xhtml2pdf";
1717- version = "0.2.6";
1818+ version = "0.2.7";
1819 format = "setuptools";
19202021 disabled = pythonOlder "3.7";
21222323+ # Tests are only available on GitHub
2224 src = fetchFromGitHub {
2325 owner = pname;
2426 repo = pname;
2525- rev = "v${version}";
2626- hash = "sha256-EyIERvAC98LqPTMCdwWqTkm1RiMhikscL0tnMZUHIT8=";
2727+ # Currently it is not possible to fetch from version as there is a branch with the same name
2828+ rev = "afa72cdbbdaf7d459261c1605263101ffcd999af";
2929+ sha256 = "sha256-plyIM7Ohnp5UBWz/UDTJa1UeWK9yckSZR16wxmLrpnc=";
2730 };
28312932 propagatedBuildInputs = [
3033 arabic-reshaper
3134 html5lib
3235 pillow
3636+ pyhanko
3337 pypdf3
3438 python-bidi
3539 reportlab
···11+{ stdenv, fetchurl, patchelf }:
22+33+# Note: this package is used for bootstrapping fetchurl, and thus
44+# cannot use fetchpatch! All mutable patches (generated by GitHub or
55+# cgit) that are needed here should be included directly in Nixpkgs as
66+# files.
77+88+stdenv.mkDerivation rec {
99+ pname = "patchelf";
1010+ version = "0.13.1";
1111+1212+ src = fetchurl {
1313+ url = "https://github.com/NixOS/${pname}/releases/download/${version}/${pname}-${version}.tar.bz2";
1414+ sha256 = "sha256-OeiuzNdJXVTfCU0rSnwIAQ/3d3A2+q8k8o4Hd30VmOI=";
1515+ };
1616+1717+ setupHook = [ ./setup-hook.sh ];
1818+1919+ # fails 8 out of 24 tests, problems when loading libc.so.6
2020+ doCheck = stdenv.name == "stdenv-linux";
2121+2222+ inherit (patchelf) meta;
2323+}
+1-1
pkgs/development/tools/misc/patchelf/default.nix
···21212222 meta = with lib; {
2323 homepage = "https://github.com/NixOS/patchelf";
2424- license = licenses.gpl3;
2424+ license = licenses.gpl3Plus;
2525 description = "A small utility to modify the dynamic linker and RPATH of ELF executables";
2626 maintainers = [ maintainers.eelco ];
2727 platforms = platforms.all;