From f495f235540757b21deeb702e9305dcbc5439889 Mon Sep 17 00:00:00 2001 From: Ivan Mincik Date: Wed, 1 Nov 2023 20:08:38 +0100 Subject: [PATCH 01/21] qgis: 3.32.3 -> 3.34.0 Co-authored-by: timlinux closes: #264482 --- pkgs/applications/gis/qgis/unwrapped.nix | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix index 8d01ce5f7a52..3faf4d304a5f 100644 --- a/pkgs/applications/gis/qgis/unwrapped.nix +++ b/pkgs/applications/gis/qgis/unwrapped.nix @@ -1,6 +1,5 @@ { lib , fetchFromGitHub -, fetchpatch , makeWrapper , mkDerivation , substituteAll @@ -12,6 +11,7 @@ , bison , cmake +, draco , exiv2 , fcgi , flex @@ -64,8 +64,8 @@ let owslib psycopg2 pygments - pyqt-builder pyqt5 + pyqt-builder python-dateutil pytz pyyaml @@ -77,14 +77,14 @@ let urllib3 ]; in mkDerivation rec { - version = "3.32.3"; + version = "3.34.0"; pname = "qgis-unwrapped"; src = fetchFromGitHub { owner = "qgis"; repo = "QGIS"; rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}"; - hash = "sha256-ge5ne22sDLKbrJk2vYQxpu3iRXSoOk9924c/RdtD3Nc="; + hash = "sha256-+Yzp8kfd7cfxTwsrxRo+6uS+2Aj4HfKA2E8hSf7htsU="; }; passthru = { @@ -104,6 +104,7 @@ in mkDerivation rec { ]; buildInputs = [ + draco exiv2 fcgi geos @@ -142,11 +143,6 @@ in mkDerivation rec { pyQt5PackageDir = "${py.pkgs.pyqt5}/${py.pkgs.python.sitePackages}"; qsciPackageDir = "${py.pkgs.qscintilla-qt5}/${py.pkgs.python.sitePackages}"; }) - (fetchpatch { - name = "exiv2-0.28.patch"; - url = "https://github.com/qgis/QGIS/commit/32f5418fc4f7bb2ee986dee1824ff2989c113a94.patch"; - hash = "sha256-zWyf+kLro4ZyUJLX/nDjY0nLneTaI1DxHvRsvwoWq14="; - }) ]; # Add path to Qt platform plugins @@ -156,8 +152,9 @@ in mkDerivation rec { ''; cmakeFlags = [ + "-DCMAKE_BUILD_TYPE=Release" "-DWITH_3D=True" - "-DWITH_PDAL=TRUE" + "-DWITH_PDAL=True" "-DENABLE_TESTS=False" ] ++ lib.optional (!withWebKit) "-DWITH_QTWEBKIT=OFF" ++ lib.optional withGrass (let From b21b961274baaf44c19f9705d8bc34f4b168f5ae Mon Sep 17 00:00:00 2001 From: Anthony Roussel Date: Sun, 29 Oct 2023 21:55:04 +0100 Subject: [PATCH 02/21] amazon-ssm-agent: skip time dependent/flaky test Build regularly fails because of time dependent tests: * Test name: TestSendStreamDataMessageWithStreamDataSequenceNumberMutexLocked * File: agent/session/datachannel/datachannel_test.go#L259 (refs/tags/3.2.1705.0) This test is a time-based unit test, and relies on `time.Sleep`. We should disable it to get the ssm build working again. --- pkgs/by-name/am/amazon-ssm-agent/package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/by-name/am/amazon-ssm-agent/package.nix b/pkgs/by-name/am/amazon-ssm-agent/package.nix index 4816ac1bdc73..7a0efbdab623 100644 --- a/pkgs/by-name/am/amazon-ssm-agent/package.nix +++ b/pkgs/by-name/am/amazon-ssm-agent/package.nix @@ -131,6 +131,11 @@ buildGoModule rec { runHook postInstall ''; + checkFlags = [ + # Skip time dependent/flaky test + "-skip=TestSendStreamDataMessageWithStreamDataSequenceNumberMutexLocked" + ]; + postFixup = '' wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bashInteractive}/bin ''; From 395d7ff4de640944bb55dcc4cef5286e26441710 Mon Sep 17 00:00:00 2001 From: Ben Darwin Date: Tue, 7 Nov 2023 12:37:15 -0500 Subject: [PATCH 03/21] vxl: change license to unfree for now While nominally under a free license, the package appears to contain files under a nonfree license which contradict the project license, and these would need to be patched out as per https://github.com/InsightSoftwareConsortium/ITK/pull/1920/files. --- pkgs/development/libraries/vxl/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/vxl/default.nix b/pkgs/development/libraries/vxl/default.nix index 098dc64cf154..941e07a27e3a 100644 --- a/pkgs/development/libraries/vxl/default.nix +++ b/pkgs/development/libraries/vxl/default.nix @@ -16,7 +16,9 @@ stdenv.mkDerivation rec { meta = { description = "C++ Libraries for Computer Vision Research and Implementation"; homepage = "https://vxl.sourceforge.net/"; - license = "VXL License"; + # license appears contradictory; see https://github.com/vxl/vxl/issues/752 + # (and see https://github.com/InsightSoftwareConsortium/ITK/pull/1920/files for potential patch) + license = [ lib.licenses.unfree ]; maintainers = with lib.maintainers; [viric]; platforms = with lib.platforms; linux; }; From 14eaf39d493bcf6b00c29856f497d4f78d64ee2d Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Wed, 8 Nov 2023 00:15:46 -0800 Subject: [PATCH 04/21] josh: cherry-pick upstream patch to fix build with rust 1.73 Our josh builds broke on staging with the new rustc 1.73: https://hydra.nixos.org/build/239619692/log/tail This commit cherry-picks the fix (already merged upstream) https://github.com/josh-project/josh/pull/1290 --- pkgs/applications/version-management/josh/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/applications/version-management/josh/default.nix b/pkgs/applications/version-management/josh/default.nix index a9929cca64e4..5acd1a634344 100644 --- a/pkgs/applications/version-management/josh/default.nix +++ b/pkgs/applications/version-management/josh/default.nix @@ -30,6 +30,14 @@ rustPlatform.buildRustPackage rec { url = "https://github.com/josh-project/josh/commit/13e7565ab029206598881391db4ddc6dface692b.patch"; sha256 = "1l5syqj51sn7kcqvffwl6ggn5sq8wfkpviga860agghnw5dpf7ns"; }) + + # Merged upstream, fixes builds with newer rustc + (fetchpatch { + name = "josh-fix-builds-with-rust-173.patch"; + url = "https://github.com/josh-project/josh/commit/7b8259b81a9acabb528ddebc4ab30fc712f756fb.patch"; + sha256 = "sha256-YfrVlH6Ox05ZbmB/15HVaFlOyRTOFbYflq0edi6/X9k="; + includes = [ "josh-proxy/src/bin/josh-proxy.rs" ]; + }) ]; cargoSha256 = "0f6cvz2s8qs53b2g6xja38m24hafqla61s4r5za0a1dyndgms7sl"; From 2d28e0cd109dc9f04d2ab0d8ac90395feb2acb3e Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Wed, 8 Nov 2023 23:28:25 +0100 Subject: [PATCH 05/21] lib.fileset: Remove nixdoc workaround This problem was fixed in https://github.com/nix-community/nixdoc/pull/81 which is included in version 2.5.1, which is now used in Nixpkgs --- lib/fileset/default.nix | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/lib/fileset/default.nix b/lib/fileset/default.nix index 4a97633b4a89..547809cf0634 100644 --- a/lib/fileset/default.nix +++ b/lib/fileset/default.nix @@ -122,11 +122,10 @@ in { Paths in [strings](https://nixos.org/manual/nix/stable/language/values.html#type-string), including Nix store paths, cannot be passed as `root`. `root` has to be a directory. - -:::{.note} -Changing `root` only affects the directory structure of the resulting store path, it does not change which files are added to the store. -The only way to change which files get added to the store is by changing the `fileset` attribute. -::: + :::{.note} + Changing `root` only affects the directory structure of the resulting store path, it does not change which files are added to the store. + The only way to change which files get added to the store is by changing the `fileset` attribute. + ::: */ root, /* @@ -135,10 +134,9 @@ The only way to change which files get added to the store is by changing the `fi This argument can also be a path, which gets [implicitly coerced to a file set](#sec-fileset-path-coercion). - -:::{.note} -If a directory does not recursively contain any file, it is omitted from the store path contents. -::: + :::{.note} + If a directory does not recursively contain any file, it is omitted from the store path contents. + ::: */ fileset, From 2556605a356c59a7269f601f56e9271ed3f487d1 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Wed, 8 Nov 2023 23:32:53 +0100 Subject: [PATCH 06/21] lib.fileset: Remove "somewhat limited" from the docs It's not very limited anymore :) --- doc/functions/fileset.section.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/doc/functions/fileset.section.md b/doc/functions/fileset.section.md index 08b9ba9eaedc..c42337feaba4 100644 --- a/doc/functions/fileset.section.md +++ b/doc/functions/fileset.section.md @@ -6,11 +6,8 @@ The [`lib.fileset`](#sec-functions-library-fileset) library allows you to work w A file set is a mathematical set of local files that can be added to the Nix store for use in Nix derivations. File sets are easy and safe to use, providing obvious and composable semantics with good error messages to prevent mistakes. -These sections apply to the entire library. See the [function reference](#sec-functions-library-fileset) for function-specific documentation. -The file set library is currently somewhat limited but is being expanded to include more functions over time. - ## Implicit coercion from paths to file sets {#sec-fileset-path-coercion} All functions accepting file sets as arguments can also accept [paths](https://nixos.org/manual/nix/stable/language/values.html#type-path) as arguments. From 0ace383438b84b0db04b4103d0b2d73400294058 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Wed, 8 Nov 2023 23:59:04 +0100 Subject: [PATCH 07/21] lib.fileset: Make error messages more uniform Just minor changes like: - Always using "X is a Y, but it should be Z" - "X is a path that does not exist" rather than "X does not exist" - Always using multi-line strings for errors - Always quoting string-like values and not quoting path-like values - But do quote filesystem roots. Even though they're paths, they might be very small, good to have quotes to know the start/end - Capitalise the first word - Distinguish root vs filesystem root more --- lib/fileset/default.nix | 38 +++++++++++++++++---------------- lib/fileset/internal.nix | 8 +++---- lib/fileset/tests.sh | 46 ++++++++++++++++++++-------------------- 3 files changed, 47 insertions(+), 45 deletions(-) diff --git a/lib/fileset/default.nix b/lib/fileset/default.nix index 547809cf0634..fe7b304ba698 100644 --- a/lib/fileset/default.nix +++ b/lib/fileset/default.nix @@ -154,7 +154,7 @@ in { if ! isPath root then if isStringLike root then throw '' - lib.fileset.toSource: `root` ("${toString root}") is a string-like value, but it should be a path instead. + lib.fileset.toSource: `root` (${toString root}) is a string-like value, but it should be a path instead. Paths in strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead.'' else throw '' @@ -163,13 +163,13 @@ in { # See also ../path/README.md else if ! fileset._internalIsEmptyWithoutBase && rootFilesystemRoot != filesetFilesystemRoot then throw '' - lib.fileset.toSource: Filesystem roots are not the same for `fileset` and `root` ("${toString root}"): - `root`: root "${toString rootFilesystemRoot}" - `fileset`: root "${toString filesetFilesystemRoot}" - Different roots are not supported.'' + lib.fileset.toSource: Filesystem roots are not the same for `fileset` and `root` (${toString root}): + `root`: Filesystem root is "${toString rootFilesystemRoot}" + `fileset`: Filesystem root is "${toString filesetFilesystemRoot}" + Different filesystem roots are not supported.'' else if ! pathExists root then throw '' - lib.fileset.toSource: `root` (${toString root}) does not exist.'' + lib.fileset.toSource: `root` (${toString root}) is a path that does not exist.'' else if pathType root != "directory" then throw '' lib.fileset.toSource: `root` (${toString root}) is a file, but it should be a directory instead. Potential solutions: @@ -221,11 +221,11 @@ in { _unionMany (_coerceMany "lib.fileset.union" [ { - context = "first argument"; + context = "First argument"; value = fileset1; } { - context = "second argument"; + context = "Second argument"; value = fileset2; } ]); @@ -267,12 +267,13 @@ in { # which get [implicitly coerced to file sets](#sec-fileset-path-coercion). filesets: if ! isList filesets then - throw "lib.fileset.unions: Expected argument to be a list, but got a ${typeOf filesets}." + throw '' + lib.fileset.unions: Argument is of type ${typeOf filesets}, but it should be a list instead.'' else pipe filesets [ # Annotate the elements with context, used by _coerceMany for better errors (imap0 (i: el: { - context = "element ${toString i}"; + context = "Element ${toString i}"; value = el; })) (_coerceMany "lib.fileset.unions") @@ -323,10 +324,11 @@ in { # The file set to filter based on the predicate function fileset: if ! isFunction predicate then - throw "lib.fileset.fileFilter: Expected the first argument to be a function, but it's a ${typeOf predicate} instead." + throw '' + lib.fileset.fileFilter: First argument is of type ${typeOf predicate}, but it should be a function.'' else _fileFilter predicate - (_coerce "lib.fileset.fileFilter: second argument" fileset); + (_coerce "lib.fileset.fileFilter: Second argument" fileset); /* The file set containing all files that are in both of two given file sets. @@ -354,11 +356,11 @@ in { let filesets = _coerceMany "lib.fileset.intersection" [ { - context = "first argument"; + context = "First argument"; value = fileset1; } { - context = "second argument"; + context = "Second argument"; value = fileset2; } ]; @@ -406,11 +408,11 @@ in { let filesets = _coerceMany "lib.fileset.difference" [ { - context = "first argument (positive set)"; + context = "First argument (positive set)"; value = positive; } { - context = "second argument (negative set)"; + context = "Second argument (negative set)"; value = negative; } ]; @@ -454,7 +456,7 @@ in { let # "fileset" would be a better name, but that would clash with the argument name, # and we cannot change that because of https://github.com/nix-community/nixdoc/issues/76 - actualFileset = _coerce "lib.fileset.trace: argument" fileset; + actualFileset = _coerce "lib.fileset.trace: Argument" fileset; in seq (_printFileset actualFileset) @@ -501,7 +503,7 @@ in { let # "fileset" would be a better name, but that would clash with the argument name, # and we cannot change that because of https://github.com/nix-community/nixdoc/issues/76 - actualFileset = _coerce "lib.fileset.traceVal: argument" fileset; + actualFileset = _coerce "lib.fileset.traceVal: Argument" fileset; in seq (_printFileset actualFileset) diff --git a/lib/fileset/internal.nix b/lib/fileset/internal.nix index b919a5de3eef..853115df9f61 100644 --- a/lib/fileset/internal.nix +++ b/lib/fileset/internal.nix @@ -179,7 +179,7 @@ rec { ${context} is of type ${typeOf value}, but it should be a file set or a path instead.'' else if ! pathExists value then throw '' - ${context} (${toString value}) does not exist.'' + ${context} (${toString value}) is a path that does not exist.'' else _singleton value; @@ -208,9 +208,9 @@ rec { if firstWithBase != null && differentIndex != null then throw '' ${functionContext}: Filesystem roots are not the same: - ${(head list).context}: root "${toString firstBaseRoot}" - ${(elemAt list differentIndex).context}: root "${toString (elemAt filesets differentIndex)._internalBaseRoot}" - Different roots are not supported.'' + ${(head list).context}: Filesystem root is "${toString firstBaseRoot}" + ${(elemAt list differentIndex).context}: Filesystem root is "${toString (elemAt filesets differentIndex)._internalBaseRoot}" + Different filesystem roots are not supported.'' else filesets; diff --git a/lib/fileset/tests.sh b/lib/fileset/tests.sh index 2df0727bde38..c1c67800f5e2 100755 --- a/lib/fileset/tests.sh +++ b/lib/fileset/tests.sh @@ -318,7 +318,7 @@ checkFileset() { #### Error messages ##### # Absolute paths in strings cannot be passed as `root` -expectFailure 'toSource { root = "/nix/store/foobar"; fileset = ./.; }' 'lib.fileset.toSource: `root` \("/nix/store/foobar"\) is a string-like value, but it should be a path instead. +expectFailure 'toSource { root = "/nix/store/foobar"; fileset = ./.; }' 'lib.fileset.toSource: `root` \(/nix/store/foobar\) is a string-like value, but it should be a path instead. \s*Paths in strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead.' # Only paths are accepted as `root` @@ -328,14 +328,14 @@ expectFailure 'toSource { root = 10; fileset = ./.; }' 'lib.fileset.toSource: `r mkdir -p {foo,bar}/mock-root expectFailure 'with ((import ).extend (import )).fileset; toSource { root = ./foo/mock-root; fileset = ./bar/mock-root; } -' 'lib.fileset.toSource: Filesystem roots are not the same for `fileset` and `root` \("'"$work"'/foo/mock-root"\): -\s*`root`: root "'"$work"'/foo/mock-root" -\s*`fileset`: root "'"$work"'/bar/mock-root" -\s*Different roots are not supported.' +' 'lib.fileset.toSource: Filesystem roots are not the same for `fileset` and `root` \('"$work"'/foo/mock-root\): +\s*`root`: Filesystem root is "'"$work"'/foo/mock-root" +\s*`fileset`: Filesystem root is "'"$work"'/bar/mock-root" +\s*Different filesystem roots are not supported.' rm -rf -- * # `root` needs to exist -expectFailure 'toSource { root = ./a; fileset = ./.; }' 'lib.fileset.toSource: `root` \('"$work"'/a\) does not exist.' +expectFailure 'toSource { root = ./a; fileset = ./.; }' 'lib.fileset.toSource: `root` \('"$work"'/a\) is a path that does not exist.' # `root` needs to be a file touch a @@ -367,7 +367,7 @@ expectFailure 'toSource { root = ./.; fileset = "/some/path"; }' 'lib.fileset.to \s*Paths represented as strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead.' # Path coercion errors for non-existent paths -expectFailure 'toSource { root = ./.; fileset = ./a; }' 'lib.fileset.toSource: `fileset` \('"$work"'/a\) does not exist.' +expectFailure 'toSource { root = ./.; fileset = ./a; }' 'lib.fileset.toSource: `fileset` \('"$work"'/a\) is a path that does not exist.' # File sets cannot be evaluated directly expectFailure 'union ./. ./.' 'lib.fileset: Directly evaluating a file set is not supported. @@ -490,26 +490,26 @@ mkdir -p {foo,bar}/mock-root expectFailure 'with ((import ).extend (import )).fileset; toSource { root = ./.; fileset = union ./foo/mock-root ./bar/mock-root; } ' 'lib.fileset.union: Filesystem roots are not the same: -\s*first argument: root "'"$work"'/foo/mock-root" -\s*second argument: root "'"$work"'/bar/mock-root" -\s*Different roots are not supported.' +\s*First argument: Filesystem root is "'"$work"'/foo/mock-root" +\s*Second argument: Filesystem root is "'"$work"'/bar/mock-root" +\s*Different filesystem roots are not supported.' expectFailure 'with ((import ).extend (import )).fileset; toSource { root = ./.; fileset = unions [ ./foo/mock-root ./bar/mock-root ]; } ' 'lib.fileset.unions: Filesystem roots are not the same: -\s*element 0: root "'"$work"'/foo/mock-root" -\s*element 1: root "'"$work"'/bar/mock-root" -\s*Different roots are not supported.' +\s*Element 0: Filesystem root is "'"$work"'/foo/mock-root" +\s*Element 1: Filesystem root is "'"$work"'/bar/mock-root" +\s*Different filesystem roots are not supported.' rm -rf -- * # Coercion errors show the correct context -expectFailure 'toSource { root = ./.; fileset = union ./a ./.; }' 'lib.fileset.union: first argument \('"$work"'/a\) does not exist.' -expectFailure 'toSource { root = ./.; fileset = union ./. ./b; }' 'lib.fileset.union: second argument \('"$work"'/b\) does not exist.' -expectFailure 'toSource { root = ./.; fileset = unions [ ./a ./. ]; }' 'lib.fileset.unions: element 0 \('"$work"'/a\) does not exist.' -expectFailure 'toSource { root = ./.; fileset = unions [ ./. ./b ]; }' 'lib.fileset.unions: element 1 \('"$work"'/b\) does not exist.' +expectFailure 'toSource { root = ./.; fileset = union ./a ./.; }' 'lib.fileset.union: First argument \('"$work"'/a\) is a path that does not exist.' +expectFailure 'toSource { root = ./.; fileset = union ./. ./b; }' 'lib.fileset.union: Second argument \('"$work"'/b\) is a path that does not exist.' +expectFailure 'toSource { root = ./.; fileset = unions [ ./a ./. ]; }' 'lib.fileset.unions: Element 0 \('"$work"'/a\) is a path that does not exist.' +expectFailure 'toSource { root = ./.; fileset = unions [ ./. ./b ]; }' 'lib.fileset.unions: Element 1 \('"$work"'/b\) is a path that does not exist.' # unions needs a list -expectFailure 'toSource { root = ./.; fileset = unions null; }' 'lib.fileset.unions: Expected argument to be a list, but got a null.' +expectFailure 'toSource { root = ./.; fileset = unions null; }' 'lib.fileset.unions: Argument is of type null, but it should be a list instead.' # The tree of later arguments should not be evaluated if a former argument already includes all files tree=() @@ -603,14 +603,14 @@ mkdir -p {foo,bar}/mock-root expectFailure 'with ((import ).extend (import )).fileset; toSource { root = ./.; fileset = intersection ./foo/mock-root ./bar/mock-root; } ' 'lib.fileset.intersection: Filesystem roots are not the same: -\s*first argument: root "'"$work"'/foo/mock-root" -\s*second argument: root "'"$work"'/bar/mock-root" -\s*Different roots are not supported.' +\s*First argument: Filesystem root is "'"$work"'/foo/mock-root" +\s*Second argument: Filesystem root is "'"$work"'/bar/mock-root" +\s*Different filesystem roots are not supported.' rm -rf -- * # Coercion errors show the correct context -expectFailure 'toSource { root = ./.; fileset = intersection ./a ./.; }' 'lib.fileset.intersection: first argument \('"$work"'/a\) does not exist.' -expectFailure 'toSource { root = ./.; fileset = intersection ./. ./b; }' 'lib.fileset.intersection: second argument \('"$work"'/b\) does not exist.' +expectFailure 'toSource { root = ./.; fileset = intersection ./a ./.; }' 'lib.fileset.intersection: First argument \('"$work"'/a\) is a path that does not exist.' +expectFailure 'toSource { root = ./.; fileset = intersection ./. ./b; }' 'lib.fileset.intersection: Second argument \('"$work"'/b\) is a path that does not exist.' # The tree of later arguments should not be evaluated if a former argument already excludes all files tree=( From 9cbd394aa036442e0ccd0459908b96a5a60b2a9e Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Thu, 9 Nov 2023 00:02:43 +0100 Subject: [PATCH 08/21] lib.fileset: Remove unused bindings Thanks nixd! --- lib/fileset/internal.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/fileset/internal.nix b/lib/fileset/internal.nix index 853115df9f61..d55c84a395e7 100644 --- a/lib/fileset/internal.nix +++ b/lib/fileset/internal.nix @@ -7,7 +7,6 @@ let isString pathExists readDir - seq split trace typeOf @@ -17,7 +16,6 @@ let attrNames attrValues mapAttrs - setAttrByPath zipAttrsWith ; @@ -28,7 +26,6 @@ let inherit (lib.lists) all commonPrefix - drop elemAt filter findFirst From ae0bbc00e82f6dbf83282c787bee50fa3f1914ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Thu, 9 Nov 2023 01:58:23 +0100 Subject: [PATCH 09/21] systemd-lib: cleanup empty lines in unit files --- nixos/lib/systemd-lib.nix | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/nixos/lib/systemd-lib.nix b/nixos/lib/systemd-lib.nix index 7b600464bb41..820ccbcbf72a 100644 --- a/nixos/lib/systemd-lib.nix +++ b/nixos/lib/systemd-lib.nix @@ -376,24 +376,23 @@ in rec { serviceToUnit = name: def: { inherit (def) aliases wantedBy requiredBy enable overrideStrategy; - text = commonUnitText def + - '' - [Service] - ${let env = cfg.globalEnvironment // def.environment; - in concatMapStrings (n: - let s = optionalString (env.${n} != null) - "Environment=${builtins.toJSON "${n}=${env.${n}}"}\n"; - # systemd max line length is now 1MiB - # https://github.com/systemd/systemd/commit/e6dde451a51dc5aaa7f4d98d39b8fe735f73d2af - in if stringLength s >= 1048576 then throw "The value of the environment variable ‘${n}’ in systemd service ‘${name}.service’ is too long." else s) (attrNames env)} - ${if def ? reloadIfChanged && def.reloadIfChanged then '' - X-ReloadIfChanged=true - '' else if (def ? restartIfChanged && !def.restartIfChanged) then '' - X-RestartIfChanged=false - '' else ""} - ${optionalString (def ? stopIfChanged && !def.stopIfChanged) "X-StopIfChanged=false"} - ${attrsToSection def.serviceConfig} - ''; + text = commonUnitText def + '' + [Service] + '' + (let env = cfg.globalEnvironment // def.environment; + in concatMapStrings (n: + let s = optionalString (env.${n} != null) + "Environment=${builtins.toJSON "${n}=${env.${n}}"}\n"; + # systemd max line length is now 1MiB + # https://github.com/systemd/systemd/commit/e6dde451a51dc5aaa7f4d98d39b8fe735f73d2af + in if stringLength s >= 1048576 then throw "The value of the environment variable ‘${n}’ in systemd service ‘${name}.service’ is too long." else s) (attrNames env)) + + (if def ? reloadIfChanged && def.reloadIfChanged then '' + X-ReloadIfChanged=true + '' else if (def ? restartIfChanged && !def.restartIfChanged) then '' + X-RestartIfChanged=false + '' else "") + + optionalString (def ? stopIfChanged && !def.stopIfChanged) '' + X-StopIfChanged=false + '' + attrsToSection def.serviceConfig; }; socketToUnit = name: def: From 18cca3e21ffc2432f4cbbe158bbe910819350bbc Mon Sep 17 00:00:00 2001 From: Aaron Jheng Date: Thu, 9 Nov 2023 04:47:43 +0000 Subject: [PATCH 10/21] wgo: 0.5.3 -> 0.5.4 --- pkgs/development/tools/wgo/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/wgo/default.nix b/pkgs/development/tools/wgo/default.nix index 0213dfcf7795..51ecc3804a05 100644 --- a/pkgs/development/tools/wgo/default.nix +++ b/pkgs/development/tools/wgo/default.nix @@ -5,7 +5,7 @@ let pname = "wgo"; - version = "0.5.3"; + version = "0.5.4"; in buildGoModule { inherit pname version; @@ -14,7 +14,7 @@ buildGoModule { owner = "bokwoon95"; repo = "wgo"; rev = "v${version}"; - hash = "sha256-Uny5FiMox0oIaJ+WE7p3kw4guSzktEF+WzuxjgFXh2I="; + hash = "sha256-MPmB6G5JCIEfFYchVmV8sS5Zfzfui9tClDI6RlLdP6U="; }; vendorHash = "sha256-w6UJxZToHbbQmuXkyqFzyssFcE+7uVNqOuIF/XKdEsU="; From 3c97878788ef7610ad374a5067b7ba814c841cec Mon Sep 17 00:00:00 2001 From: h7x4 Date: Wed, 8 Nov 2023 09:01:31 +0100 Subject: [PATCH 11/21] nsf-ordlista: init at unstable-2023-08-20 --- pkgs/by-name/ns/nsf-ordlista/package.nix | 27 ++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 pkgs/by-name/ns/nsf-ordlista/package.nix diff --git a/pkgs/by-name/ns/nsf-ordlista/package.nix b/pkgs/by-name/ns/nsf-ordlista/package.nix new file mode 100644 index 000000000000..d3ec535c44e8 --- /dev/null +++ b/pkgs/by-name/ns/nsf-ordlista/package.nix @@ -0,0 +1,27 @@ +{ lib +, stdenvNoCC +, fetchzip +}: +stdenvNoCC.mkDerivation { + pname = "nsf-ordlista"; + version = "unstable-2023-08-20"; + src = fetchzip { + url = "http://www2.scrabbleforbundet.no/wp-content/uploads/2023/08/nsf2023.zip"; + hash = "sha256-bcVqZ2yPHurl6sRNgeLNAyyR8WR9ewmtn85Xuw/rZ3s="; + }; + + installPhase = '' + runHook preInstall + install -Dm444 nsf2023.txt $out/share/wordlists/nsf.txt + runHook postInstall + ''; + + meta = with lib; { + description = "Wordlist from the Norwegian Scrabble Federation"; + homepage = "https://www2.scrabbleforbundet.no/"; + downloadPage = "https://www2.scrabbleforbundet.no/?p=4881#more-4881"; + license = licenses.unfree; + maintainers = with maintainers; [ h7x4 ]; + platforms = platforms.all; + }; +} From 6f06a5e83a30cd558be24cbcaa7a18072252c629 Mon Sep 17 00:00:00 2001 From: Tomas Antonio Lopez Date: Thu, 9 Nov 2023 12:51:25 +0100 Subject: [PATCH 12/21] emacsPackages.notdeft: init at 20211204.0846 --- .../emacs/elisp-packages/manual-packages.nix | 2 + .../manual-packages/notdeft/default.nix | 75 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/default.nix diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix index 7e59c5f067f2..ccde3ca0303b 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix @@ -65,6 +65,8 @@ in mu4e = callPackage ./manual-packages/mu4e { }; + notdeft = callPackage ./manual-packages/notdeft { }; + ott-mode = callPackage ./manual-packages/ott-mode { }; perl-completion = callPackage ./manual-packages/perl-completion { }; diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/default.nix new file mode 100644 index 000000000000..f9af8c465b93 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/default.nix @@ -0,0 +1,75 @@ +{ lib +, stdenv +, trivialBuild +, fetchFromGitHub +, emacs +, hydra +, ivy +, pkg-config +, tclap +, xapian + # Include pre-configured hydras +, withHydra ? false + # Include Ivy integration +, withIvy ? false +}: + +let + pname = "notdeft"; + version = "20211204.0846"; + + src = fetchFromGitHub { + owner = "hasu"; + repo = "notdeft"; + rev = "1b7054dcfc3547a7cafeb621552cec01d0540478"; + hash = "sha256-LMMLJFVpmoE/y3MqrgY2fmsehmzk6TkLsVoHmFUxiSw="; + }; + + # Xapian bindings for NotDeft + notdeft-xapian = stdenv.mkDerivation { + pname = "notdeft-xapian"; + inherit version src; + + sourceRoot = "${src.name}/xapian"; + + nativeBuildInputs = [ pkg-config tclap xapian ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp notdeft-xapian $out/bin + + runHook postInstall + ''; + }; +in +trivialBuild { + inherit pname version src; + packageRequires = lib.optional withHydra hydra + ++ lib.optional withIvy ivy; + buildInputs = [ xapian ]; + + postPatch = '' + substituteInPlace notdeft-xapian.el \ + --replace 'defcustom notdeft-xapian-program nil' \ + "defcustom notdeft-xapian-program \"${notdeft-xapian}/bin/notdeft-xapian\"" + ''; + + # Extra modules are contained in the extras/ directory + preBuild = lib.optionalString withHydra '' + mv extras/notdeft-{mode-hydra,global-hydra}.el ./ + '' + + lib.optionalString withIvy '' + mv extras/notdeft-ivy.el ./ + '' + '' + rm -r extras/ + ''; + + meta = with lib; { + homepage = "https://tero.hasu.is/notdeft/"; + description = "Fork of Deft that uses Xapian as a search engine"; + maintainers = [ maintainers.nessdoor ]; + platforms = platforms.linux; + }; +} From 811db8c616bd17836fdbd99b0e62f20fa0efde8c Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Wed, 18 Oct 2023 16:23:42 +0200 Subject: [PATCH 13/21] haskell-language-server: reformat code a bit & document better --- .../haskell-language-server/withWrapper.nix | 53 +++++++++++++------ 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix b/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix index a6f287c37b3f..ea5fe88d11f6 100644 --- a/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix +++ b/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix @@ -1,9 +1,18 @@ { lib , stdenv -, supportedGhcVersions ? [ "94" ] -, dynamic ? true , haskellPackages , haskell + +# Which GHC versions this hls can support. +# These are looked up in nixpkgs as `pkgs.haskell.packages."ghc${version}`. +# Run +# $ nix-instantiate --eval -E 'with import {}; builtins.attrNames pkgs.haskell.packages' +# to list for your nixpkgs version. +, supportedGhcVersions ? [ "94" ] + +# Whether to build hls with the dynamic run-time system. +# See https://haskell-language-server.readthedocs.io/en/latest/troubleshooting.html#static-binaries for more information. +, dynamic ? true }: # # The recommended way to override this package is @@ -13,9 +22,15 @@ # for example. Read more about this in the haskell-language-server section of the nixpkgs manual. # let - inherit (lib) concatStringsSep concatMapStringsSep take splitString pipe optionals; - inherit (haskell.lib.compose) justStaticExecutables overrideCabal enableCabalFlag disableCabalFlag; + inherit (haskell.lib.compose) + justStaticExecutables + overrideCabal + enableCabalFlag + disableCabalFlag + ; + getPackages = version: haskell.packages."ghc${version}"; + tunedHls = hsPkgs: lib.pipe hsPkgs.haskell-language-server ([ (haskell.lib.compose.overrideCabal (old: { @@ -27,32 +42,40 @@ let ''; })) ((if dynamic then enableCabalFlag else disableCabalFlag) "dynamic") - ] ++ optionals (!dynamic) [ + ] + ++ lib.optionals (!dynamic) [ justStaticExecutables ]); + targets = version: let packages = getPackages version; - in [ - "haskell-language-server-${packages.ghc.version}" - ]; + in [ "haskell-language-server-${packages.ghc.version}" ]; + makeSymlinks = version: - concatMapStringsSep "\n" (x: - "ln -s ${ - tunedHls (getPackages version) - }/bin/haskell-language-server $out/bin/${x}") (targets version); -in assert supportedGhcVersions != []; stdenv.mkDerivation { + lib.concatMapStringsSep "\n" + (x: + "ln -s ${ + tunedHls (getPackages version) + }/bin/haskell-language-server $out/bin/${x}") + (targets version); + +in +assert supportedGhcVersions != []; stdenv.mkDerivation +{ pname = "haskell-language-server"; version = haskellPackages.haskell-language-server.version; + buildCommand = '' mkdir -p $out/bin ln -s ${tunedHls (getPackages (builtins.head supportedGhcVersions))}/bin/haskell-language-server-wrapper $out/bin/haskell-language-server-wrapper - ${concatMapStringsSep "\n" makeSymlinks supportedGhcVersions} + ${lib.concatMapStringsSep "\n" makeSymlinks supportedGhcVersions} ''; + meta = haskellPackages.haskell-language-server.meta // { maintainers = [ lib.maintainers.maralorn ]; longDescription = '' This package provides the executables ${ - concatMapStringsSep ", " (x: concatStringsSep ", " (targets x)) + lib.concatMapStringsSep ", " (x: lib.concatStringsSep ", " (targets x)) supportedGhcVersions } and haskell-language-server-wrapper. You can choose for which ghc versions to install hls with pkgs.haskell-language-server.override { supportedGhcVersions = [ "90" "92" ]; }. From 2099ebdf593da8babffb96f3909fb8568ce483fb Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Wed, 18 Oct 2023 16:50:59 +0200 Subject: [PATCH 14/21] lib: add asserts.assertEachOneOf Along the lines of `assertOneOf`, but expects a list of values to be compared. This gives a good error message and is useful for lists of values, like `supportedGhcVersions` in the arguments of `haskell-language-server`. --- lib/asserts.nix | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/lib/asserts.nix b/lib/asserts.nix index 98e0b490acf2..8d0a621f4c1c 100644 --- a/lib/asserts.nix +++ b/lib/asserts.nix @@ -50,4 +50,33 @@ rec { lib.generators.toPretty {} xs}, but is: ${ lib.generators.toPretty {} val}"; + /* Specialized `assertMsg` for checking if every one of `vals` is one of the elements + of the list `xs`. Useful for checking lists of supported attributes. + + Example: + let sslLibraries = [ "libressl" "bearssl" ]; + in assertEachOneOf "sslLibraries" sslLibraries [ "openssl" "bearssl" ] + stderr> error: each element in sslLibraries must be one of [ + stderr> "openssl" + stderr> "bearssl" + stderr> ], but is: [ + stderr> "libressl" + stderr> "bearssl" + stderr> ] + + Type: + assertEachOneOf :: String -> List ComparableVal -> List ComparableVal -> Bool + */ + assertEachOneOf = + # The name of the variable the user entered `val` into, for inclusion in the error message + name: + # The list of values of what the user provided, to be compared against the values in `xs` + vals: + # The list of valid values + xs: + assertMsg + (lib.all (val: lib.elem val xs) vals) + "each element in ${name} must be one of ${ + lib.generators.toPretty {} xs}, but is: ${ + lib.generators.toPretty {} vals}"; } From 529cbf1a032b58c99e560d976722c03b3e51ae56 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Wed, 18 Oct 2023 16:52:15 +0200 Subject: [PATCH 15/21] haskell-language-server: check `supportedGhcVersions` in assert This produces a better error message than just returning the error of the `haskell.packages."ghc${version}"` interpolation. --- .../haskell/haskell-language-server/withWrapper.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix b/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix index ea5fe88d11f6..bcfde333e9bc 100644 --- a/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix +++ b/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix @@ -14,6 +14,16 @@ # See https://haskell-language-server.readthedocs.io/en/latest/troubleshooting.html#static-binaries for more information. , dynamic ? true }: + +assert + lib.asserts.assertEachOneOf + "supportedGhcVersions" + supportedGhcVersions + (lib.pipe haskell.packages [ + lib.attrNames + (lib.filter (lib.hasPrefix "ghc")) + (map (lib.removePrefix "ghc")) + ]); # # The recommended way to override this package is # From 8e803f2fb90f96943f69c145e312ad15f07f9b16 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Wed, 18 Oct 2023 19:12:22 +0200 Subject: [PATCH 16/21] haskell-language-server: keep only formatters the user wants This introduces a list of `supportedFormatters` that are the ones that should be compiled into hls. Removes a nontrivial amount of transitive dependencies if only one formatter is used in a project. --- .../haskell-language-server/withWrapper.nix | 79 ++++++++++++++++++- 1 file changed, 76 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix b/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix index bcfde333e9bc..d9f74b493350 100644 --- a/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix +++ b/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix @@ -13,8 +13,13 @@ # Whether to build hls with the dynamic run-time system. # See https://haskell-language-server.readthedocs.io/en/latest/troubleshooting.html#static-binaries for more information. , dynamic ? true + +# which formatters are supported. An empty list means “all”. +, supportedFormatters ? [ ] }: +# make sure the user only sets GHC versions that actually exist +assert supportedGhcVersions != []; assert lib.asserts.assertEachOneOf "supportedGhcVersions" @@ -24,6 +29,47 @@ assert (lib.filter (lib.hasPrefix "ghc")) (map (lib.removePrefix "ghc")) ]); + +let + # A mapping from formatter name to + # - cabal flag to disable + # - formatter-specific packages that can be stripped from the build of hls if it is disabled + knownFormatters = { + ormolu = { + cabalFlag = "ormolu"; + packages = [ + "hls-ormolu-plugin" + ]; + }; + fourmolu = { + cabalFlag = "fourmolu"; + packages = [ + "hls-fourmolu-plugin" + ]; + }; + floskell = { + cabalFlag = "floskell"; + packages = [ + "hls-floskell-plugin" + ]; + }; + stylish-haskell = { + cabalFlag = "stylishhaskell"; + packages = [ + "hls-stylish-haskell-plugin" + ]; + }; + }; + +in + +# make sure any formatter that is set is actually supported by us +assert + lib.asserts.assertEachOneOf + "supportedFormatters" + supportedFormatters + (lib.attrNames knownFormatters); + # # The recommended way to override this package is # @@ -41,6 +87,34 @@ let getPackages = version: haskell.packages."ghc${version}"; + # Given the list of `supportedFormatters`, remove every formatter that we know of (knownFormatters) + # by disabling the cabal flag and also removing the formatter libraries. + removeUnnecessaryFormatters = + let + # only formatters that were not requested + unwanted = lib.pipe knownFormatters [ + (lib.filterAttrs (fmt: _: ! (lib.elem fmt supportedFormatters))) + lib.attrsToList + ]; + # all flags to disable + flags = map (fmt: fmt.value.cabalFlag) unwanted; + # all dependencies to remove from hls + deps = lib.concatMap (fmt: fmt.value.packages) unwanted; + + # remove nulls from a list + stripNulls = lib.filter (x: x != null); + + # remove all unwanted dependencies of formatters we don’t want + stripDeps = overrideCabal (drv: { + libraryHaskellDepends = lib.pipe (drv.libraryHaskellDepends or []) [ + # the existing list may contain nulls, so let’s strip them first + stripNulls + (lib.filter (dep: ! (lib.elem dep.pname deps))) + ]; + }); + + in drv: lib.pipe drv ([stripDeps] ++ map disableCabalFlag flags); + tunedHls = hsPkgs: lib.pipe hsPkgs.haskell-language-server ([ (haskell.lib.compose.overrideCabal (old: { @@ -52,6 +126,7 @@ let ''; })) ((if dynamic then enableCabalFlag else disableCabalFlag) "dynamic") + (if supportedFormatters != [] then removeUnnecessaryFormatters else lib.id) ] ++ lib.optionals (!dynamic) [ justStaticExecutables @@ -69,9 +144,7 @@ let }/bin/haskell-language-server $out/bin/${x}") (targets version); -in -assert supportedGhcVersions != []; stdenv.mkDerivation -{ +in stdenv.mkDerivation { pname = "haskell-language-server"; version = haskellPackages.haskell-language-server.version; From 77908eaac0b36702a6a054218309efad34955163 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Thu, 9 Nov 2023 17:26:29 +0100 Subject: [PATCH 17/21] haskell-language-server: empty list removes all formatters Based on the discussion in https://github.com/NixOS/nixpkgs/pull/261848 --- .../tools/haskell/haskell-language-server/withWrapper.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix b/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix index d9f74b493350..59a1303764ba 100644 --- a/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix +++ b/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix @@ -14,8 +14,10 @@ # See https://haskell-language-server.readthedocs.io/en/latest/troubleshooting.html#static-binaries for more information. , dynamic ? true -# which formatters are supported. An empty list means “all”. -, supportedFormatters ? [ ] +# Which formatters are supported. Pass `[]` to remove all formatters. +# +# Maintainers: if a new formatter is added, add it here and down in knownFormatters +, supportedFormatters ? [ "ormolu" "fourmolu" "floskell" "stylish-haskell" ] }: # make sure the user only sets GHC versions that actually exist @@ -126,7 +128,7 @@ let ''; })) ((if dynamic then enableCabalFlag else disableCabalFlag) "dynamic") - (if supportedFormatters != [] then removeUnnecessaryFormatters else lib.id) + removeUnnecessaryFormatters ] ++ lib.optionals (!dynamic) [ justStaticExecutables From 97b0ae26f7c8a1682b5437a64edcd73ab1798c9b Mon Sep 17 00:00:00 2001 From: Arnout Engelen Date: Thu, 9 Nov 2023 21:48:05 +0100 Subject: [PATCH 18/21] doc: avoid 'simply' (#266434) While the word 'simply' is usually added to encourage readers, it often has the opposite effect and may even appear condescending, especially when the reader runs into trouble trying to apply the suggestions from the documentation. It is almost always an improvement to simply drop the word from the sentence. (there are more possible improvements like this, we can apply those in separate PRs) --- doc/hooks/autopatchelf.section.md | 2 +- doc/languages-frameworks/agda.section.md | 4 ++-- doc/languages-frameworks/beam.section.md | 2 +- doc/languages-frameworks/dart.section.md | 2 +- doc/languages-frameworks/haskell.section.md | 4 ++-- doc/languages-frameworks/lisp.section.md | 2 +- doc/languages-frameworks/maven.section.md | 2 +- doc/languages-frameworks/php.section.md | 6 +++--- doc/languages-frameworks/python.section.md | 8 ++++---- doc/languages-frameworks/ruby.section.md | 4 ++-- doc/languages-frameworks/swift.section.md | 4 ++-- doc/packages/urxvt.section.md | 2 +- doc/stdenv/stdenv.chapter.md | 8 ++++---- doc/using/overlays.chapter.md | 2 +- .../manual/configuration/declarative-packages.section.md | 2 +- nixos/doc/manual/configuration/modularity.section.md | 4 ++-- nixos/doc/manual/configuration/xfce.chapter.md | 2 +- .../manual/development/writing-documentation.chapter.md | 2 +- nixos/doc/manual/installation/installing-pxe.section.md | 2 +- nixos/doc/manual/release-notes/rl-1609.section.md | 2 +- nixos/doc/manual/release-notes/rl-1909.section.md | 2 +- nixos/doc/manual/release-notes/rl-2003.section.md | 2 +- nixos/doc/manual/release-notes/rl-2009.section.md | 2 +- nixos/doc/manual/release-notes/rl-2211.section.md | 2 +- nixos/doc/manual/release-notes/rl-2305.section.md | 2 +- nixos/doc/manual/release-notes/rl-2311.section.md | 2 +- 26 files changed, 39 insertions(+), 39 deletions(-) diff --git a/doc/hooks/autopatchelf.section.md b/doc/hooks/autopatchelf.section.md index 008a90d46140..995204b90219 100644 --- a/doc/hooks/autopatchelf.section.md +++ b/doc/hooks/autopatchelf.section.md @@ -6,6 +6,6 @@ You can also specify a `runtimeDependencies` variable which lists dependencies t In certain situations you may want to run the main command (`autoPatchelf`) of the setup hook on a file or a set of directories instead of unconditionally patching all outputs. This can be done by setting the `dontAutoPatchelf` environment variable to a non-empty value. -By default `autoPatchelf` will fail as soon as any ELF file requires a dependency which cannot be resolved via the given build inputs. In some situations you might prefer to just leave missing dependencies unpatched and continue to patch the rest. This can be achieved by setting the `autoPatchelfIgnoreMissingDeps` environment variable to a non-empty value. `autoPatchelfIgnoreMissingDeps` can be set to a list like `autoPatchelfIgnoreMissingDeps = [ "libcuda.so.1" "libcudart.so.1" ];` or to simply `[ "*" ]` to ignore all missing dependencies. +By default `autoPatchelf` will fail as soon as any ELF file requires a dependency which cannot be resolved via the given build inputs. In some situations you might prefer to just leave missing dependencies unpatched and continue to patch the rest. This can be achieved by setting the `autoPatchelfIgnoreMissingDeps` environment variable to a non-empty value. `autoPatchelfIgnoreMissingDeps` can be set to a list like `autoPatchelfIgnoreMissingDeps = [ "libcuda.so.1" "libcudart.so.1" ];` or to `[ "*" ]` to ignore all missing dependencies. The `autoPatchelf` command also recognizes a `--no-recurse` command line flag, which prevents it from recursing into subdirectories. diff --git a/doc/languages-frameworks/agda.section.md b/doc/languages-frameworks/agda.section.md index ff3d70ef0c62..cb1f12eec234 100644 --- a/doc/languages-frameworks/agda.section.md +++ b/doc/languages-frameworks/agda.section.md @@ -146,7 +146,7 @@ agdaPackages.mkDerivation { ### Building Agda packages {#building-agda-packages} -The default build phase for `agdaPackages.mkDerivation` simply runs `agda` on the `Everything.agda` file. +The default build phase for `agdaPackages.mkDerivation` runs `agda` on the `Everything.agda` file. If something else is needed to build the package (e.g. `make`) then the `buildPhase` should be overridden. Additionally, a `preBuild` or `configurePhase` can be used if there are steps that need to be done prior to checking the `Everything.agda` file. `agda` and the Agda libraries contained in `buildInputs` are made available during the build phase. @@ -250,7 +250,7 @@ Usually, the maintainers will answer within a week or two with a new release. Bumping the version of that reverse dependency should be a further commit on your PR. In the rare case that a new release is not to be expected within an acceptable time, -simply mark the broken package as broken by setting `meta.broken = true;`. +mark the broken package as broken by setting `meta.broken = true;`. This will exclude it from the build test. It can be added later when it is fixed, and does not hinder the advancement of the whole package set in the meantime. diff --git a/doc/languages-frameworks/beam.section.md b/doc/languages-frameworks/beam.section.md index 2cb4863fc53b..1e83d4b93c7c 100644 --- a/doc/languages-frameworks/beam.section.md +++ b/doc/languages-frameworks/beam.section.md @@ -44,7 +44,7 @@ There is also a `buildMix` helper, whose behavior is closer to that of `buildErl ## How to Install BEAM Packages {#how-to-install-beam-packages} -BEAM builders are not registered at the top level, simply because they are not relevant to the vast majority of Nix users. +BEAM builders are not registered at the top level, because they are not relevant to the vast majority of Nix users. To use any of those builders into your environment, refer to them by their attribute path under `beamPackages`, e.g. `beamPackages.rebar3`: ::: {.example #ex-beam-ephemeral-shell} diff --git a/doc/languages-frameworks/dart.section.md b/doc/languages-frameworks/dart.section.md index 8d9c062f4220..9da43714a164 100644 --- a/doc/languages-frameworks/dart.section.md +++ b/doc/languages-frameworks/dart.section.md @@ -8,7 +8,7 @@ It fetches its Dart dependencies automatically through `fetchDartDeps`, and (thr If you are packaging a Flutter desktop application, use [`buildFlutterApplication`](#ssec-dart-flutter) instead. -`vendorHash`: is the hash of the output of the dependency fetcher derivation. To obtain it, simply set it to `lib.fakeHash` (or omit it) and run the build ([more details here](#sec-source-hashes)). +`vendorHash`: is the hash of the output of the dependency fetcher derivation. To obtain it, set it to `lib.fakeHash` (or omit it) and run the build ([more details here](#sec-source-hashes)). If the upstream source is missing a `pubspec.lock` file, you'll have to vendor one and specify it using `pubspecLockFile`. If it is needed, one will be generated for you and printed when attempting to build the derivation. diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md index 6b9ce32d1736..b0b5f5c3bb2f 100644 --- a/doc/languages-frameworks/haskell.section.md +++ b/doc/languages-frameworks/haskell.section.md @@ -177,7 +177,7 @@ exactly one version. Those versions need to satisfy all the version constraints given in the `.cabal` file of your package and all its dependencies. The [Haskell builder in nixpkgs](#haskell-mkderivation) does no such thing. -It will simply take as input packages with names off the desired dependencies +It will take as input packages with names off the desired dependencies and just check whether they fulfill the version bounds and fail if they don’t (by default, see `jailbreak` to circumvent this). @@ -780,7 +780,7 @@ there instead. The top level `pkgs.haskell-language-server` attribute is just a convenience wrapper to make it possible to install HLS for multiple GHC versions at the same time. If you know, that you only use one GHC version, e.g., in a project -specific `nix-shell` you can simply use +specific `nix-shell` you can use `pkgs.haskellPackages.haskell-language-server` or `pkgs.haskell.packages.*.haskell-language-server` from the package set you use. diff --git a/doc/languages-frameworks/lisp.section.md b/doc/languages-frameworks/lisp.section.md index 8712c3412064..fe7f2ef80a2e 100644 --- a/doc/languages-frameworks/lisp.section.md +++ b/doc/languages-frameworks/lisp.section.md @@ -268,7 +268,7 @@ getting an environment variable for `ext:getenv`. This will load the ### Loading systems {#lisp-loading-systems} -There, you can simply use `asdf:load-system`. This works by setting the right +There, you can use `asdf:load-system`. This works by setting the right values for the `CL_SOURCE_REGISTRY`/`ASDF_OUTPUT_TRANSLATIONS` environment variables, so that systems are found in the Nix store and pre-compiled FASLs are loaded. diff --git a/doc/languages-frameworks/maven.section.md b/doc/languages-frameworks/maven.section.md index 7e287a097c7e..b86733a75898 100644 --- a/doc/languages-frameworks/maven.section.md +++ b/doc/languages-frameworks/maven.section.md @@ -53,7 +53,7 @@ After setting `maven.buildMavenPackage`, we then do standard Java `.jar` install Maven defines default versions for its core plugins, e.g. `maven-compiler-plugin`. If your project does not override these versions, an upgrade of Maven will change the version of the used plugins, and therefore the derivation and hash. -When `maven` is upgraded, `mvnHash` for the derivation must be updated as well: otherwise, the project will simply be built on the derivation of old plugins, and fail because the requested plugins are missing. +When `maven` is upgraded, `mvnHash` for the derivation must be updated as well: otherwise, the project will be built on the derivation of old plugins, and fail because the requested plugins are missing. This clearly prevents automatic upgrades of Maven: a manual effort must be made throughout nixpkgs by any maintainer wishing to push the upgrades. diff --git a/doc/languages-frameworks/php.section.md b/doc/languages-frameworks/php.section.md index 377e3947b2a2..154d8174f9aa 100644 --- a/doc/languages-frameworks/php.section.md +++ b/doc/languages-frameworks/php.section.md @@ -58,7 +58,7 @@ php.withExtensions ({ enabled, all }: ++ [ all.imagick ]) ``` -To build your list of extensions from the ground up, you can simply +To build your list of extensions from the ground up, you can ignore `enabled`: ```nix @@ -140,7 +140,7 @@ Example of building `composer` with additional extensions: ### Overriding PHP packages {#ssec-php-user-guide-overriding-packages} `php-packages.nix` form a scope, allowing us to override the packages defined -within. For example, to apply a patch to a `mysqlnd` extension, you can simply +within. For example, to apply a patch to a `mysqlnd` extension, you can pass an overlay-style function to `php`’s `packageOverrides` argument: ```nix @@ -191,7 +191,7 @@ using the `bin` attribute in `composer.json`, these binaries will be automatically linked and made accessible in the derivation. In this context, "binaries" refer to PHP scripts that are intended to be executable. -To use the helper effectively, simply add the `vendorHash` attribute, which +To use the helper effectively, add the `vendorHash` attribute, which enables the wrapper to handle the heavy lifting. Internally, the helper operates in three stages: diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index 9af3f529ae49..701507178380 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -264,7 +264,7 @@ python3MyBlas = pkgs.python3.override { ``` This is particularly useful for numpy and scipy users who want to gain speed with other blas implementations. -Note that using simply `scipy = super.scipy.override { blas = super.pkgs.mkl; };` will likely result in +Note that using `scipy = super.scipy.override { blas = super.pkgs.mkl; };` will likely result in compilation issues, because scipy dependencies need to use the same blas implementation as well. #### `buildPythonApplication` function {#buildpythonapplication-function} @@ -433,7 +433,7 @@ python3.withPackages (ps: [ ps.pyramid ]) Now, `ps` is set to `python3Packages`, matching the version of the interpreter. -As [`python.withPackages`](#python.withpackages-function) simply uses [`python.buildEnv`](#python.buildenv-function) under the hood, it also +As [`python.withPackages`](#python.withpackages-function) uses [`python.buildEnv`](#python.buildenv-function) under the hood, it also supports the `env` attribute. The `shell.nix` file from the previous section can thus be also written like this: @@ -682,7 +682,7 @@ b = np.array([3,4]) print(f"The dot product of {a} and {b} is: {np.dot(a, b)}") ``` -Then we simply execute it, without requiring any environment setup at all! +Then we execute it, without requiring any environment setup at all! ```sh $ ./foo.py @@ -1713,7 +1713,7 @@ This is an example of a `default.nix` for a `nix-shell`, which allows to consume a virtual environment created by `venv`, and install Python modules through `pip` the traditional way. -Create this `default.nix` file, together with a `requirements.txt` and simply +Create this `default.nix` file, together with a `requirements.txt` and execute `nix-shell`. ```nix diff --git a/doc/languages-frameworks/ruby.section.md b/doc/languages-frameworks/ruby.section.md index d3b896686c06..920c84eee689 100644 --- a/doc/languages-frameworks/ruby.section.md +++ b/doc/languages-frameworks/ruby.section.md @@ -94,7 +94,7 @@ $ bundle lock $ bundix ``` -If you already have a `Gemfile.lock`, you can simply run `bundix` and it will work the same. +If you already have a `Gemfile.lock`, you can run `bundix` and it will work the same. To update the gems in your `Gemfile.lock`, you may use the `bundix -l` flag, which will create a new `Gemfile.lock` in case the `Gemfile` has a more recent time of modification. @@ -251,7 +251,7 @@ source 'https://rubygems.org' do end ``` -If you want to package a specific version, you can use the standard Gemfile syntax for that, e.g. `gem 'mdl', '0.5.0'`, but if you want the latest stable version anyway, it's easier to update by simply running the `bundle lock` and `bundix` steps again. +If you want to package a specific version, you can use the standard Gemfile syntax for that, e.g. `gem 'mdl', '0.5.0'`, but if you want the latest stable version anyway, it's easier to update by running the `bundle lock` and `bundix` steps again. Now you can also make a `default.nix` that looks like this: diff --git a/doc/languages-frameworks/swift.section.md b/doc/languages-frameworks/swift.section.md index 1cc452cc9b9b..213d444f499f 100644 --- a/doc/languages-frameworks/swift.section.md +++ b/doc/languages-frameworks/swift.section.md @@ -32,7 +32,7 @@ look for the following directories: (If not targeting macOS, replace `macosx` with the Xcode platform name.) - On other platforms: `lib/swift/linux/x86_64` (Where `linux` and `x86_64` are from lowercase `uname -sm`.) -- For convenience, Nixpkgs also adds simply `lib/swift` to the search path. +- For convenience, Nixpkgs also adds `lib/swift` to the search path. This can save a bit of work packaging Swift modules, because many Nix builds will produce output for just one target any way. @@ -123,7 +123,7 @@ swiftpmFlags = [ "--disable-dead-strip" ]; The default `buildPhase` already passes `-j` for parallel building. -If these two customization options are insufficient, simply provide your own +If these two customization options are insufficient, provide your own `buildPhase` that invokes `swift build`. ### Running tests {#ssec-swiftpm-running-tests} diff --git a/doc/packages/urxvt.section.md b/doc/packages/urxvt.section.md index 507feaa6fd86..7aff0997dd2b 100644 --- a/doc/packages/urxvt.section.md +++ b/doc/packages/urxvt.section.md @@ -34,7 +34,7 @@ $ nix repl map (p: p.name) pkgs.rxvt-unicode.plugins ``` -Alternatively, if your shell is bash or zsh and have completion enabled, simply type `nixpkgs.rxvt-unicode.plugins.`. +Alternatively, if your shell is bash or zsh and have completion enabled, type `nixpkgs.rxvt-unicode.plugins.`. In addition to `plugins` the options `extraDeps` and `perlDeps` can be used to install extra packages. `extraDeps` can be used, for example, to provide `xsel` (a clipboard manager) to the clipboard plugin, without installing it globally: diff --git a/doc/stdenv/stdenv.chapter.md b/doc/stdenv/stdenv.chapter.md index 53243af5f239..26c43bd9e943 100644 --- a/doc/stdenv/stdenv.chapter.md +++ b/doc/stdenv/stdenv.chapter.md @@ -319,7 +319,7 @@ let f(h, h + 1, i) = i + (if i <= 0 then h else h) let f(h, h + 1, i) = i + h ``` -This is where “sum-like” comes in from above: We can just sum all of the host offsets to get the host offset of the transitive dependency. The target offset is the transitive dependency is simply the host offset + 1, just as it was with the dependencies composed to make this transitive one; it can be ignored as it doesn’t add any new information. +This is where “sum-like” comes in from above: We can just sum all of the host offsets to get the host offset of the transitive dependency. The target offset is the transitive dependency is the host offset + 1, just as it was with the dependencies composed to make this transitive one; it can be ignored as it doesn’t add any new information. Because of the bounds checks, the uncommon cases are `h = t` and `h + 2 = t`. In the former case, the motivation for `mapOffset` is that since its host and target platforms are the same, no transitive dependency of it should be able to “discover” an offset greater than its reduced target offsets. `mapOffset` effectively “squashes” all its transitive dependencies’ offsets so that none will ever be greater than the target offset of the original `h = t` package. In the other case, `h + 1` is skipped over between the host and target offsets. Instead of squashing the offsets, we need to “rip” them apart so no transitive dependencies’ offset is that one. @@ -649,7 +649,7 @@ Zip files are unpacked using `unzip`. However, `unzip` is not in the standard en #### Directories in the Nix store {#directories-in-the-nix-store} -These are simply copied to the current directory. The hash part of the file name is stripped, e.g. `/nix/store/1wydxgby13cz...-my-sources` would be copied to `my-sources`. +These are copied to the current directory. The hash part of the file name is stripped, e.g. `/nix/store/1wydxgby13cz...-my-sources` would be copied to `my-sources`. Additional file types can be supported by setting the `unpackCmd` variable (see below). @@ -788,7 +788,7 @@ Hook executed at the end of the configure phase. ### The build phase {#build-phase} -The build phase is responsible for actually building the package (e.g. compiling it). The default `buildPhase` simply calls `make` if a file named `Makefile`, `makefile` or `GNUmakefile` exists in the current directory (or the `makefile` is explicitly set); otherwise it does nothing. +The build phase is responsible for actually building the package (e.g. compiling it). The default `buildPhase` calls `make` if a file named `Makefile`, `makefile` or `GNUmakefile` exists in the current directory (or the `makefile` is explicitly set); otherwise it does nothing. #### Variables controlling the build phase {#variables-controlling-the-build-phase} @@ -1317,7 +1317,7 @@ Nix itself considers a build-time dependency as merely something that should pre In order to alleviate this burden, the setup hook mechanism was written, where any package can include a shell script that \[by convention rather than enforcement by Nix\], any downstream reverse-dependency will source as part of its build process. That allows the downstream dependency to merely specify its dependencies, and lets those dependencies effectively initialize themselves. No boilerplate mirroring the list of dependencies is needed. -The setup hook mechanism is a bit of a sledgehammer though: a powerful feature with a broad and indiscriminate area of effect. The combination of its power and implicit use may be expedient, but isn’t without costs. Nix itself is unchanged, but the spirit of added dependencies being effect-free is violated even if the latter isn’t. For example, if a derivation path is mentioned more than once, Nix itself doesn’t care and simply makes sure the dependency derivation is already built just the same—depending is just needing something to exist, and needing is idempotent. However, a dependency specified twice will have its setup hook run twice, and that could easily change the build environment (though a well-written setup hook will therefore strive to be idempotent so this is in fact not observable). More broadly, setup hooks are anti-modular in that multiple dependencies, whether the same or different, should not interfere and yet their setup hooks may well do so. +The setup hook mechanism is a bit of a sledgehammer though: a powerful feature with a broad and indiscriminate area of effect. The combination of its power and implicit use may be expedient, but isn’t without costs. Nix itself is unchanged, but the spirit of added dependencies being effect-free is violated even if the latter isn’t. For example, if a derivation path is mentioned more than once, Nix itself doesn’t care and makes sure the dependency derivation is already built just the same—depending is just needing something to exist, and needing is idempotent. However, a dependency specified twice will have its setup hook run twice, and that could easily change the build environment (though a well-written setup hook will therefore strive to be idempotent so this is in fact not observable). More broadly, setup hooks are anti-modular in that multiple dependencies, whether the same or different, should not interfere and yet their setup hooks may well do so. The most typical use of the setup hook is actually to add other hooks which are then run (i.e. after all the setup hooks) on each dependency. For example, the C compiler wrapper’s setup hook feeds itself flags for each dependency that contains relevant libraries and headers. This is done by defining a bash function, and appending its name to one of `envBuildBuildHooks`, `envBuildHostHooks`, `envBuildTargetHooks`, `envHostHostHooks`, `envHostTargetHooks`, or `envTargetTargetHooks`. These 6 bash variables correspond to the 6 sorts of dependencies by platform (there’s 12 total but we ignore the propagated/non-propagated axis). diff --git a/doc/using/overlays.chapter.md b/doc/using/overlays.chapter.md index 6ee52215a4e1..1e965e5f0c74 100644 --- a/doc/using/overlays.chapter.md +++ b/doc/using/overlays.chapter.md @@ -156,7 +156,7 @@ All programs that are built with [MPI](https://en.wikipedia.org/wiki/Message_Pas - [MVAPICH](https://mvapich.cse.ohio-state.edu/), attribute name `mvapich` -To provide MPI enabled applications that use `MPICH`, instead of the default `Open MPI`, simply use the following overlay: +To provide MPI enabled applications that use `MPICH`, instead of the default `Open MPI`, use the following overlay: ```nix self: super: diff --git a/nixos/doc/manual/configuration/declarative-packages.section.md b/nixos/doc/manual/configuration/declarative-packages.section.md index 02eaa56192e4..480e250da8c7 100644 --- a/nixos/doc/manual/configuration/declarative-packages.section.md +++ b/nixos/doc/manual/configuration/declarative-packages.section.md @@ -37,7 +37,7 @@ Note: the `nixos` prefix tells us that we want to get the package from the `nixos` channel and works only in CLI tools. In declarative configuration use `pkgs` prefix (variable). -To "uninstall" a package, simply remove it from +To "uninstall" a package, remove it from [](#opt-environment.systemPackages) and run `nixos-rebuild switch`. ```{=include=} sections diff --git a/nixos/doc/manual/configuration/modularity.section.md b/nixos/doc/manual/configuration/modularity.section.md index 2eff15387987..f4a566d66973 100644 --- a/nixos/doc/manual/configuration/modularity.section.md +++ b/nixos/doc/manual/configuration/modularity.section.md @@ -36,8 +36,8 @@ Here, we include two modules from the same directory, `vpn.nix` and Note that both `configuration.nix` and `kde.nix` define the option [](#opt-environment.systemPackages). When multiple modules define an option, NixOS will try to *merge* the definitions. In the case of -[](#opt-environment.systemPackages), that's easy: the lists of -packages can simply be concatenated. The value in `configuration.nix` is +[](#opt-environment.systemPackages) the lists of packages will be +concatenated. The value in `configuration.nix` is merged last, so for list-type options, it will appear at the end of the merged list. If you want it to appear first, you can use `mkBefore`: diff --git a/nixos/doc/manual/configuration/xfce.chapter.md b/nixos/doc/manual/configuration/xfce.chapter.md index a80be2b523e2..9ec4a51d6e35 100644 --- a/nixos/doc/manual/configuration/xfce.chapter.md +++ b/nixos/doc/manual/configuration/xfce.chapter.md @@ -28,7 +28,7 @@ manually (system wide), put them into your Thunar (the Xfce file manager) is automatically enabled when Xfce is enabled. To enable Thunar without enabling Xfce, use the configuration -option [](#opt-programs.thunar.enable) instead of simply adding +option [](#opt-programs.thunar.enable) instead of adding `pkgs.xfce.thunar` to [](#opt-environment.systemPackages). If you'd like to add extra plugins to Thunar, add them to diff --git a/nixos/doc/manual/development/writing-documentation.chapter.md b/nixos/doc/manual/development/writing-documentation.chapter.md index 8cb6823d0985..c07a2618c07e 100644 --- a/nixos/doc/manual/development/writing-documentation.chapter.md +++ b/nixos/doc/manual/development/writing-documentation.chapter.md @@ -50,7 +50,7 @@ pandoc -f markdown_github -t docbook5 docs.md -o my-section.md Pandoc can also quickly convert a single `section.xml` to HTML, which is helpful when drafting. -Sometimes writing valid DocBook is simply too difficult. In this case, +Sometimes writing valid DocBook is too difficult. In this case, submit your documentation updates in a [GitHub Issue](https://github.com/NixOS/nixpkgs/issues/new) and someone will handle the conversion to XML for you. diff --git a/nixos/doc/manual/installation/installing-pxe.section.md b/nixos/doc/manual/installation/installing-pxe.section.md index 4fbd6525f8c3..c1cad99d39f3 100644 --- a/nixos/doc/manual/installation/installing-pxe.section.md +++ b/nixos/doc/manual/installation/installing-pxe.section.md @@ -4,7 +4,7 @@ Advanced users may wish to install NixOS using an existing PXE or iPXE setup. These instructions assume that you have an existing PXE or iPXE -infrastructure and simply want to add the NixOS installer as another +infrastructure and want to add the NixOS installer as another option. To build the necessary files from your current version of nixpkgs, you can run: diff --git a/nixos/doc/manual/release-notes/rl-1609.section.md b/nixos/doc/manual/release-notes/rl-1609.section.md index ad3478d0ca17..0cbabf58ca03 100644 --- a/nixos/doc/manual/release-notes/rl-1609.section.md +++ b/nixos/doc/manual/release-notes/rl-1609.section.md @@ -46,7 +46,7 @@ When upgrading from a previous release, please be aware of the following incompa Other notable improvements: -- Revamped grsecurity/PaX support. There is now only a single general-purpose distribution kernel and the configuration interface has been streamlined. Desktop users should be able to simply set +- Revamped grsecurity/PaX support. There is now only a single general-purpose distribution kernel and the configuration interface has been streamlined. Desktop users should be able to set ```nix { diff --git a/nixos/doc/manual/release-notes/rl-1909.section.md b/nixos/doc/manual/release-notes/rl-1909.section.md index 22cef05d4fa7..2bd04f8dd40a 100644 --- a/nixos/doc/manual/release-notes/rl-1909.section.md +++ b/nixos/doc/manual/release-notes/rl-1909.section.md @@ -198,7 +198,7 @@ When upgrading from a previous release, please be aware of the following incompa For nginx, the dependencies are still automatically managed when `services.nginx.virtualhosts..enableACME` is enabled just like before. What changed is that nginx now directly depends on the specific certificates that it needs, instead of depending on the catch-all `acme-certificates.target`. This target unit was also removed from the codebase. This will mean nginx will no longer depend on certificates it isn't explicitly managing and fixes a bug with certificate renewal ordering racing with nginx restarting which could lead to nginx getting in a broken state as described at [NixOS/nixpkgs\#60180](https://github.com/NixOS/nixpkgs/issues/60180). -- The old deprecated `emacs` package sets have been dropped. What used to be called `emacsPackagesNg` is now simply called `emacsPackages`. +- The old deprecated `emacs` package sets have been dropped. What used to be called `emacsPackagesNg` is now called `emacsPackages`. - `services.xserver.desktopManager.xterm` is now disabled by default if `stateVersion` is 19.09 or higher. Previously the xterm desktopManager was enabled when xserver was enabled, but it isn't useful for all people so it didn't make sense to have any desktopManager enabled default. diff --git a/nixos/doc/manual/release-notes/rl-2003.section.md b/nixos/doc/manual/release-notes/rl-2003.section.md index 76cee8858e80..695f8a2c95ca 100644 --- a/nixos/doc/manual/release-notes/rl-2003.section.md +++ b/nixos/doc/manual/release-notes/rl-2003.section.md @@ -482,7 +482,7 @@ When upgrading from a previous release, please be aware of the following incompa - If you use `postgresql` on a different server, you don't need to change anything as well since this module was never designed to configure remote databases. - - If you use `postgresql` and configured your synapse initially on `19.09` or older, you simply need to enable postgresql-support explicitly: + - If you use `postgresql` and configured your synapse initially on `19.09` or older, you need to enable postgresql-support explicitly: ```nix { ... }: { diff --git a/nixos/doc/manual/release-notes/rl-2009.section.md b/nixos/doc/manual/release-notes/rl-2009.section.md index 6bb75a04b3e8..eac02a8ff445 100644 --- a/nixos/doc/manual/release-notes/rl-2009.section.md +++ b/nixos/doc/manual/release-notes/rl-2009.section.md @@ -422,7 +422,7 @@ When upgrading from a previous release, please be aware of the following incompa - The `systemd-networkd` option `systemd.network.networks._name_.dhcpConfig` has been renamed to [systemd.network.networks._name_.dhcpV4Config](options.html#opt-systemd.network.networks._name_.dhcpV4Config) following upstream systemd's documentation change. See systemd.network 5 for details. -- In the `picom` module, several options that accepted floating point numbers encoded as strings (for example [services.picom.activeOpacity](options.html#opt-services.picom.activeOpacity)) have been changed to the (relatively) new native `float` type. To migrate your configuration simply remove the quotes around the numbers. +- In the `picom` module, several options that accepted floating point numbers encoded as strings (for example [services.picom.activeOpacity](options.html#opt-services.picom.activeOpacity)) have been changed to the (relatively) new native `float` type. To migrate your configuration remove the quotes around the numbers. - When using `buildBazelPackage` from Nixpkgs, `flat` hash mode is now used for dependencies instead of `recursive`. This is to better allow using hashed mirrors where needed. As a result, these hashes will have changed. diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md index 37079c20967b..1c73d0c9790d 100644 --- a/nixos/doc/manual/release-notes/rl-2211.section.md +++ b/nixos/doc/manual/release-notes/rl-2211.section.md @@ -14,7 +14,7 @@ In addition to numerous new and upgraded packages, this release includes the fol - Support for algorithms that `libxcrypt` [does not consider strong](https://github.com/besser82/libxcrypt/blob/v4.4.28/lib/hashes.conf#L41) are **deprecated** as of this release, and will be removed in NixOS 23.05. - This includes system login passwords. Given this, we **strongly encourage** all users to update their system passwords, as you will be unable to login if password hashes are not migrated by the time their support is removed. - When using `users.users..hashedPassword` to configure user passwords, run `mkpasswd`, and use the yescrypt hash that is provided as the new value. - - On the other hand, for interactively configured user passwords, simply re-set the passwords for all users with `passwd`. + - On the other hand, for interactively configured user passwords, re-set the passwords for all users with `passwd`. - This release introduces warnings for the use of deprecated hash algorithms for both methods of configuring passwords. To make sure you migrated correctly, run `nixos-rebuild switch`. - The NixOS documentation is now generated from markdown. While docbook is still part of the documentation build process, it's a big step towards the full migration. diff --git a/nixos/doc/manual/release-notes/rl-2305.section.md b/nixos/doc/manual/release-notes/rl-2305.section.md index 3d27d3fef8fa..0b54b8b32a35 100644 --- a/nixos/doc/manual/release-notes/rl-2305.section.md +++ b/nixos/doc/manual/release-notes/rl-2305.section.md @@ -611,7 +611,7 @@ If you are: - adding new rules with `*.rules` - running custom PulseAudio commands with `pulse.cmd` -Simply move the definitions into the drop-in. +Move the definitions into the drop-in. Note that the use of `context.exec` is not recommended and other methods of running your thing are likely a better option. diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index 2b45bbac8766..87f045c55d0f 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -304,7 +304,7 @@ - Emacs macport version 29 was introduced. -- The option `services.networking.networkmanager.enableFccUnlock` was removed in favor of `networking.networkmanager.fccUnlockScripts`, which allows specifying unlock scripts explicitly. The previous option simply did enable all unlock scripts bundled with ModemManager, which is risky, and didn't allow using vendor-provided unlock scripts at all. +- The option `services.networking.networkmanager.enableFccUnlock` was removed in favor of `networking.networkmanager.fccUnlockScripts`, which allows specifying unlock scripts explicitly. The previous option enabled all unlock scripts bundled with ModemManager, which is risky, and didn't allow using vendor-provided unlock scripts at all. - The `html-proofer` package has been updated from major version 3 to major version 5, which includes [breaking changes](https://github.com/gjtorikian/html-proofer/blob/v5.0.8/UPGRADING.md). From bd87316ace40a37f720d0c70ad5909a6e17eeb4d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 9 Nov 2023 14:21:07 +0000 Subject: [PATCH 19/21] python310Packages.farm-haystack: 1.21.2 -> 1.22.0 --- pkgs/development/python-modules/farm-haystack/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/farm-haystack/default.nix b/pkgs/development/python-modules/farm-haystack/default.nix index de87016f36fc..afee9c60f894 100644 --- a/pkgs/development/python-modules/farm-haystack/default.nix +++ b/pkgs/development/python-modules/farm-haystack/default.nix @@ -91,14 +91,14 @@ buildPythonPackage rec { pname = "farm-haystack"; - version = "1.21.2"; + version = "1.22.0"; pyproject = true; src = fetchFromGitHub { owner = "deepset-ai"; repo = "haystack"; - rev = "v${version}"; - hash = "sha256-h+8F1e6fFoxT4Cu0DxtXTyDd+OFXpX1+uk21/k9qcxw="; + rev = "refs/tags/v${version}"; + hash = "sha256-0tRgZqySM9vPhs5lar89Gz/G7/YgRuFZosgTdKuGBH0="; }; nativeBuildInputs = [ From 833ccca4c1005b992dc6667be211fac72c90b40f Mon Sep 17 00:00:00 2001 From: arcnmx Date: Thu, 9 Nov 2023 10:56:23 -0800 Subject: [PATCH 20/21] subversion: add meta.mainProgram --- pkgs/applications/version-management/subversion/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix index 6f03b139cf1b..ecb5093f4be1 100644 --- a/pkgs/applications/version-management/subversion/default.nix +++ b/pkgs/applications/version-management/subversion/default.nix @@ -114,6 +114,7 @@ let description = "A version control system intended to be a compelling replacement for CVS in the open source community"; license = licenses.asl20; homepage = "https://subversion.apache.org/"; + mainProgram = "svn"; maintainers = with maintainers; [ eelco lovek323 ]; platforms = platforms.linux ++ platforms.darwin; }; From 2251d8ffde6ad42897b7c97c51e117a2c6ec7f23 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 7 Nov 2023 06:37:53 +0000 Subject: [PATCH 21/21] aichat: 0.8.0 -> 0.9.0 --- pkgs/tools/misc/aichat/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/misc/aichat/default.nix b/pkgs/tools/misc/aichat/default.nix index 945abf1f23b9..6ec48a78fcf9 100644 --- a/pkgs/tools/misc/aichat/default.nix +++ b/pkgs/tools/misc/aichat/default.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage rec { pname = "aichat"; - version = "0.8.0"; + version = "0.9.0"; src = fetchFromGitHub { owner = "sigoden"; repo = "aichat"; rev = "v${version}"; - hash = "sha256-E/QslRDeifFHlHUELv9rYHjfCAB1yXXiXlWOyPNkfps="; + hash = "sha256-KY8GUUPZyb89b9mGd+EuYP8M7bKxt7oKQfaaX1R4BTE="; }; - cargoHash = "sha256-7TTHBeZ68G6k5eHBL1zDGsYiTyx27fBbN7Rl9AiZTng="; + cargoHash = "sha256-YTLiJ8/aTN3d2xkEqtiyP47KeDK88I2Raix8kmddDNE="; nativeBuildInputs = [ pkg-config