···5252in
5353rec {
54545555- /* !!! The interface of this function is kind of messed up, since
5656- it's way too overloaded and almost but not quite computes a
5757- topological sort of the depstrings. */
5555+ /**
5656+ Topologically sort a collection of dependent strings.
5757+ Only the values to keys listed in `arg` and their dependencies will be included in the result.
5858+5959+ ::: {.note}
6060+ This function doesn't formally fulfill the definition of topological sorting, but it's good enough for our purposes in Nixpkgs.
6161+ :::
6262+6363+ # Inputs
6464+6565+ `predefined` (attribute set)
6666+6767+ : strings with annotated dependencies (strings or attribute set)
6868+ A value can be a simple string if it has no dependencies.
6969+ Otherwise, is can be an attribute set with the following attributes:
7070+ - `deps` (list of strings)
7171+ - `text` (Any
7272+7373+ `arg` (list of strings)
7474+7575+ : Keys for which the values in the dependency closure will be included in the result
7676+7777+ # Type
7878+7979+ ```
8080+ textClosureList :: { ${phase} :: { deps :: [String]; text :: String; } | String; } -> [String] -> [String]
8181+ ```
8282+8383+ # Examples
8484+ :::{.example}
8585+ ## `lib.stringsWithDeps.textClosureList` usage example
8686+8787+ ```nix
8888+ textClosureList {
8989+ a = {
9090+ deps = [ "b" "c" "e" ];
9191+ text = "a: depends on b, c and e";
9292+ };
9393+ b = {
9494+ deps = [ ];
9595+ text = "b: no dependencies";
9696+ };
9797+ c = {
9898+ deps = [ "b" ];
9999+ text = "c: depends on b";
100100+ };
101101+ d = {
102102+ deps = [ "c" ];
103103+ text = "d: not being depended on by anything in `arg`";
104104+ };
105105+ e = {
106106+ deps = [ "c" ];
107107+ text = "e: depends on c, depended on by a, not in `arg`";
108108+ };
109109+ } [
110110+ "a"
111111+ "b"
112112+ "c"
113113+ ]
114114+ => [
115115+ "b: no dependencies"
116116+ "c: depends on b"
117117+ "e: depends on c, depended on by a, not in `arg`"
118118+ "a: depends on b, c and e"
119119+ ]
120120+ ```
121121+ :::
58122123123+ Common real world usages are:
124124+ - Ordering the dependent phases of `system.activationScripts`
125125+ - Ordering the dependent phases of `system.userActivationScripts`
126126+127127+ For further examples see: [NixOS activation script](https://nixos.org/manual/nixos/stable/#sec-activation-script)
128128+129129+ */
59130 textClosureList = predefined: arg:
60131 let
61132 f = done: todo:
···343343 and returning a set with TOML-specific attributes `type` and
344344 `generate` as specified [below](#pkgs-formats-result).
345345346346+`pkgs.formats.cdn` { }
347347+348348+: A function taking an empty attribute set (for future extensibility)
349349+ and returning a set with [CDN](https://github.com/dzikoysk/cdn)-specific
350350+ attributes `type` and `generate` as specified [below](#pkgs-formats-result).
351351+346352`pkgs.formats.elixirConf { elixir ? pkgs.elixir }`
347353348354: A function taking an attribute set with values
+4
nixos/doc/manual/release-notes/rl-2505.section.md
···156156 access or want to access home directory via `killHook`, hardening setting can
157157 be changed via, e.g. `systemd.services.earlyoom.serviceConfig.ProtectSystem`.
158158159159+ `services.earlyoom.extraArgs` is now shell-escaped for each element without
160160+ word-breaking. So you want to write `extraArgs = [ "--prefer" "spaced pat" ]`
161161+ rather than previous `extraArgs = [ "--prefer 'spaced pat'" ]`.
162162+159163- `nodePackages.vls` has been deprecated, as the upstream consumer of it, vetur, has been deprecated by upstream. Upstream suggests migrating to Volar for Vue LSP tooling instead.
160164161165- `nodePackages.create-react-native-app` has been removed, as it is deprecated. Upstream suggests using a framework for React Native apps instead.
···139139 default = [ ];
140140 example = [
141141 "-g"
142142- "--prefer '(^|/)(java|chromium)$'"
142142+ "--prefer"
143143+ "(^|/)(java|chromium)$"
143144 ];
144144- description = "Extra command-line arguments to be passed to earlyoom.";
145145+ description = ''
146146+ Extra command-line arguments to be passed to earlyoom. Each element in
147147+ the value list will be escaped as an argument without further
148148+ word-breaking.
149149+ '';
145150 };
146151 };
147152
···11+libcob: Fix include for xmlCleanupParser
22+33+common.c uses xmlCleanupParser, which is defined in libxml/parser.h.
44+---
55+66+--- a/libcob/common.c 2025-01-01 03:03:49.762316279 +0100
77++++ b/libcob/common.c 2025-01-01 03:01:56.632597306 +0100
88+@@ -136,6 +136,7 @@
99+ #if defined (WITH_XML2)
1010+ #include <libxml/xmlversion.h>
1111+ #include <libxml/xmlwriter.h>
1212++#include <libxml/parser.h>
1313+ #endif
1414+1515+ #if defined (WITH_CJSON)
1616+
+4
pkgs/by-name/gn/gnucobol/package.nix
···6363 # XXX: Without this, we get a cycle between bin and dev
6464 propagatedBuildOutputs = [ ];
65656666+ patches = [
6767+ ./fix-libxml2-include.patch
6868+ ];
6969+6670 # Skips a broken test
6771 postPatch = ''
6872 sed -i '/^AT_CHECK.*crud\.cob/i AT_SKIP_IF([true])' tests/testsuite.src/listings.at
···88nix_args=(--arg nixos "import <nixpkgs/nixos> { }")
99flake=""
10101111+1212+discover_git() {
1313+ if [[ $# -ne 1 ]]; then
1414+ echo "$0 directory"
1515+ return 1
1616+ fi
1717+ local previous=
1818+ local current=$1
1919+2020+ while [[ -d "$current" && "$current" != "$previous" ]]; do
2121+ # .git can be a file for worktrees otherwise it's a directory
2222+ if [[ -d "$current/.git" ]]; then
2323+ echo "$current"
2424+ return
2525+ elif [[ -f "$current/.git" ]]; then
2626+ # resolve worktree
2727+ dotgit=$(<"$current/.git")
2828+ if [[ ${dotgit[0]} =~ gitdir:\ (.*) ]]; then
2929+ echo "${BASH_REMATCH[1]}"
3030+ return
3131+ fi
3232+ else
3333+ previous=$current
3434+ current=$(dirname "$current")
3535+ fi
3636+ done
3737+}
3838+1139while [[ $# -gt 0 ]]; do
1240 case "$1" in
1341 --help)
···6694fi
67956896if [[ -n "$flake" ]]; then
6969- echo >&2 "[WARN] Flake support in nixos-option is experimental and has known issues."
7070-7197 if [[ $flake =~ ^(.*)\#([^\#\"]*)$ ]]; then
7298 flake="${BASH_REMATCH[1]}"
7399 flakeAttr="${BASH_REMATCH[2]}"
74100 fi
75101 # Unlike nix cli, builtins.getFlake infer path:// when a path is given
76102 # See https://github.com/NixOS/nix/issues/5836
7777- # Using `git rev-parse --show-toplevel` since we can't assume the flake dir
7878- # itself is a git repo, because the flake could be in a sub directory
7979- if [[ -d "$flake" ]] && git -C "$flake" rev-parse --show-toplevel &>/dev/null; then
8080- flake="git+file://$(realpath "$flake")"
103103+ if [[ -d "$flake" ]]; then
104104+ repo=$(discover_git "$(realpath "$flake")")
105105+ if [[ -n "$repo" ]]; then
106106+ flake="git+file://$repo"
107107+ fi
81108 fi
82109 if [[ -z "${flakeAttr:-}" ]]; then
83110 hostname=$(< /proc/sys/kernel/hostname)
···36363737 doCheck = false;
38383939+ # /nix/store/.../bin/ld: internal/mkcw/embed/entrypoint_amd64.o: relocation R_X86_64_32S against `.rodata.1' can not be used when making a PIE object; recompile with -fPIE
4040+ hardeningDisable = [ "pie" ];
4141+3942 nativeBuildInputs = [
4043 go-md2man
4144 installShellFiles