···66 if !builtins.isList files then [ files ] else files
67 );
68000000000000000000000069 setsForFile = fileName:
70 let
71 # extract the unique part of the config's file name
···77 builtins.match "ghc-([0-9]+).([0-9]+).x" configName
78 );
79 # return all package sets under haskell.packages matching the version components
80- setsForVersion = builtins.map (name: pkgs.haskell.packages.${name}) (
81 builtins.filter (setName:
82 lib.hasPrefix "ghc${configVersion}" setName
83 && (skipBinaryGHCs -> !(lib.hasInfix "Binary" setName))
84 ) (
85- builtins.attrNames pkgs.haskell.packages
86 )
87 );
88
···66 if !builtins.isList files then [ files ] else files
67 );
6869+ packageSetsWithVersionedHead = pkgs.haskell.packages // (
70+ let
71+ headSet = pkgs.haskell.packages.ghcHEAD;
72+ # Determine the next GHC release version following GHC HEAD.
73+ # GHC HEAD always has an uneven, tentative version number, e.g. 9.7.
74+ # GHC releases always have even numbers, i.e. GHC 9.8 is branched off from
75+ # GHC HEAD 9.7. Since we use the to be release number for GHC HEAD's
76+ # configuration file, we need to calculate this here.
77+ headVersion = lib.pipe headSet.ghc.version [
78+ lib.versions.splitVersion
79+ (lib.take 2)
80+ lib.concatStrings
81+ lib.strings.toInt
82+ (builtins.add 1)
83+ toString
84+ ];
85+ in
86+ {
87+ "ghc${headVersion}" = headSet;
88+ }
89+ );
90+91 setsForFile = fileName:
92 let
93 # extract the unique part of the config's file name
···99 builtins.match "ghc-([0-9]+).([0-9]+).x" configName
100 );
101 # return all package sets under haskell.packages matching the version components
102+ setsForVersion = builtins.map (name: packageSetsWithVersionedHead.${name}) (
103 builtins.filter (setName:
104 lib.hasPrefix "ghc${configVersion}" setName
105 && (skipBinaryGHCs -> !(lib.hasInfix "Binary" setName))
106 ) (
107+ builtins.attrNames packageSetsWithVersionedHead
108 )
109 );
110
+2
maintainers/scripts/haskell/update-stackage.sh
···63 -e '/ lsp-test /d' \
64 -e '/ hie-bios /d' \
65 -e '/ ShellCheck /d' \
066 < "${tmpfile_new}" >> $stackage_config
67# Explanations:
68# cabal2nix, distribution-nixpkgs, jailbreak-cabal, language-nix: These are our packages and we know what we are doing.
69# lsp, lsp-types, lsp-test, hie-bios: These are tightly coupled to hls which is not in stackage. They have no rdeps in stackage.
70# ShellCheck: latest version of command-line dev tool.
07172if [[ "${1:-}" == "--do-commit" ]]; then
73git add $stackage_config
···63 -e '/ lsp-test /d' \
64 -e '/ hie-bios /d' \
65 -e '/ ShellCheck /d' \
66+ -e '/ Agda /d' \
67 < "${tmpfile_new}" >> $stackage_config
68# Explanations:
69# cabal2nix, distribution-nixpkgs, jailbreak-cabal, language-nix: These are our packages and we know what we are doing.
70# lsp, lsp-types, lsp-test, hie-bios: These are tightly coupled to hls which is not in stackage. They have no rdeps in stackage.
71# ShellCheck: latest version of command-line dev tool.
72+# Agda: The Agda community is fast-moving; we strive to always include the newest versions of Agda and the Agda packages in nixpkgs.
7374if [[ "${1:-}" == "--do-commit" ]]; then
75git add $stackage_config
+2
nixos/doc/manual/release-notes/rl-2305.section.md
···4243- [atuin](https://github.com/ellie/atuin), a sync server for shell history. Available as [services.atuin](#opt-services.atuin.enable).
440045- [mmsd](https://gitlab.com/kop316/mmsd), a lower level daemon that transmits and recieves MMSes. Available as [services.mmsd](#opt-services.mmsd.enable).
4647- [QDMR](https://dm3mat.darc.de/qdmr/), a GUI application and command line tool for programming DMR radios [programs.qdmr](#opt-programs.qdmr.enable)
···4243- [atuin](https://github.com/ellie/atuin), a sync server for shell history. Available as [services.atuin](#opt-services.atuin.enable).
4445+- [networkd-dispatcher](https://gitlab.com/craftyguy/networkd-dispatcher), a dispatcher service for systemd-networkd connection status changes. Available as [services.networkd-dispatcher](#opt-services.networkd-dispatcher.enable).
46+47- [mmsd](https://gitlab.com/kop316/mmsd), a lower level daemon that transmits and recieves MMSes. Available as [services.mmsd](#opt-services.mmsd.enable).
4849- [QDMR](https://dm3mat.darc.de/qdmr/), a GUI application and command line tool for programming DMR radios [programs.qdmr](#opt-programs.qdmr.enable)
···85 runHook postInstall
86 '';
87000000088 meta = if meta.broken or false then meta // { hydraPlatforms = lib.platforms.none; } else meta;
8990 # Retrieve all packages from the finished package set that have the current package as a dependency and build them
···85 runHook postInstall
86 '';
8788+ # As documented at https://github.com/NixOS/nixpkgs/issues/172752,
89+ # we need to set LC_ALL to an UTF-8-supporting locale. However, on
90+ # darwin, it seems that there is no standard such locale; luckily,
91+ # the referenced issue doesn't seem to surface on darwin. Hence let's
92+ # set this only on non-darwin.
93+ LC_ALL = lib.optionalString (!stdenv.isDarwin) "C.UTF-8";
94+95 meta = if meta.broken or false then meta // { hydraPlatforms = lib.platforms.none; } else meta;
9697 # Retrieve all packages from the finished package set that have the current package as a dependency and build them
+4-4
pkgs/data/misc/hackage/pin.json
···1{
2- "commit": "307653b893cc53ffa71d6931c33101d352e3ead1",
3- "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/307653b893cc53ffa71d6931c33101d352e3ead1.tar.gz",
4- "sha256": "0mgmmzdlb9j4drkjjdrp2da8z4can7gg8zd007ya2jw17rz270hz",
5- "msg": "Update from Hackage at 2023-01-29T01:30:53Z"
6}
···1{
2+ "commit": "220fb2ad74640b02e543271393f21ba227bd2627",
3+ "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/220fb2ad74640b02e543271393f21ba227bd2627.tar.gz",
4+ "sha256": "1hpbqw04i8p2h5w31a7rqlmhdjpj4r4v62kdqich57hm1cj2ml7h",
5+ "msg": "Update from Hackage at 2023-02-13T17:53:53Z"
6}
···48 # still the case when updating: https://gitlab.haskell.org/ghc/ghc/-/blob/0198841877f6f04269d6050892b98b5c3807ce4c/ghc.mk#L463
49 xhtml = if self.ghc.hasHaddock or true then null else self.xhtml_3000_2_2_1;
5051- # cabal-install needs most recent versions of Cabal and Cabal-syntax
52- cabal-install = super.cabal-install.overrideScope (self: super: {
53- Cabal = self.Cabal_3_8_1_0;
54- Cabal-syntax = self.Cabal-syntax_3_8_1_0;
55- process = self.process_1_6_16_0;
56- # Prevent dependency on doctest which causes an inconsistent dependency
57- # due to depending on ghc-8.10.7 (with bundled process) vs. process 1.6.16.0
58- vector = dontCheck super.vector;
59- });
60- cabal-install-solver = super.cabal-install-solver.overrideScope (self: super: {
61- Cabal = self.Cabal_3_8_1_0;
62- Cabal-syntax = self.Cabal-syntax_3_8_1_0;
63- process = self.process_1_6_16_0;
64- });
65-66 # Additionally depends on OneTuple for GHC < 9.0
67 base-compat-batteries = addBuildDepend self.OneTuple super.base-compat-batteries;
68···72 # ghc versions which don’t match the ghc-lib-parser-ex version need the
73 # additional dependency to compile successfully.
74 ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser super.ghc-lib-parser-ex;
0007576 # Jailbreak to fix the build.
77 base-noprelude = doJailbreak super.base-noprelude;
···48 # still the case when updating: https://gitlab.haskell.org/ghc/ghc/-/blob/0198841877f6f04269d6050892b98b5c3807ce4c/ghc.mk#L463
49 xhtml = if self.ghc.hasHaddock or true then null else self.xhtml_3000_2_2_1;
5000000000000000051 # Additionally depends on OneTuple for GHC < 9.0
52 base-compat-batteries = addBuildDepend self.OneTuple super.base-compat-batteries;
53···57 # ghc versions which don’t match the ghc-lib-parser-ex version need the
58 # additional dependency to compile successfully.
59 ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser super.ghc-lib-parser-ex;
60+61+ # Needs to use ghc-lib due to incompatible GHC
62+ ghc-tags = doDistribute (addBuildDepend self.ghc-lib self.ghc-tags_1_5);
6364 # Jailbreak to fix the build.
65 base-noprelude = doJailbreak super.base-noprelude;
···49 # still the case when updating: https://gitlab.haskell.org/ghc/ghc/-/blob/0198841877f6f04269d6050892b98b5c3807ce4c/ghc.mk#L463
50 xhtml = if self.ghc.hasHaddock or true then null else self.xhtml_3000_2_2_1;
5152- # cabal-install needs the latest/matching versions of Cabal-syntax and Cabal
53- cabal-install = super.cabal-install.overrideScope (self: super: {
54- Cabal = self.Cabal_3_8_1_0;
55- Cabal-syntax = self.Cabal-syntax_3_8_1_0;
56- process = self.process_1_6_16_0;
57- });
58- cabal-install-solver = super.cabal-install-solver.overrideScope (self: super: {
59- Cabal = self.Cabal_3_8_1_0;
60- Cabal-syntax = self.Cabal-syntax_3_8_1_0;
61- process = self.process_1_6_16_0;
62- });
63-64 # Jailbreaks & Version Updates
6566 # This `doJailbreak` can be removed once the following PR is released to Hackage:
···120 # Apply this here and not in common, because other ghc versions offer different Cabal versions.
121 Cabal = lself.Cabal_3_6_3_0;
122 }));
000123124 # This package is marked as unbuildable on GHC 9.2, so hackage2nix doesn't include any dependencies.
125 # See https://github.com/NixOS/nixpkgs/pull/205902 for why we use `self.<package>.scope`
···49 # still the case when updating: https://gitlab.haskell.org/ghc/ghc/-/blob/0198841877f6f04269d6050892b98b5c3807ce4c/ghc.mk#L463
50 xhtml = if self.ghc.hasHaddock or true then null else self.xhtml_3000_2_2_1;
5100000000000052 # Jailbreaks & Version Updates
5354 # This `doJailbreak` can be removed once the following PR is released to Hackage:
···108 # Apply this here and not in common, because other ghc versions offer different Cabal versions.
109 Cabal = lself.Cabal_3_6_3_0;
110 }));
111+112+ # Needs to use ghc-lib due to incompatible GHC
113+ ghc-tags = doDistribute (addBuildDepend self.ghc-lib self.ghc-tags_1_5);
114115 # This package is marked as unbuildable on GHC 9.2, so hackage2nix doesn't include any dependencies.
116 # See https://github.com/NixOS/nixpkgs/pull/205902 for why we use `self.<package>.scope`
···874 (overrideCabal { doCheck = pkgs.postgresql.doCheck; })
875 ];
8760000877 cachix = super.cachix.override {
878 nix = self.hercules-ci-cnix-store.passthru.nixPackage;
879 fsnotify = dontCheck super.fsnotify_0_4_1_0;
···940941 # Tries to access network
942 aws-sns-verify = dontCheck super.aws-sns-verify;
000943944 # procex relies on close_range which has been introduced in Linux 5.9,
945 # the test suite seems to force the use of this feature (or the fallback
···1046 hint = dontCheck super.hint;
10471048 # Make sure that Cabal 3.8.* can be built as-is
1049- Cabal_3_8_1_0 = doDistribute (super.Cabal_3_8_1_0.override {
1050 Cabal-syntax = self.Cabal-syntax_3_8_1_0;
001051 process = self.process_1_6_16_0;
1052- });
10531054 # cabal-install switched to build type simple in 3.2.0.0
1055 # as a result, the cabal(1) man page is no longer installed
···874 (overrideCabal { doCheck = pkgs.postgresql.doCheck; })
875 ];
876877+ # Wants running postgresql database accessible over ip, so postgresqlTestHook
878+ # won't work (or would need to patch test suite).
879+ domaindriven-core = dontCheck super.domaindriven-core;
880+881 cachix = super.cachix.override {
882 nix = self.hercules-ci-cnix-store.passthru.nixPackage;
883 fsnotify = dontCheck super.fsnotify_0_4_1_0;
···944945 # Tries to access network
946 aws-sns-verify = dontCheck super.aws-sns-verify;
947+948+ # Test suite requires network access
949+ minicurl = dontCheck super.minicurl;
950951 # procex relies on close_range which has been introduced in Linux 5.9,
952 # the test suite seems to force the use of this feature (or the fallback
···1053 hint = dontCheck super.hint;
10541055 # Make sure that Cabal 3.8.* can be built as-is
1056+ Cabal_3_8_1_0 = doDistribute (super.Cabal_3_8_1_0.override ({
1057 Cabal-syntax = self.Cabal-syntax_3_8_1_0;
1058+ } // lib.optionalAttrs (lib.versionOlder self.ghc.version "9.2.5") {
1059+ # Use process core package when possible
1060 process = self.process_1_6_16_0;
1061+ }));
10621063 # cabal-install switched to build type simple in 3.2.0.0
1064 # as a result, the cabal(1) man page is no longer installed
···97 }).${ver.majMinTiny}
98 ++ op (lib.versionOlder ver.majMin "3.1") ./do-not-regenerate-revision.h.patch
99 ++ op (atLeast30 && useBaseRuby) ./do-not-update-gems-baseruby.patch
0000000100 ++ ops (!atLeast30 && rubygemsSupport) [
101 # We upgrade rubygems to a version that isn't compatible with the
102 # ruby 2.7 installer. Backport the upstream fix.
···97 }).${ver.majMinTiny}
98 ++ op (lib.versionOlder ver.majMin "3.1") ./do-not-regenerate-revision.h.patch
99 ++ op (atLeast30 && useBaseRuby) ./do-not-update-gems-baseruby.patch
100+ ++ ops (ver.majMin == "3.0") [
101+ # Ruby 3.0 adds `-fdeclspec` to $CC instead of $CFLAGS. Fixed in later versions.
102+ (fetchpatch {
103+ url = "https://github.com/ruby/ruby/commit/0acc05caf7518cd0d63ab02bfa036455add02346.patch";
104+ sha256 = "sha256-43hI9L6bXfeujgmgKFVmiWhg7OXvshPCCtQ4TxqK1zk=";
105+ })
106+ ]
107 ++ ops (!atLeast30 && rubygemsSupport) [
108 # We upgrade rubygems to a version that isn't compatible with the
109 # ruby 2.7 installer. Backport the upstream fix.
···1{ lib, mkDerivation, fetchFromGitHub, standard-library }:
23mkDerivation rec {
4- version = "0.1.7.1";
5 pname = "agda-categories";
67 src = fetchFromGitHub {
8 owner = "agda";
9 repo = "agda-categories";
10 rev = "v${version}";
11- sha256 = "1acb693ad2nrmnn6jxsyrlkc0di3kk2ksj2w9wnyfxrgvfsil7rn";
12 };
1314- # Remove this once new version of agda-categories is released which
15- # directly references standard-library-1.7.1
16 postPatch = ''
17- substituteInPlace agda-categories.agda-lib \
18- --replace 'standard-library-1.7' 'standard-library-1.7.1'
000000000019 '';
2021 buildInputs = [ standard-library ];
···1{ lib, mkDerivation, fetchFromGitHub, standard-library }:
23mkDerivation rec {
4+ version = "0.1.7.1a";
5 pname = "agda-categories";
67 src = fetchFromGitHub {
8 owner = "agda";
9 repo = "agda-categories";
10 rev = "v${version}";
11+ sha256 = "sha256-VlxRDxXg+unzYlACUU58JQUHXxtg0fI5dEQvlBRxJtU=";
12 };
130014 postPatch = ''
15+ # Remove this once agda-categories incorporates this fix or once Agda's
16+ # versioning system gets an overhaul in general. Right now there is no middle
17+ # ground between "no version constraint" and "exact match down to patch". We
18+ # do not want to need to change this postPatch directive on each minor
19+ # version update of the stdlib, so we get rid of the version constraint
20+ # altogether.
21+ sed -Ei 's/standard-library-[0-9.]+/standard-library/' agda-categories.agda-lib
22+23+ # The Makefile of agda-categories uses git(1) instead of find(1) to
24+ # determine the list of source files. We cannot use git, as $PWD will not
25+ # be a valid Git working directory.
26+ find src -name '*.agda' | sed -e 's|^src/[/]*|import |' -e 's|/|.|g' -e 's/.agda//' -e '/import Everything/d' | LC_COLLATE='C' sort > Everything.agda
27 '';
2829 buildInputs = [ standard-library ];
···148 boost160 = throw "boost160 has been deprecated in favor of the latest version"; # Added 2023-01-01
149 botan = throw "botan has been removed because it did not support a supported openssl version"; # added 2021-12-15
150 bpftool = bpftools; # Added 2021-05-03
0151 brackets = throw "brackets has been removed, it was unmaintained and had open vulnerabilities"; # Added 2021-01-24
152 bridge_utils = throw "'bridge_utils' has been renamed to/replaced by 'bridge-utils'"; # Converted to throw 2022-02-22
153 bro = zeek; # Added 2019-09-29
···148 boost160 = throw "boost160 has been deprecated in favor of the latest version"; # Added 2023-01-01
149 botan = throw "botan has been removed because it did not support a supported openssl version"; # added 2021-12-15
150 bpftool = bpftools; # Added 2021-05-03
151+ bpytop = throw "bpytop has been deprecated by btop"; # Added 2023-02-16
152 brackets = throw "brackets has been removed, it was unmaintained and had open vulnerabilities"; # Added 2021-01-24
153 bridge_utils = throw "'bridge_utils' has been renamed to/replaced by 'bridge-utils'"; # Converted to throw 2022-02-22
154 bro = zeek; # Added 2019-09-29