From 75fae935dc081f86bd0fff64d2b54fc7138117bb Mon Sep 17 00:00:00 2001 From: quasigod-io Date: Wed, 2 Nov 2022 23:05:06 -0400 Subject: [PATCH 01/45] protonup-qt: init at 2.7.4 --- .../applications/misc/protonup-qt/default.nix | 33 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 35 insertions(+) create mode 100644 pkgs/applications/misc/protonup-qt/default.nix diff --git a/pkgs/applications/misc/protonup-qt/default.nix b/pkgs/applications/misc/protonup-qt/default.nix new file mode 100644 index 000000000000..50cb5c9cd003 --- /dev/null +++ b/pkgs/applications/misc/protonup-qt/default.nix @@ -0,0 +1,33 @@ +{ appimageTools, fetchurl, lib }: +let + pname = "protonup-qt"; + version = "2.7.4"; + src = fetchurl { + url = "https://github.com/DavidoTek/ProtonUp-Qt/releases/download/v${version}/ProtonUp-Qt-${version}-x86_64.AppImage"; + sha256 = "yKc+KOQfqciqULnChVLf6y9npoSYM6Fmu7mYGEKmpkA="; + }; + appimageContents = appimageTools.extractType2 { inherit pname version src; }; +in +appimageTools.wrapType2 rec { + inherit pname version src; + + extraInstallCommands = '' + mv $out/bin/{${pname}-${version},${pname}} + mkdir -p $out/share/{applications,pixmaps} + cp ${appimageContents}/net.davidotek.pupgui2.desktop $out/share/applications/${pname}.desktop + cp ${appimageContents}/net.davidotek.pupgui2.png $out/share/pixmaps/${pname}.png + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'Exec=net.davidotek.pupgui2' 'Exec=${pname}' \ + --replace 'Icon=net.davidotek.pupgui2' 'Icon=${pname}' + ''; + + meta = with lib; { + homepage = "https://davidotek.github.io/protonup-qt/"; + description = "Install and manage Proton-GE and Luxtorpeda for Steam and Wine-GE for Lutris with this graphical user interface."; + license = licenses.gpl3; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + mainProgram = "protonup-qt"; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ quasigod-io ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cda60e5f2dbc..6e40b3d8a098 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -29189,6 +29189,8 @@ with pkgs; pixinsight = libsForQt5.callPackage ../applications/graphics/pixinsight { }; + protonup-qt = python3Packages.callPackage ../applications/misc/protonup-qt { }; + pmbootstrap = python3Packages.callPackage ../tools/misc/pmbootstrap { }; shepherd = nodePackages."@nerdwallet/shepherd"; From 4add2dd5c64f1c65284b3aa1c57f9508a6d85f0e Mon Sep 17 00:00:00 2001 From: Kylie McClain Date: Sun, 6 Nov 2022 18:36:14 -0500 Subject: [PATCH 02/45] hunspell-dict-tok: init at 20220829 --- .../libraries/hunspell/dictionaries.nix | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/hunspell/dictionaries.nix b/pkgs/development/libraries/hunspell/dictionaries.nix index 3eee425d4be8..09d68fa0199d 100644 --- a/pkgs/development/libraries/hunspell/dictionaries.nix +++ b/pkgs/development/libraries/hunspell/dictionaries.nix @@ -1,6 +1,6 @@ /* hunspell dictionaries */ -{ lib, stdenv, fetchurl, fetchFromGitHub, unzip, coreutils, bash, which, zip, ispell, perl, hunspell }: +{ lib, stdenv, fetchurl, fetchzip, fetchFromGitHub, unzip, coreutils, bash, which, zip, ispell, perl, hunspell }: let @@ -878,4 +878,28 @@ rec { shortDescription = "Norwegian Nynorsk (Norway)"; license = with lib.licenses; [ gpl2Only ]; }; + + /* TOKI PONA */ + + tok = mkDict rec { + pname = "hunspell-dict-tok"; + version = "20220829"; + dictFileName = "tok"; + readmeFile = "README.en.adoc"; + + src = fetchzip { + url = "https://github.com/somasis/hunspell-tok/releases/download/${version}/hunspell-tok-${version}.tar.gz"; + sha256 = "sha256-RiAODKXPUeIcf8IFcU6Tacehq5S8GYuPTuxEiN2CXD0="; + }; + + dontBuild = true; + + meta = with lib; { + description = "Hunspell dictionary for Toki Pona"; + homepage = "https://github.com/somasis/hunspell-tok"; + license = with lib.licenses; [ cc0 publicDomain cc-by-sa-30 cc-by-sa-40 ]; + maintainers = with maintainers; [ somasis ]; + platforms = platforms.all; + }; + }; } From fc2812a1f8a2b74ce0ab9a36912e9298b2027bfe Mon Sep 17 00:00:00 2001 From: Jiajie Chen Date: Tue, 1 Nov 2022 10:45:33 +0800 Subject: [PATCH 03/45] nest: init at 3.3 --- .../science/biology/nest/default.nix | 70 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 ++ pkgs/top-level/python-packages.nix | 2 + 3 files changed, 76 insertions(+) create mode 100644 pkgs/applications/science/biology/nest/default.nix diff --git a/pkgs/applications/science/biology/nest/default.nix b/pkgs/applications/science/biology/nest/default.nix new file mode 100644 index 000000000000..01874763901b --- /dev/null +++ b/pkgs/applications/science/biology/nest/default.nix @@ -0,0 +1,70 @@ +{ lib +, stdenv +, fetchFromGitHub +, testers +, cmake +, gsl +, libtool +, mpi +, nest +, pkg-config +, python3 +, readline +, autoPatchelfHook +, withPython ? false +, withMpi ? false +}: + +stdenv.mkDerivation rec { + pname = "nest"; + version = "3.3"; + + src = fetchFromGitHub { + owner = "nest"; + repo = "nest-simulator"; + rev = "v${version}"; + sha256 = "sha256-wmn5LOOHlSuyPdV6O6v7j10dxdcvqpym6MfveZdL+dU="; + }; + + postPatch = '' + patchShebangs cmake/CheckFiles/check_return_val.sh + # fix PyNEST installation path + # it expects CMAKE_INSTALL_LIBDIR to be relative + substituteInPlace cmake/ProcessOptions.cmake \ + --replace "\''${CMAKE_INSTALL_LIBDIR}/python" "lib/python" + ''; + + nativeBuildInputs = [ + cmake + pkg-config + autoPatchelfHook + ]; + + buildInputs = [ + gsl + readline + libtool # libltdl + ] ++ lib.optionals withPython [ + python3 + python3.pkgs.cython + ] ++ lib.optional withMpi mpi; + + cmakeFlags = [ + "-Dwith-python=${if withPython then "ON" else "OFF"}" + "-Dwith-mpi=${if withMpi then "ON" else "OFF"}" + "-Dwith-openmp=${if stdenv.isDarwin then "OFF" else "ON"}" + ]; + + passthru.tests.version = testers.testVersion { + package = nest; + command = "nest --version"; + }; + + meta = with lib; { + description = "NEST is a command line tool for simulating neural networks"; + homepage = "https://www.nest-simulator.org/"; + license = licenses.gpl2; + maintainers = with maintainers; [ jiegec ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 70d0aa64c71c..e7f64ad78579 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -35278,6 +35278,10 @@ with pkgs; n3 = callPackage ../applications/science/biology/N3 { }; + nest = callPackage ../applications/science/biology/nest { }; + + nest-mpi = callPackage ../applications/science/biology/nest { withMpi = true; }; + neuron = callPackage ../applications/science/biology/neuron { python = null; }; neuron-mpi = neuron.override {useMpi = true; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index af0c07084a9f..5c79953c8a5d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6069,6 +6069,8 @@ self: super: with self; { nessclient = callPackage ../development/python-modules/nessclient { }; + nest = toPythonModule(pkgs.nest-mpi.override { withPython = true; python3 = python; }); + nest-asyncio = callPackage ../development/python-modules/nest-asyncio { }; nested-lookup = callPackage ../development/python-modules/nested-lookup { }; From 18d6f13520878b2b7f2fdc9b57b21b2ad925c38a Mon Sep 17 00:00:00 2001 From: Jiajie Chen Date: Tue, 1 Nov 2022 14:54:42 +0800 Subject: [PATCH 04/45] python3Packages.brian2: init at 2.5.1 --- .../python-modules/brian2/default.nix | 53 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 55 insertions(+) create mode 100644 pkgs/development/python-modules/brian2/default.nix diff --git a/pkgs/development/python-modules/brian2/default.nix b/pkgs/development/python-modules/brian2/default.nix new file mode 100644 index 000000000000..52149b883060 --- /dev/null +++ b/pkgs/development/python-modules/brian2/default.nix @@ -0,0 +1,53 @@ +{ lib +, buildPythonPackage +, fetchPypi +, cython +, jinja2 +, numpy +, pyparsing +, setuptools +, sympy +, pytest +, pytest-xdist +, python +}: + +buildPythonPackage rec { + pname = "brian2"; + version = "2.5.1"; + + src = fetchPypi { + pname = "Brian2"; + inherit version; + sha256 = "sha256-x1EcS7PFCsjPYsq3Lt87SJRW4J5DE/OfdFs3NuyHiLw="; + }; + + propagatedBuildInputs = [ + cython + jinja2 + numpy + pyparsing + setuptools + sympy + ]; + + checkInputs = [ + pytest + pytest-xdist + ]; + + checkPhase = '' + runHook preCheck + # Cython cache lies in home directory + export HOME=$(mktemp -d) + cd $HOME && ${python.interpreter} -c "import brian2;assert brian2.test()" + runHook postCheck + ''; + + meta = with lib; { + description = "A clock-driven simulator for spiking neural networks"; + homepage = "https://briansimulator.org/"; + license = licenses.cecill21; + maintainers = with maintainers; [ jiegec ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index af0c07084a9f..ad4f457442c0 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1372,6 +1372,8 @@ self: super: with self; { brelpy = callPackage ../development/python-modules/brelpy { }; + brian2 = callPackage ../development/python-modules/brian2 { }; + broadlink = callPackage ../development/python-modules/broadlink { }; brother = callPackage ../development/python-modules/brother { }; From 5bf53688d62ab6e8d080f6c395077b01a0804425 Mon Sep 17 00:00:00 2001 From: Nikita Uvarov Date: Tue, 27 Dec 2022 10:05:01 +0000 Subject: [PATCH 05/45] =?UTF-8?q?webex:=2042.10.0.24000=20=E2=86=92=2042.1?= =?UTF-8?q?2.0.24485?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../networking/instant-messengers/webex/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/webex/default.nix b/pkgs/applications/networking/instant-messengers/webex/default.nix index f28cc3c25f6e..1c2c3eb9fec7 100644 --- a/pkgs/applications/networking/instant-messengers/webex/default.nix +++ b/pkgs/applications/networking/instant-messengers/webex/default.nix @@ -55,11 +55,11 @@ stdenv.mkDerivation rec { pname = "webex"; - version = "42.10.0.24000"; + version = "42.12.0.24485"; src = fetchurl { - url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Gold/20221019145240/Webex_ubuntu.7z"; - sha256 = "03b77a3fcce76f04cf684bcdecb3bcce97c5a8b6cc36b40967cc14fa9a46c102"; + url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Gold/20221206141837/Webex_ubuntu.7z"; + sha256 = "4c09c13b760abbdcc8bc1a74d137f8bc23386da4425cbefd8ea75bd0a877fdbf"; }; buildInputs = [ From 68e2afd480150e2b10eeac2eab6f420ea4e7ca33 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 30 Jan 2023 13:29:21 +0000 Subject: [PATCH 06/45] python310Packages.selenium: 4.7.0 -> 4.8.0 --- pkgs/development/python-modules/selenium/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/selenium/default.nix b/pkgs/development/python-modules/selenium/default.nix index 76c3956ec86b..598bbc41deee 100644 --- a/pkgs/development/python-modules/selenium/default.nix +++ b/pkgs/development/python-modules/selenium/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "selenium"; - version = "4.7.0"; + version = "4.8.0"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -23,7 +23,7 @@ buildPythonPackage rec { repo = "selenium"; # check if there is a newer tag with or without -python suffix rev = "refs/tags/selenium-${version}"; - hash = "sha256-7inmi8dHi6So+8AbLq85Go/GEaiV1XK/7+wt9UkTdo8="; + hash = "sha256-YTi6SNtTWuEPlQ3PTeis9osvtnWmZ7SRQbne9fefdco="; }; postPatch = '' From 5a1ba628417ce5f6151bea3f37351d8e68383252 Mon Sep 17 00:00:00 2001 From: ppom Date: Thu, 9 Feb 2023 00:56:08 +0100 Subject: [PATCH 07/45] onlyoffice: allow ExecStartPre additions --- nixos/modules/services/web-apps/onlyoffice.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/web-apps/onlyoffice.nix b/nixos/modules/services/web-apps/onlyoffice.nix index 79ed3e43dd18..0c04b19c4965 100644 --- a/nixos/modules/services/web-apps/onlyoffice.nix +++ b/nixos/modules/services/web-apps/onlyoffice.nix @@ -267,7 +267,7 @@ in wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = "${cfg.package.fhs}/bin/onlyoffice-wrapper DocService/docservice /run/onlyoffice/config"; - ExecStartPre = onlyoffice-prestart; + ExecStartPre = [ onlyoffice-prestart ]; Group = "onlyoffice"; Restart = "always"; RuntimeDirectory = "onlyoffice"; From 2d30754df3e98a72f1080fa0e5a2f590fa28cd9a Mon Sep 17 00:00:00 2001 From: Zhong Jianxin Date: Thu, 9 Feb 2023 15:39:37 +0800 Subject: [PATCH 08/45] kubernetes-helmPlugins.helm-diff: 3.5.0 -> 3.6.0 --- .../networking/cluster/helm/plugins/helm-diff.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix index 64fa0f35e543..c08e12a4de8e 100644 --- a/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix +++ b/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix @@ -2,16 +2,18 @@ buildGoModule rec { pname = "helm-diff"; - version = "3.5.0"; + version = "3.6.0"; src = fetchFromGitHub { owner = "databus23"; repo = pname; rev = "v${version}"; - sha256 = "sha256-evFdMM2AilKQPdSCUzKo6RuC4OC4zfjj+JzFvtkSrdk="; + sha256 = "sha256-JeQP2KXoLxkyRZVFcd6Rrz5xyJd+F3plzznAVP3Um8g="; }; - vendorSha256 = "sha256-9i4ryBpaK7mMbsOpIaaZWBRjewD1MtTpf4zJ0yU0KMg="; + vendorSha256 = "sha256-d5NSqCJrk9QhV5gVOKUG/uJxuvt8X8hiQd8yJEoXPL0="; + + ldflags = [ "-s" "-w" "-X github.com/databus23/helm-diff/v3/cmd.Version=${version}" ]; # NOTE: Remove the install and upgrade hooks. postPatch = '' From c976bd78844756f1fec76e5573319077c6bcf70a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 12 Feb 2023 06:45:43 +0000 Subject: [PATCH 09/45] python310Packages.oslo-serialization: 5.0.0 -> 5.1.0 --- .../development/python-modules/oslo-serialization/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/oslo-serialization/default.nix b/pkgs/development/python-modules/oslo-serialization/default.nix index a94c79e9baf6..bb2cfbea90ad 100644 --- a/pkgs/development/python-modules/oslo-serialization/default.nix +++ b/pkgs/development/python-modules/oslo-serialization/default.nix @@ -11,12 +11,12 @@ buildPythonPackage rec { pname = "oslo-serialization"; - version = "5.0.0"; + version = "5.1.0"; src = fetchPypi { pname = "oslo.serialization"; inherit version; - sha256 = "sha256-KEUyjQ9H3Ioj/tKoIlPpCs/wqnMdvSTzec+OUObMZro="; + sha256 = "sha256-pIR98yaBwahL0TotunpuydW0SITeYyUhGS9tx1DOCYQ="; }; postPatch = '' From d004105003d6336b0b0afcecf2210e866c029245 Mon Sep 17 00:00:00 2001 From: pennae Date: Sat, 11 Feb 2023 19:42:53 +0100 Subject: [PATCH 10/45] nixos-render-docs: print exception trees by __cause__ __context__ is always set to the prior exception, even when not using the raise from form. __cause__ is only set during raise from. use __cause__ so we can override a leaf exception (eg KeyError to something more meaningful). --- .../nix/nixos-render-docs/src/nixos_render_docs/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/__init__.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/__init__.py index 67d7bce0047d..56b68ba27a53 100644 --- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/__init__.py +++ b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/__init__.py @@ -29,9 +29,9 @@ def pretty_print_exc(e: BaseException, *, _desc_text: str = "error") -> None: print(textwrap.indent(extra_info, "\t"), file=sys.stderr, end="") else: print(e) - if e.__context__ is not None: + if e.__cause__ is not None: print("", file=sys.stderr) - pretty_print_exc(e.__context__, _desc_text="caused by") + pretty_print_exc(e.__cause__, _desc_text="caused by") def main() -> None: parser = argparse.ArgumentParser(description='render nixos manual bits') From ad2b150af78f260f9b1caee0f4d3d877af78c121 Mon Sep 17 00:00:00 2001 From: pennae Date: Sat, 11 Feb 2023 20:04:26 +0100 Subject: [PATCH 11/45] nixos-render-docs: use Mapping for options converter this way we can pass in frozendicts from other converters. --- .../nix/nixos-render-docs/src/nixos_render_docs/options.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py index 95091d3cdd28..b0db410c4818 100644 --- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py +++ b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py @@ -29,7 +29,7 @@ class BaseConverter(Converter): _options: dict[str, RenderedOption] - def __init__(self, manpage_urls: dict[str, str], + def __init__(self, manpage_urls: Mapping[str, str], revision: str, markdown_by_default: bool): super().__init__(manpage_urls) From d30da4d9cd20f18b08d51fc28b20b4bbd2aa2a64 Mon Sep 17 00:00:00 2001 From: pennae Date: Sat, 11 Feb 2023 19:48:15 +0100 Subject: [PATCH 12/45] nixos-render-docs: add support for is different from all other blocks we care about in that it requires textual content to be wrapped in . add support for this to the generic docbook renderer, which will just assume that a part is the whole document start to finish. we do make provision for the manual renderer to close a partintro tag early though. --- .../src/nixos_render_docs/docbook.py | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/docbook.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/docbook.py index b3728645f75f..28ab53720936 100644 --- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/docbook.py +++ b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/docbook.py @@ -28,6 +28,9 @@ class Deflist: class Heading(NamedTuple): container_tag: str level: int + # special handling for titles: whether partinfo was already closed from elsewhere + # or still needs closing. + partintro_closed: bool = False class DocBookRenderer(Renderer): __output__ = "docbook" @@ -251,7 +254,17 @@ class DocBookRenderer(Renderer): return result + f'<{tag}{attrs_str}>\n' def heading_close(self, token: Token, tokens: Sequence[Token], i: int, options: OptionsDict, env: MutableMapping[str, Any]) -> str: - return '' + heading = self._headings[-1] + result = '' + if heading.container_tag == 'part': + # generate the same ids as were previously assigned manually. if this collides we + # rely on outside schema validation to catch it! + maybe_id = "" + assert tokens[i - 2].type == 'heading_open' + if id := cast(str, tokens[i - 2].attrs.get('id', "")): + maybe_id = " xml:id=" + quoteattr(id + "-intro") + result += f"" + return result def example_open(self, token: Token, tokens: Sequence[Token], i: int, options: OptionsDict, env: MutableMapping[str, Any]) -> str: if id := token.attrs.get('id'): @@ -266,8 +279,10 @@ class DocBookRenderer(Renderer): result = [] while len(self._headings): if level is None or self._headings[-1].level >= level: - result.append(f"") - self._headings.pop() + heading = self._headings.pop() + if heading.container_tag == 'part' and not heading.partintro_closed: + result.append("") + result.append(f"") else: break return "\n".join(result) From 9977f997400309871a82fcb4b6255b3bdd8dbc41 Mon Sep 17 00:00:00 2001 From: pennae Date: Sun, 12 Feb 2023 08:55:26 +0100 Subject: [PATCH 13/45] nixos/manual: inline man-configuration.xml man-configuration.xml is the only manpage we build using docbook at this time, and man-pages.xml includes just this one file. inline man-configuration.nix into man-pages.xml so we can refer to a single file to grab the manpage sources later rather than using find-by-suffix. --- nixos/doc/manual/man-configuration.xml | 31 -------------------------- nixos/doc/manual/man-pages.xml | 30 ++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 32 deletions(-) delete mode 100644 nixos/doc/manual/man-configuration.xml diff --git a/nixos/doc/manual/man-configuration.xml b/nixos/doc/manual/man-configuration.xml deleted file mode 100644 index ddb1408fdcf5..000000000000 --- a/nixos/doc/manual/man-configuration.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - configuration.nix - 5 - NixOS - - - - configuration.nix - NixOS system configuration specification - - - Description - - The file /etc/nixos/configuration.nix contains the - declarative specification of your NixOS system configuration. The command - nixos-rebuild takes this file and realises the system - configuration specified therein. - - - - Options - - You can use the following options in configuration.nix. - - - - diff --git a/nixos/doc/manual/man-pages.xml b/nixos/doc/manual/man-pages.xml index 0186221bddce..52183f1f9ee0 100644 --- a/nixos/doc/manual/man-pages.xml +++ b/nixos/doc/manual/man-pages.xml @@ -14,5 +14,33 @@ 2007-2022Eelco Dolstra and the Nixpkgs/NixOS contributors - + + + configuration.nix + 5 + NixOS + + + + configuration.nix + NixOS system configuration specification + + + Description + + The file /etc/nixos/configuration.nix contains the + declarative specification of your NixOS system configuration. The command + nixos-rebuild takes this file and realises the system + configuration specified therein. + + + + Options + + You can use the following options in configuration.nix. + + + + From ef413e3eac947507ae1dc62dc365d225c30f4bbf Mon Sep 17 00:00:00 2001 From: pennae Date: Sun, 12 Feb 2023 09:04:07 +0100 Subject: [PATCH 14/45] nixos/manual: split manpages-combined from manual-combined once we generate the entire manual-combined.xml with a single nixos-render-docs invocation we will no longer need any options xml files. likewise we do not need the test options xml in the manpage build. splitting manpages-combined from manual-combined also allows these two to run in parallel, slightly improving build times. --- nixos/doc/manual/default.nix | 94 +++++++++++++++++++++--------------- 1 file changed, 55 insertions(+), 39 deletions(-) diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix index e0bcec1ea6b5..30f1f51b3878 100644 --- a/nixos/doc/manual/default.nix +++ b/nixos/doc/manual/default.nix @@ -148,6 +148,43 @@ let "--stringparam chunk.toc ${toc}" ]; + linterFunctions = '' + # outputs the context of an xmllint error output + # LEN lines around the failing line are printed + function context { + # length of context + local LEN=6 + # lines to print before error line + local BEFORE=4 + + # xmllint output lines are: + # file.xml:1234: there was an error on line 1234 + while IFS=':' read -r file line rest; do + echo + if [[ -n "$rest" ]]; then + echo "$file:$line:$rest" + local FROM=$(($line>$BEFORE ? $line - $BEFORE : 1)) + # number lines & filter context + nl --body-numbering=a "$file" | sed -n "$FROM,+$LEN p" + else + if [[ -n "$line" ]]; then + echo "$file:$line" + else + echo "$file" + fi + fi + done + } + + function lintrng { + xmllint --debug --noout --nonet \ + --relaxng ${docbook5}/xml/rng/docbook/docbook.rng \ + "$1" \ + 2>&1 | context 1>&2 + # ^ redirect assumes xmllint doesn’t print to stdout + } + ''; + manual-combined = runCommand "nixos-manual-combined" { inherit sources; nativeBuildInputs = [ buildPackages.libxml2.bin buildPackages.libxslt.bin ]; @@ -157,50 +194,29 @@ let ${copySources} xmllint --xinclude --output ./manual-combined.xml ./manual.xml - xmllint --xinclude --noxincludenode \ - --output ./man-pages-combined.xml ./man-pages.xml - # outputs the context of an xmllint error output - # LEN lines around the failing line are printed - function context { - # length of context - local LEN=6 - # lines to print before error line - local BEFORE=4 - - # xmllint output lines are: - # file.xml:1234: there was an error on line 1234 - while IFS=':' read -r file line rest; do - echo - if [[ -n "$rest" ]]; then - echo "$file:$line:$rest" - local FROM=$(($line>$BEFORE ? $line - $BEFORE : 1)) - # number lines & filter context - nl --body-numbering=a "$file" | sed -n "$FROM,+$LEN p" - else - if [[ -n "$line" ]]; then - echo "$file:$line" - else - echo "$file" - fi - fi - done - } - - function lintrng { - xmllint --debug --noout --nonet \ - --relaxng ${docbook5}/xml/rng/docbook/docbook.rng \ - "$1" \ - 2>&1 | context 1>&2 - # ^ redirect assumes xmllint doesn’t print to stdout - } + ${linterFunctions} mkdir $out cp manual-combined.xml $out/ - cp man-pages-combined.xml $out/ lintrng $out/manual-combined.xml - lintrng $out/man-pages-combined.xml + ''; + + manpages-combined = runCommand "nixos-manpages-combined.xml" + { nativeBuildInputs = [ buildPackages.libxml2.bin buildPackages.libxslt.bin ]; + meta.description = "The NixOS manpages as plain docbook XML"; + } + '' + mkdir generated + cp -prd ${./man-pages.xml} man-pages.xml + ln -s ${optionsDoc.optionsDocBook} generated/options-db.xml + + xmllint --xinclude --noxincludenode --output $out ./man-pages.xml + + ${linterFunctions} + + lintrng $out ''; in rec { @@ -300,7 +316,7 @@ in rec { --param man.endnotes.are.numbered 0 \ --param man.break.after.slash 1 \ ${docbook_xsl_ns}/xml/xsl/docbook/manpages/docbook.xsl \ - ${manual-combined}/man-pages-combined.xml + ${manpages-combined} '' else '' mkdir -p $out/share/man/man5 From 8b7f0e559ad9419815d0a4c8d231e2bf464c0ad2 Mon Sep 17 00:00:00 2001 From: pennae Date: Sun, 12 Feb 2023 09:40:07 +0100 Subject: [PATCH 15/45] nixos/manual: clean up default.nix a bit - inline copySources into single user - remove `inherit sources` where it's not necessary - inline generatedSources. this will go away completely soon so we may as well. - inline modulesDoc into manual-combined. this too will go away soon. - inline sources into manual-combined. this too will go away soon. --- nixos/doc/manual/default.nix | 92 +++++++++++++----------------------- nixos/release.nix | 1 - 2 files changed, 33 insertions(+), 60 deletions(-) diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix index 30f1f51b3878..3da6e88c70b7 100644 --- a/nixos/doc/manual/default.nix +++ b/nixos/doc/manual/default.nix @@ -68,56 +68,6 @@ let optionIdPrefix = "test-opt-"; }; - sources = runCommand "manual-sources" { - inputs = lib.sourceFilesBySuffices ./. [ ".xml" ".md" ]; - nativeBuildInputs = [ pkgs.nixos-render-docs ]; - } '' - mkdir $out - cd $out - cp -r --no-preserve=all $inputs/* . - - declare -a convert_args - while read -r mf; do - if [[ "$mf" = *.chapter.md ]]; then - convert_args+=("--chapter") - else - convert_args+=("--section") - fi - - convert_args+=("from_md/''${mf%.md}.xml" "$mf") - done < <(find . -type f -name '*.md') - - nixos-render-docs manual docbook-fragment \ - --manpage-urls ${manpageUrls} \ - "''${convert_args[@]}" - ''; - - modulesDoc = runCommand "modules.xml" { - nativeBuildInputs = [ pkgs.nixos-render-docs ]; - } '' - nixos-render-docs manual docbook-section \ - --manpage-urls ${manpageUrls} \ - "$out" \ - --section \ - --section-id modules \ - --chapters ${lib.concatMapStrings (p: "${p.value} ") config.meta.doc} - ''; - - generatedSources = runCommand "generated-docbook" {} '' - mkdir $out - ln -s ${modulesDoc} $out/modules.xml - ln -s ${optionsDoc.optionsDocBook} $out/options-db.xml - ln -s ${testOptionsDoc.optionsDocBook} $out/test-options-db.xml - printf "%s" "${version}" > $out/version - ''; - - copySources = - '' - cp -prd $sources/* . # */ - ln -s ${generatedSources} ./generated - chmod -R u+w . - ''; - toc = builtins.toFile "toc.xml" '' @@ -186,12 +136,40 @@ let ''; manual-combined = runCommand "nixos-manual-combined" - { inherit sources; - nativeBuildInputs = [ buildPackages.libxml2.bin buildPackages.libxslt.bin ]; + { inputs = lib.sourceFilesBySuffices ./. [ ".xml" ".md" ]; + nativeBuildInputs = [ pkgs.nixos-render-docs pkgs.libxml2.bin pkgs.libxslt.bin ]; meta.description = "The NixOS manual as plain docbook XML"; } '' - ${copySources} + cp -r --no-preserve=all $inputs/* . + + declare -a convert_args + while read -r mf; do + if [[ "$mf" = *.chapter.md ]]; then + convert_args+=("--chapter") + else + convert_args+=("--section") + fi + + convert_args+=("from_md/''${mf%.md}.xml" "$mf") + done < <(find . -type f -name '*.md') + + nixos-render-docs manual docbook-fragment \ + --manpage-urls ${manpageUrls} \ + "''${convert_args[@]}" + + mkdir ./generated + ln -s ${optionsDoc.optionsDocBook} ./generated/options-db.xml + ln -s ${testOptionsDoc.optionsDocBook} ./generated/test-options-db.xml + printf "%s" "${version}" > ./generated/version + chmod -R u+w . + + nixos-render-docs manual docbook-section \ + --manpage-urls ${manpageUrls} \ + ./generated/modules.xml \ + --section \ + --section-id modules \ + --chapters ${lib.concatMapStrings (p: "${p.value} ") config.meta.doc} xmllint --xinclude --output ./manual-combined.xml ./manual.xml @@ -220,14 +198,11 @@ let ''; in rec { - inherit generatedSources; - inherit (optionsDoc) optionsJSON optionsNix optionsDocBook optionsUsedDocbook; # Generate the NixOS manual. manualHTML = runCommand "nixos-manual-html" - { inherit sources; - nativeBuildInputs = [ buildPackages.libxml2.bin buildPackages.libxslt.bin ]; + { nativeBuildInputs = [ buildPackages.libxml2.bin buildPackages.libxslt.bin ]; meta.description = "The NixOS manual in HTML format"; allowedReferences = ["out"]; } @@ -264,8 +239,7 @@ in rec { manualHTMLIndex = "${manualHTML}/share/doc/nixos/index.html"; manualEpub = runCommand "nixos-manual-epub" - { inherit sources; - nativeBuildInputs = [ buildPackages.libxml2.bin buildPackages.libxslt.bin buildPackages.zip ]; + { nativeBuildInputs = [ buildPackages.libxml2.bin buildPackages.libxslt.bin buildPackages.zip ]; } '' # Generate the epub manual. diff --git a/nixos/release.nix b/nixos/release.nix index 946379bcd661..78a74af41242 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -144,7 +144,6 @@ in rec { manual = manualHTML; # TODO(@oxij): remove eventually manualEpub = (buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manualEpub)); manpages = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manpages); - manualGeneratedSources = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.generatedSources); options = (buildFromConfig ({ ... }: { }) (config: config.system.build.manual.optionsJSON)).x86_64-linux; From 1229e735ac51dbe79724f7648655a2089c9c67b9 Mon Sep 17 00:00:00 2001 From: pennae Date: Sat, 11 Feb 2023 08:48:06 +0100 Subject: [PATCH 16/45] nixos-render-docs: add structural includes, use for manual this adds support for structural includes to nixos-render-docs. structural includes provide a way to denote the (sub)structure of the nixos manual in the markdown source files, very similar to how we used literal docbook blocks before, and are processed by nixos-render-docs without involvement of xml tooling. this will ultimately allow us to emit the nixos manual in other formats as well, e.g. html, without going through docbook at all. alternatives to this source layout were also considered: a parallel structure using e.g. toml files that describe the document tree and links to each part is possible, but much more complicated to implement than the solution chosen here and makes it harder to follow which files have what substructure. it also makes it much harder to include a substructure in the middle of a file. much the same goes for command-line arguments to the converter, only that command-lined arguments are even harder to specify correctly and cannot be reasonably pulled together from many places without involving another layer of tooling. cli arguments would also mean that the manual structure would be fixed in default.nix, which is also not ideal. --- .../administration/containers.chapter.md | 8 +- nixos/doc/manual/administration/running.md | 14 + nixos/doc/manual/administration/running.xml | 21 -- .../administration/troubleshooting.chapter.md | 12 +- .../configuration/config-syntax.chapter.md | 8 +- .../doc/manual/configuration/configuration.md | 27 ++ .../manual/configuration/configuration.xml | 31 -- .../declarative-packages.section.md | 6 +- .../configuration/file-systems.chapter.md | 6 +- .../configuration/networking.chapter.md | 18 +- .../configuration/package-mgmt.chapter.md | 6 +- .../manual/configuration/profiles.chapter.md | 24 +- nixos/doc/manual/default.nix | 45 +-- nixos/doc/manual/development/development.md | 14 + nixos/doc/manual/development/development.xml | 20 -- .../manual/development/nixos-tests.chapter.md | 10 +- ...-happens-during-a-system-switch.chapter.md | 6 +- .../writing-documentation.chapter.md | 2 +- .../development/writing-modules.chapter.md | 20 +- .../writing-nixos-tests.section.md | 6 +- nixos/doc/manual/installation/installation.md | 11 + .../doc/manual/installation/installation.xml | 18 - .../manual/installation/installing.chapter.md | 14 +- nixos/doc/manual/manual.md | 53 +++ nixos/doc/manual/manual.xml | 23 -- nixos/doc/manual/nixos-options.md | 7 + nixos/doc/manual/preface.md | 11 + nixos/doc/manual/preface.xml | 42 --- .../doc/manual/release-notes/release-notes.md | 25 ++ .../manual/release-notes/release-notes.xml | 30 -- .../src/nixos_render_docs/manual.py | 315 ++++++++++-------- .../src/nixos_render_docs/options.py | 5 +- 32 files changed, 427 insertions(+), 431 deletions(-) create mode 100644 nixos/doc/manual/administration/running.md delete mode 100644 nixos/doc/manual/administration/running.xml create mode 100644 nixos/doc/manual/configuration/configuration.md delete mode 100644 nixos/doc/manual/configuration/configuration.xml create mode 100644 nixos/doc/manual/development/development.md delete mode 100644 nixos/doc/manual/development/development.xml create mode 100644 nixos/doc/manual/installation/installation.md delete mode 100644 nixos/doc/manual/installation/installation.xml create mode 100644 nixos/doc/manual/manual.md delete mode 100644 nixos/doc/manual/manual.xml create mode 100644 nixos/doc/manual/nixos-options.md create mode 100644 nixos/doc/manual/preface.md delete mode 100644 nixos/doc/manual/preface.xml create mode 100644 nixos/doc/manual/release-notes/release-notes.md delete mode 100644 nixos/doc/manual/release-notes/release-notes.xml diff --git a/nixos/doc/manual/administration/containers.chapter.md b/nixos/doc/manual/administration/containers.chapter.md index ea51f91f698f..50493b562b54 100644 --- a/nixos/doc/manual/administration/containers.chapter.md +++ b/nixos/doc/manual/administration/containers.chapter.md @@ -21,8 +21,8 @@ which is often not what you want. By contrast, in the imperative approach, containers are configured and updated independently from the host system. -```{=docbook} - - - +```{=include=} sections +imperative-containers.section.md +declarative-containers.section.md +container-networking.section.md ``` diff --git a/nixos/doc/manual/administration/running.md b/nixos/doc/manual/administration/running.md new file mode 100644 index 000000000000..48e8c7c6668b --- /dev/null +++ b/nixos/doc/manual/administration/running.md @@ -0,0 +1,14 @@ +# Administration {#ch-running} + +This chapter describes various aspects of managing a running NixOS system, such as how to use the {command}`systemd` service manager. + +```{=include=} chapters +service-mgmt.chapter.md +rebooting.chapter.md +user-sessions.chapter.md +control-groups.chapter.md +logging.chapter.md +cleaning-store.chapter.md +containers.chapter.md +troubleshooting.chapter.md +``` diff --git a/nixos/doc/manual/administration/running.xml b/nixos/doc/manual/administration/running.xml deleted file mode 100644 index d9fcc1aee263..000000000000 --- a/nixos/doc/manual/administration/running.xml +++ /dev/null @@ -1,21 +0,0 @@ - - Administration - - - This chapter describes various aspects of managing a running NixOS system, - such as how to use the systemd service manager. - - - - - - - - - - - diff --git a/nixos/doc/manual/administration/troubleshooting.chapter.md b/nixos/doc/manual/administration/troubleshooting.chapter.md index 548456eaf6d6..1253607f8efc 100644 --- a/nixos/doc/manual/administration/troubleshooting.chapter.md +++ b/nixos/doc/manual/administration/troubleshooting.chapter.md @@ -3,10 +3,10 @@ This chapter describes solutions to common problems you might encounter when you manage your NixOS system. -```{=docbook} - - - - - +```{=include=} sections +boot-problems.section.md +maintenance-mode.section.md +rollback.section.md +store-corruption.section.md +network-problems.section.md ``` diff --git a/nixos/doc/manual/configuration/config-syntax.chapter.md b/nixos/doc/manual/configuration/config-syntax.chapter.md index 9f8d45d58899..9e606b2b82af 100644 --- a/nixos/doc/manual/configuration/config-syntax.chapter.md +++ b/nixos/doc/manual/configuration/config-syntax.chapter.md @@ -11,8 +11,8 @@ manual](https://nixos.org/nix/manual/#chap-writing-nix-expressions), but here we give a short overview of the most important constructs useful in NixOS configuration files. -```{=docbook} - - - +```{=include=} sections +config-file.section.md +abstractions.section.md +modularity.section.md ``` diff --git a/nixos/doc/manual/configuration/configuration.md b/nixos/doc/manual/configuration/configuration.md new file mode 100644 index 000000000000..4c966f3325b9 --- /dev/null +++ b/nixos/doc/manual/configuration/configuration.md @@ -0,0 +1,27 @@ +# Configuration {#ch-configuration} + +This chapter describes how to configure various aspects of a NixOS machine through the configuration file {file}`/etc/nixos/configuration.nix`. As described in [](#sec-changing-config), changes to this file only take effect after you run {command}`nixos-rebuild`. + +```{=include=} chapters +config-syntax.chapter.md +package-mgmt.chapter.md +user-mgmt.chapter.md +file-systems.chapter.md +x-windows.chapter.md +wayland.chapter.md +gpu-accel.chapter.md +xfce.chapter.md +networking.chapter.md +linux-kernel.chapter.md +subversion.chapter.md +``` + +```{=include=} chapters +@MODULE_CHAPTERS@ +``` + +```{=include=} chapters +profiles.chapter.md +kubernetes.chapter.md +``` + diff --git a/nixos/doc/manual/configuration/configuration.xml b/nixos/doc/manual/configuration/configuration.xml deleted file mode 100644 index b04316cfa48e..000000000000 --- a/nixos/doc/manual/configuration/configuration.xml +++ /dev/null @@ -1,31 +0,0 @@ - - Configuration - - - This chapter describes how to configure various aspects of a NixOS machine - through the configuration file - /etc/nixos/configuration.nix. As described in - , changes to this file only take - effect after you run nixos-rebuild. - - - - - - - - - - - - - - - - - - diff --git a/nixos/doc/manual/configuration/declarative-packages.section.md b/nixos/doc/manual/configuration/declarative-packages.section.md index 337cdf8472e4..02eaa56192e4 100644 --- a/nixos/doc/manual/configuration/declarative-packages.section.md +++ b/nixos/doc/manual/configuration/declarative-packages.section.md @@ -40,7 +40,7 @@ configuration use `pkgs` prefix (variable). To "uninstall" a package, simply remove it from [](#opt-environment.systemPackages) and run `nixos-rebuild switch`. -```{=docbook} - - +```{=include=} sections +customizing-packages.section.md +adding-custom-packages.section.md ``` diff --git a/nixos/doc/manual/configuration/file-systems.chapter.md b/nixos/doc/manual/configuration/file-systems.chapter.md index 901e2e4f181b..aca978be064d 100644 --- a/nixos/doc/manual/configuration/file-systems.chapter.md +++ b/nixos/doc/manual/configuration/file-systems.chapter.md @@ -36,7 +36,7 @@ dropping you to the emergency shell. You can make a mount asynchronous and non-critical by adding `options = [ "nofail" ];`. ::: -```{=docbook} - - +```{=include=} sections +luks-file-systems.section.md +sshfs-file-systems.section.md ``` diff --git a/nixos/doc/manual/configuration/networking.chapter.md b/nixos/doc/manual/configuration/networking.chapter.md index 529dc0610bda..abbd9766f173 100644 --- a/nixos/doc/manual/configuration/networking.chapter.md +++ b/nixos/doc/manual/configuration/networking.chapter.md @@ -3,14 +3,14 @@ This section describes how to configure networking components on your NixOS machine. -```{=docbook} - - - - - - - - +```{=include=} sections +network-manager.section.md +ssh.section.md +ipv4-config.section.md +ipv6-config.section.md +firewall.section.md +wireless.section.md +ad-hoc-network-config.section.md +renaming-interfaces.section.md ``` diff --git a/nixos/doc/manual/configuration/package-mgmt.chapter.md b/nixos/doc/manual/configuration/package-mgmt.chapter.md index a6c414be59a9..1148bbe84740 100644 --- a/nixos/doc/manual/configuration/package-mgmt.chapter.md +++ b/nixos/doc/manual/configuration/package-mgmt.chapter.md @@ -12,7 +12,7 @@ NixOS has two distinct styles of package management: `nix-env` command. This style allows mixing packages from different Nixpkgs versions. It's the only choice for non-root users. -```{=docbook} - - +```{=include=} sections +declarative-packages.section.md +ad-hoc-packages.section.md ``` diff --git a/nixos/doc/manual/configuration/profiles.chapter.md b/nixos/doc/manual/configuration/profiles.chapter.md index 2c3dea27c181..9f1f48f742ac 100644 --- a/nixos/doc/manual/configuration/profiles.chapter.md +++ b/nixos/doc/manual/configuration/profiles.chapter.md @@ -19,16 +19,16 @@ install media, many are actually intended to be used in real installs. What follows is a brief explanation on the purpose and use-case for each profile. Detailing each option configured by each one is out of scope. -```{=docbook} - - - - - - - - - - - +```{=include=} sections +profiles/all-hardware.section.md +profiles/base.section.md +profiles/clone-config.section.md +profiles/demo.section.md +profiles/docker-container.section.md +profiles/graphical.section.md +profiles/hardened.section.md +profiles/headless.section.md +profiles/installation-device.section.md +profiles/minimal.section.md +profiles/qemu-guest.section.md ``` diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix index 3da6e88c70b7..8c71e5108799 100644 --- a/nixos/doc/manual/default.nix +++ b/nixos/doc/manual/default.nix @@ -143,35 +143,26 @@ let '' cp -r --no-preserve=all $inputs/* . - declare -a convert_args - while read -r mf; do - if [[ "$mf" = *.chapter.md ]]; then - convert_args+=("--chapter") - else - convert_args+=("--section") - fi + substituteInPlace ./manual.md \ + --replace '@NIXOS_VERSION@' "${version}" + substituteInPlace ./configuration/configuration.md \ + --replace \ + '@MODULE_CHAPTERS@' \ + ${lib.escapeShellArg (lib.concatMapStringsSep "\n" (p: "${p.value}") config.meta.doc)} + substituteInPlace ./nixos-options.md \ + --replace \ + '@NIXOS_OPTIONS_JSON@' \ + ${optionsDoc.optionsJSON}/share/doc/nixos/options.json + substituteInPlace ./development/writing-nixos-tests.section.md \ + --replace \ + '@NIXOS_TEST_OPTIONS_JSON@' \ + ${testOptionsDoc.optionsJSON}/share/doc/nixos/options.json - convert_args+=("from_md/''${mf%.md}.xml" "$mf") - done < <(find . -type f -name '*.md') - - nixos-render-docs manual docbook-fragment \ + nixos-render-docs manual docbook \ --manpage-urls ${manpageUrls} \ - "''${convert_args[@]}" - - mkdir ./generated - ln -s ${optionsDoc.optionsDocBook} ./generated/options-db.xml - ln -s ${testOptionsDoc.optionsDocBook} ./generated/test-options-db.xml - printf "%s" "${version}" > ./generated/version - chmod -R u+w . - - nixos-render-docs manual docbook-section \ - --manpage-urls ${manpageUrls} \ - ./generated/modules.xml \ - --section \ - --section-id modules \ - --chapters ${lib.concatMapStrings (p: "${p.value} ") config.meta.doc} - - xmllint --xinclude --output ./manual-combined.xml ./manual.xml + --revision ${lib.escapeShellArg revision} \ + ./manual.md \ + ./manual-combined.xml ${linterFunctions} diff --git a/nixos/doc/manual/development/development.md b/nixos/doc/manual/development/development.md new file mode 100644 index 000000000000..6a0dd091b129 --- /dev/null +++ b/nixos/doc/manual/development/development.md @@ -0,0 +1,14 @@ +# Development {#ch-development} + +This chapter describes how you can modify and extend NixOS. + +```{=include=} chapters +sources.chapter.md +writing-modules.chapter.md +building-parts.chapter.md +bootspec.chapter.md +what-happens-during-a-system-switch.chapter.md +writing-documentation.chapter.md +nixos-tests.chapter.md +testing-installer.chapter.md +``` diff --git a/nixos/doc/manual/development/development.xml b/nixos/doc/manual/development/development.xml deleted file mode 100644 index 949468c9021d..000000000000 --- a/nixos/doc/manual/development/development.xml +++ /dev/null @@ -1,20 +0,0 @@ - - Development - - - This chapter describes how you can modify and extend NixOS. - - - - - - - - - - - diff --git a/nixos/doc/manual/development/nixos-tests.chapter.md b/nixos/doc/manual/development/nixos-tests.chapter.md index 2a4fdddeaa66..ec0e4b9f076a 100644 --- a/nixos/doc/manual/development/nixos-tests.chapter.md +++ b/nixos/doc/manual/development/nixos-tests.chapter.md @@ -5,9 +5,9 @@ NixOS tests are kept in the directory `nixos/tests`, and are executed (using Nix) by a testing framework that automatically starts one or more virtual machines containing the NixOS system(s) required for the test. -```{=docbook} - - - - +```{=include=} sections +writing-nixos-tests.section.md +running-nixos-tests.section.md +running-nixos-tests-interactively.section.md +linking-nixos-tests-to-packages.section.md ``` diff --git a/nixos/doc/manual/development/what-happens-during-a-system-switch.chapter.md b/nixos/doc/manual/development/what-happens-during-a-system-switch.chapter.md index aad82831a3c2..9cbec729803a 100644 --- a/nixos/doc/manual/development/what-happens-during-a-system-switch.chapter.md +++ b/nixos/doc/manual/development/what-happens-during-a-system-switch.chapter.md @@ -47,7 +47,7 @@ Most of these actions are either self-explaining but some of them have to do with our units or the activation script. For this reason, these topics are explained in the next sections. -```{=docbook} - - +```{=include=} sections +unit-handling.section.md +activation-script.section.md ``` diff --git a/nixos/doc/manual/development/writing-documentation.chapter.md b/nixos/doc/manual/development/writing-documentation.chapter.md index 4986c9f0a81b..8d504dfb0b0a 100644 --- a/nixos/doc/manual/development/writing-documentation.chapter.md +++ b/nixos/doc/manual/development/writing-documentation.chapter.md @@ -83,7 +83,7 @@ Keep the following guidelines in mind when you create and add a topic: ## Adding a Topic to the Book {#sec-writing-docs-adding-a-topic} -Open the parent XML file and add an `xi:include` element to the list of +Open the parent CommonMark file and add a line to the list of chapters with the file name of the topic that you created. If you created a `section`, you add the file to the `chapter` file. If you created a `chapter`, you add the file to the `part` file. diff --git a/nixos/doc/manual/development/writing-modules.chapter.md b/nixos/doc/manual/development/writing-modules.chapter.md index a0ec4a5df96e..ae657458d768 100644 --- a/nixos/doc/manual/development/writing-modules.chapter.md +++ b/nixos/doc/manual/development/writing-modules.chapter.md @@ -189,14 +189,14 @@ in { ``` ::: -```{=docbook} - - - - - - - - - +```{=include=} sections +option-declarations.section.md +option-types.section.md +option-def.section.md +assertions.section.md +meta-attributes.section.md +importing-modules.section.md +replace-modules.section.md +freeform-modules.section.md +settings-options.section.md ``` diff --git a/nixos/doc/manual/development/writing-nixos-tests.section.md b/nixos/doc/manual/development/writing-nixos-tests.section.md index d80e314e6251..3de46fda3df6 100644 --- a/nixos/doc/manual/development/writing-nixos-tests.section.md +++ b/nixos/doc/manual/development/writing-nixos-tests.section.md @@ -470,6 +470,8 @@ In that case, `numpy` is chosen from the generic `python3Packages`. The following options can be used when writing tests. -```{=docbook} - +```{=include=} options +id-prefix: test-opt- +list-id: test-options-list +source: @NIXOS_TEST_OPTIONS_JSON@ ``` diff --git a/nixos/doc/manual/installation/installation.md b/nixos/doc/manual/installation/installation.md new file mode 100644 index 000000000000..140594256609 --- /dev/null +++ b/nixos/doc/manual/installation/installation.md @@ -0,0 +1,11 @@ +# Installation {#ch-installation} + +This section describes how to obtain, install, and configure NixOS for first-time use. + +```{=include=} chapters +obtaining.chapter.md +installing.chapter.md +changing-config.chapter.md +upgrading.chapter.md +building-nixos.chapter.md +``` diff --git a/nixos/doc/manual/installation/installation.xml b/nixos/doc/manual/installation/installation.xml deleted file mode 100644 index ba07d71d0ca3..000000000000 --- a/nixos/doc/manual/installation/installation.xml +++ /dev/null @@ -1,18 +0,0 @@ - - Installation - - - This section describes how to obtain, install, and configure NixOS for - first-time use. - - - - - - - - diff --git a/nixos/doc/manual/installation/installing.chapter.md b/nixos/doc/manual/installation/installing.chapter.md index e1908017a7e4..cf783c2d22b6 100644 --- a/nixos/doc/manual/installation/installing.chapter.md +++ b/nixos/doc/manual/installation/installing.chapter.md @@ -602,11 +602,11 @@ With a partitioned disk. ## Additional installation notes {#sec-installation-additional-notes} -```{=docbook} - - - - - - +```{=include=} sections +installing-usb.section.md +installing-pxe.section.md +installing-kexec.section.md +installing-virtualbox-guest.section.md +installing-from-other-distro.section.md +installing-behind-a-proxy.section.md ``` diff --git a/nixos/doc/manual/manual.md b/nixos/doc/manual/manual.md new file mode 100644 index 000000000000..1972eaeda872 --- /dev/null +++ b/nixos/doc/manual/manual.md @@ -0,0 +1,53 @@ +# NixOS Manual {#book-nixos-manual} +## Version @NIXOS_VERSION@ + + + +```{=include=} preface +preface.md +``` + +```{=include=} parts +installation/installation.md +configuration/configuration.md +administration/running.md +development/development.md +``` + +```{=include=} chapters +contributing-to-this-manual.chapter.md +``` + +```{=include=} appendix +nixos-options.md +release-notes/release-notes.md +``` diff --git a/nixos/doc/manual/manual.xml b/nixos/doc/manual/manual.xml deleted file mode 100644 index 4440f8e04baa..000000000000 --- a/nixos/doc/manual/manual.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - NixOS Manual - Version - - - - - - - - - - Configuration Options - - - - diff --git a/nixos/doc/manual/nixos-options.md b/nixos/doc/manual/nixos-options.md new file mode 100644 index 000000000000..33b487c95a2e --- /dev/null +++ b/nixos/doc/manual/nixos-options.md @@ -0,0 +1,7 @@ +# Configuration Options {#ch-options} + +```{=include=} options +id-prefix: opt- +list-id: configuration-variable-list +source: @NIXOS_OPTIONS_JSON@ +``` diff --git a/nixos/doc/manual/preface.md b/nixos/doc/manual/preface.md new file mode 100644 index 000000000000..d5e6364780a7 --- /dev/null +++ b/nixos/doc/manual/preface.md @@ -0,0 +1,11 @@ +# Preface {#preface} + +This manual describes how to install, use and extend NixOS, a Linux distribution based on the purely functional package management system [Nix](https://nixos.org/nix), that is composed using modules and packages defined in the [Nixpkgs](https://nixos.org/nixpkgs) project. + +Additional information regarding the Nix package manager and the Nixpkgs project can be found in respectively the [Nix manual](https://nixos.org/nix/manual) and the [Nixpkgs manual](https://nixos.org/nixpkgs/manual). + +If you encounter problems, please report them on the [`Discourse`](https://discourse.nixos.org), the [Matrix room](https://matrix.to/#nix:nixos.org), or on the [`#nixos` channel on Libera.Chat](irc://irc.libera.chat/#nixos). Alternatively, consider [contributing to this manual](#chap-contributing). Bugs should be reported in [NixOS’ GitHub issue tracker](https://github.com/NixOS/nixpkgs/issues). + +::: {.note} +Commands prefixed with `#` have to be run as root, either requiring to login as root user or temporarily switching to it using `sudo` for example. +::: diff --git a/nixos/doc/manual/preface.xml b/nixos/doc/manual/preface.xml deleted file mode 100644 index c0d530c3d1b5..000000000000 --- a/nixos/doc/manual/preface.xml +++ /dev/null @@ -1,42 +0,0 @@ - - Preface - - This manual describes how to install, use and extend NixOS, a Linux - distribution based on the purely functional package management system - Nix, that is composed - using modules and packages defined in the - Nixpkgs project. - - - Additional information regarding the Nix package manager and the Nixpkgs - project can be found in respectively the - Nix manual and the - Nixpkgs manual. - - - If you encounter problems, please report them on the - Discourse, - the Matrix room, - or on the - #nixos channel on Libera.Chat. - Alternatively, consider - contributing to this manual. Bugs should be - reported in - NixOS’ - GitHub issue tracker. - - - - Commands prefixed with # have to be run as root, either - requiring to login as root user or temporarily switching to it using - sudo for example. - - - diff --git a/nixos/doc/manual/release-notes/release-notes.md b/nixos/doc/manual/release-notes/release-notes.md new file mode 100644 index 000000000000..ac61de3793e8 --- /dev/null +++ b/nixos/doc/manual/release-notes/release-notes.md @@ -0,0 +1,25 @@ +# Release Notes {#ch-release-notes} + +This section lists the release notes for each stable version of NixOS and current unstable revision. + +```{=include=} sections +rl-2305.section.md +rl-2211.section.md +rl-2205.section.md +rl-2111.section.md +rl-2105.section.md +rl-2009.section.md +rl-2003.section.md +rl-1909.section.md +rl-1903.section.md +rl-1809.section.md +rl-1803.section.md +rl-1709.section.md +rl-1703.section.md +rl-1609.section.md +rl-1603.section.md +rl-1509.section.md +rl-1412.section.md +rl-1404.section.md +rl-1310.section.md +``` diff --git a/nixos/doc/manual/release-notes/release-notes.xml b/nixos/doc/manual/release-notes/release-notes.xml deleted file mode 100644 index bb5cc677afb8..000000000000 --- a/nixos/doc/manual/release-notes/release-notes.xml +++ /dev/null @@ -1,30 +0,0 @@ - - Release Notes - - This section lists the release notes for each stable version of NixOS and - current unstable revision. - - - - - - - - - - - - - - - - - - - - - diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py index ab61d699d7f5..efc8b02e8d6b 100644 --- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py +++ b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/manual.py @@ -2,68 +2,107 @@ import argparse import json from abc import abstractmethod -from collections.abc import MutableMapping, Sequence +from collections.abc import Mapping, MutableMapping, Sequence from pathlib import Path from typing import Any, cast, NamedTuple, Optional, Union from xml.sax.saxutils import escape, quoteattr + +import markdown_it from markdown_it.token import Token from markdown_it.utils import OptionsDict -from .docbook import DocBookRenderer +from . import options +from .docbook import DocBookRenderer, Heading from .md import Converter -class RenderedSection: - id: Optional[str] - chapters: list[str] - - def __init__(self, id: Optional[str]) -> None: - self.id = id - self.chapters = [] - -class BaseConverter(Converter): - _sections: list[RenderedSection] - - def __init__(self, manpage_urls: dict[str, str]): - super().__init__(manpage_urls) - self._sections = [] - - def add_section(self, id: Optional[str], chapters: list[Path]) -> None: - self._sections.append(RenderedSection(id)) - for chpath in chapters: - try: - with open(chpath, 'r') as f: - self._md.renderer._title_seen = False # type: ignore[attr-defined] - self._sections[-1].chapters.append(self._render(f.read())) - except Exception as e: - raise RuntimeError(f"failed to render manual chapter {chpath}") from e - - @abstractmethod - def finalize(self) -> str: raise NotImplementedError() - class ManualDocBookRenderer(DocBookRenderer): - # needed to check correctness of chapters. - # we may want to use front matter instead of this kind of heuristic. - _title_seen = False + _toplevel_tag: str + + def __init__(self, toplevel_tag: str, manpage_urls: Mapping[str, str], + parser: Optional[markdown_it.MarkdownIt] = None): + super().__init__(manpage_urls, parser) + self._toplevel_tag = toplevel_tag + self.rules |= { + 'included_sections': lambda *args: self._included_thing("section", *args), + 'included_chapters': lambda *args: self._included_thing("chapter", *args), + 'included_preface': lambda *args: self._included_thing("preface", *args), + 'included_parts': lambda *args: self._included_thing("part", *args), + 'included_appendix': lambda *args: self._included_thing("appendix", *args), + 'included_options': self.included_options, + } + + def render(self, tokens: Sequence[Token], options: OptionsDict, + env: MutableMapping[str, Any]) -> str: + wanted = { 'h1': 'title' } + wanted |= { 'h2': 'subtitle' } if self._toplevel_tag == 'book' else {} + for (i, (tag, kind)) in enumerate(wanted.items()): + if len(tokens) < 3 * (i + 1): + raise RuntimeError(f"missing {kind} ({tag}) heading") + token = tokens[3 * i] + if token.type != 'heading_open' or token.tag != tag: + assert token.map + raise RuntimeError(f"expected {kind} ({tag}) heading in line {token.map[0] + 1}", token) + for t in tokens[3 * len(wanted):]: + if t.type != 'heading_open' or (info := wanted.get(t.tag)) is None: + continue + assert t.map + raise RuntimeError( + f"only one {info[0]} heading ({t.markup} [text...]) allowed per " + f"{self._toplevel_tag}, but found a second in lines [{t.map[0] + 1}..{t.map[1]}]. " + "please remove all such headings except the first or demote the subsequent headings.", + t) + + # books get special handling because they have *two* title tags. doing this with + # generic code is more complicated than it's worth. the checks above have verified + # that both titles actually exist. + if self._toplevel_tag == 'book': + assert tokens[1].children + assert tokens[4].children + if (maybe_id := cast(str, tokens[0].attrs.get('id', ""))): + maybe_id = "xml:id=" + quoteattr(maybe_id) + return (f'' + f' {self.renderInline(tokens[1].children, options, env)}' + f' {self.renderInline(tokens[4].children, options, env)}' + f' {super().render(tokens[6:], options, env)}' + f'') + + return super().render(tokens, options, env) def _heading_tag(self, token: Token, tokens: Sequence[Token], i: int, options: OptionsDict, env: MutableMapping[str, Any]) -> tuple[str, dict[str, str]]: (tag, attrs) = super()._heading_tag(token, tokens, i, options, env) - if self._title_seen: - if token.tag == 'h1': - assert token.map is not None - raise RuntimeError( - "only one title heading (# [text...]) allowed per manual chapter " - f"but found a second in lines [{token.map[0]}..{token.map[1]}]. " - "please remove all such headings except the first, split your " - "chapters, or demote the subsequent headings to (##) or lower.", - token) + # render() has already verified that we don't have supernumerary headings and since the + # book tag is handled specially we can leave the check this simple + if token.tag != 'h1': return (tag, attrs) - self._title_seen = True - return ("chapter", attrs | { + return (self._toplevel_tag, attrs | { 'xmlns': "http://docbook.org/ns/docbook", 'xmlns:xlink': "http://www.w3.org/1999/xlink", }) + def _included_thing(self, tag: str, token: Token, tokens: Sequence[Token], i: int, + options: OptionsDict, env: MutableMapping[str, Any]) -> str: + result = [] + # close existing partintro. the generic render doesn't really need this because + # it doesn't have a concept of structure in the way the manual does. + if self._headings and self._headings[-1] == Heading('part', 1): + result.append("") + self._headings[-1] = self._headings[-1]._replace(partintro_closed=True) + # must nest properly for structural includes. this requires saving at least + # the headings stack, but creating new renderers is cheap and much easier. + r = ManualDocBookRenderer(tag, self._manpage_urls, None) + for (included, path) in token.meta['included']: + try: + result.append(r.render(included, options, env)) + except Exception as e: + raise RuntimeError(f"rendering {path}") from e + return "".join(result) + def included_options(self, token: Token, tokens: Sequence[Token], i: int, options: OptionsDict, + env: MutableMapping[str, Any]) -> str: + return cast(str, token.meta['rendered-options']) + # TODO minimize docbook diffs with existing conversions. remove soon. def paragraph_open(self, token: Token, tokens: Sequence[Token], i: int, options: OptionsDict, env: MutableMapping[str, Any]) -> str: @@ -76,127 +115,113 @@ class ManualDocBookRenderer(DocBookRenderer): return f"\n{escape(token.content)}" def fence(self, token: Token, tokens: Sequence[Token], i: int, options: OptionsDict, env: MutableMapping[str, Any]) -> str: - # HACK for temporarily being able to replace md-to-db.sh. pandoc used this syntax to - # allow md files to inject arbitrary docbook, and manual chapters use it. - if token.info == '{=docbook}': - return token.content info = f" language={quoteattr(token.info)}" if token.info != "" else "" return f"\n{escape(token.content)}" -class DocBookSectionConverter(BaseConverter): - __renderer__ = ManualDocBookRenderer +class DocBookConverter(Converter): + def __renderer__(self, manpage_urls: Mapping[str, str], + parser: Optional[markdown_it.MarkdownIt]) -> ManualDocBookRenderer: + return ManualDocBookRenderer('book', manpage_urls, parser) - def finalize(self) -> str: - result = [] + _base_paths: list[Path] + _revision: str - for section in self._sections: - id = "id=" + quoteattr(section.id) if section.id is not None else "" - result.append(f'
') - result += section.chapters - result.append(f'
') + def __init__(self, manpage_urls: Mapping[str, str], revision: str): + super().__init__(manpage_urls) + self._revision = revision - return "\n".join(result) - -class ManualFragmentDocBookRenderer(ManualDocBookRenderer): - _tag: str = "chapter" - - def _heading_tag(self, token: Token, tokens: Sequence[Token], i: int, options: OptionsDict, - env: MutableMapping[str, Any]) -> tuple[str, dict[str, str]]: - (tag, attrs) = super()._heading_tag(token, tokens, i, options, env) - if token.tag == 'h1': - return (self._tag, attrs | { 'xmlns:xi': "http://www.w3.org/2001/XInclude" }) - return (tag, attrs) - -class DocBookFragmentConverter(Converter): - __renderer__ = ManualFragmentDocBookRenderer - - def convert(self, file: Path, tag: str) -> str: - assert isinstance(self._md.renderer, ManualFragmentDocBookRenderer) + def convert(self, file: Path) -> str: + self._base_paths = [ file ] try: with open(file, 'r') as f: - self._md.renderer._title_seen = False - self._md.renderer._tag = tag return self._render(f.read()) except Exception as e: - raise RuntimeError(f"failed to render manual {tag} {file}") from e + raise RuntimeError(f"failed to render manual {file}") from e + + def _parse(self, src: str, env: Optional[MutableMapping[str, Any]] = None) -> list[Token]: + tokens = super()._parse(src, env) + for token in tokens: + if token.type != "fence" or not token.info.startswith("{=include=} "): + continue + typ = token.info[12:].strip() + if typ == 'options': + token.type = 'included_options' + self._parse_options(token) + elif typ in [ 'sections', 'chapters', 'preface', 'parts', 'appendix' ]: + token.type = 'included_' + typ + self._parse_included_blocks(token, env) + else: + raise RuntimeError(f"unsupported structural include type '{typ}'") + return tokens + + def _parse_included_blocks(self, token: Token, env: Optional[MutableMapping[str, Any]]) -> None: + assert token.map + included = token.meta['included'] = [] + for (lnum, line) in enumerate(token.content.splitlines(), token.map[0] + 2): + line = line.strip() + path = self._base_paths[-1].parent / line + if path in self._base_paths: + raise RuntimeError(f"circular include found in line {lnum}") + try: + self._base_paths.append(path) + with open(path, 'r') as f: + tokens = self._parse(f.read(), env) + included.append((tokens, path)) + self._base_paths.pop() + except Exception as e: + raise RuntimeError(f"processing included file {path} from line {lnum}") from e + + def _parse_options(self, token: Token) -> None: + assert token.map + + items = {} + for (lnum, line) in enumerate(token.content.splitlines(), token.map[0] + 2): + if len(args := line.split(":", 1)) != 2: + raise RuntimeError(f"options directive with no argument in line {lnum}") + (k, v) = (args[0].strip(), args[1].strip()) + if k in items: + raise RuntimeError(f"duplicate options directive {k} in line {lnum}") + items[k] = v + try: + id_prefix = items.pop('id-prefix') + varlist_id = items.pop('list-id') + source = items.pop('source') + except KeyError as e: + raise RuntimeError(f"options directive {e} missing in block at line {token.map[0] + 1}") + if items.keys(): + raise RuntimeError( + f"unsupported options directives in block at line {token.map[0] + 1}", + " ".join(items.keys())) + + try: + conv = options.DocBookConverter( + self._manpage_urls, self._revision, False, 'fragment', varlist_id, id_prefix) + with open(self._base_paths[-1].parent / source, 'r') as f: + conv.add_options(json.load(f)) + token.meta['rendered-options'] = conv.finalize(fragment=True) + except Exception as e: + raise RuntimeError(f"processing options block in line {token.map[0] + 1}") from e -class Section: - id: Optional[str] = None - chapters: list[str] - - def __init__(self) -> None: - self.chapters = [] - -class SectionAction(argparse.Action): - def __call__(self, parser: argparse.ArgumentParser, ns: argparse.Namespace, - values: Union[str, Sequence[Any], None], opt_str: Optional[str] = None) -> None: - sections = getattr(ns, self.dest) - if sections is None: sections = [] - sections.append(Section()) - setattr(ns, self.dest, sections) - -class SectionIDAction(argparse.Action): - def __call__(self, parser: argparse.ArgumentParser, ns: argparse.Namespace, - values: Union[str, Sequence[Any], None], opt_str: Optional[str] = None) -> None: - sections = getattr(ns, self.dest) - if sections is None: raise argparse.ArgumentError(self, "no active section") - sections[-1].id = cast(str, values) - -class ChaptersAction(argparse.Action): - def __call__(self, parser: argparse.ArgumentParser, ns: argparse.Namespace, - values: Union[str, Sequence[Any], None], opt_str: Optional[str] = None) -> None: - sections = getattr(ns, self.dest) - if sections is None: raise argparse.ArgumentError(self, "no active section") - sections[-1].chapters.extend(map(Path, cast(Sequence[str], values))) - -class SingleFileAction(argparse.Action): - def __call__(self, parser: argparse.ArgumentParser, ns: argparse.Namespace, - values: Union[str, Sequence[Any], None], opt_str: Optional[str] = None) -> None: - assert isinstance(values, Sequence) - chapters = getattr(ns, self.dest) or [] - chapters.append((Path(values[0]), Path(values[1]))) - setattr(ns, self.dest, chapters) - -def _build_cli_db_section(p: argparse.ArgumentParser) -> None: +def _build_cli_db(p: argparse.ArgumentParser) -> None: p.add_argument('--manpage-urls', required=True) - p.add_argument("outfile") - p.add_argument("--section", dest="contents", action=SectionAction, nargs=0) - p.add_argument("--section-id", dest="contents", action=SectionIDAction) - p.add_argument("--chapters", dest="contents", action=ChaptersAction, nargs='+') + p.add_argument('--revision', required=True) + p.add_argument('infile', type=Path) + p.add_argument('outfile', type=Path) -def _build_cli_db_fragment(p: argparse.ArgumentParser) -> None: - p.add_argument('--manpage-urls', required=True) - p.add_argument("--chapter", action=SingleFileAction, required=True, nargs=2) - p.add_argument("--section", action=SingleFileAction, required=True, nargs=2) - -def _run_cli_db_section(args: argparse.Namespace) -> None: +def _run_cli_db(args: argparse.Namespace) -> None: with open(args.manpage_urls, 'r') as manpage_urls: - md = DocBookSectionConverter(json.load(manpage_urls)) - for section in args.contents: - md.add_section(section.id, section.chapters) - with open(args.outfile, 'w') as f: - f.write(md.finalize()) - -def _run_cli_db_fragment(args: argparse.Namespace) -> None: - with open(args.manpage_urls, 'r') as manpage_urls: - md = DocBookFragmentConverter(json.load(manpage_urls)) - for kind in [ 'chapter', 'section' ]: - for (target, file) in getattr(args, kind): - converted = md.convert(file, kind) - target.parent.mkdir(parents=True, exist_ok=True) - target.write_text(converted) + md = DocBookConverter(json.load(manpage_urls), args.revision) + converted = md.convert(args.infile) + args.outfile.write_text(converted) def build_cli(p: argparse.ArgumentParser) -> None: formats = p.add_subparsers(dest='format', required=True) - _build_cli_db_section(formats.add_parser('docbook-section')) - _build_cli_db_fragment(formats.add_parser('docbook-fragment')) + _build_cli_db(formats.add_parser('docbook')) def run_cli(args: argparse.Namespace) -> None: - if args.format == 'docbook-section': - _run_cli_db_section(args) - elif args.format == 'docbook-fragment': - _run_cli_db_fragment(args) + if args.format == 'docbook': + _run_cli_db(args) else: raise RuntimeError('format not hooked up', args) diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py index b0db410c4818..3cba36140bb4 100644 --- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py +++ b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py @@ -231,10 +231,11 @@ class DocBookConverter(BaseConverter): def _decl_def_footer(self) -> list[str]: return [ "" ] - def finalize(self) -> str: + def finalize(self, *, fragment: bool = False) -> str: result = [] - result.append('') + if not fragment: + result.append('') if self._document_type == 'appendix': result += [ ' Date: Sun, 12 Feb 2023 11:47:33 +0100 Subject: [PATCH 17/45] nixos/manual: remove holdovers from docbook times these files provided mainly or exclusively xml-related tooling and support for editing the manual. since docbook is now an implementation detail (except for still being allowed in option docs, for now) these tools are no longer necessary, useful, or even functional. xmlformat.conf is still used by the nixpkgs documentation, so we have to keep it. there's no reason it can't go live with the nixpkgs docs though. --- doc/doc-support/default.nix | 2 +- {nixos/doc => doc/doc-support}/xmlformat.conf | 0 nixos/doc/manual/.gitignore | 2 - nixos/doc/manual/Makefile | 30 ----- nixos/doc/manual/shell.nix | 8 -- nixos/doc/varlistentry-fixer.rb | 124 ------------------ 6 files changed, 1 insertion(+), 165 deletions(-) rename {nixos/doc => doc/doc-support}/xmlformat.conf (100%) delete mode 100644 nixos/doc/manual/.gitignore delete mode 100644 nixos/doc/manual/Makefile delete mode 100644 nixos/doc/manual/shell.nix delete mode 100755 nixos/doc/varlistentry-fixer.rb diff --git a/doc/doc-support/default.nix b/doc/doc-support/default.nix index e9cb96e37fdd..bea3e12a70b3 100644 --- a/doc/doc-support/default.nix +++ b/doc/doc-support/default.nix @@ -75,7 +75,7 @@ in pkgs.runCommand "doc-support" {} ln -s ${epub-xsl} ./epub.xsl ln -s ${xhtml-xsl} ./xhtml.xsl - ln -s ${../../nixos/doc/xmlformat.conf} ./xmlformat.conf + ln -s ${./xmlformat.conf} ./xmlformat.conf ln -s ${pkgs.documentation-highlighter} ./highlightjs echo -n "${version}" > ./version diff --git a/nixos/doc/xmlformat.conf b/doc/doc-support/xmlformat.conf similarity index 100% rename from nixos/doc/xmlformat.conf rename to doc/doc-support/xmlformat.conf diff --git a/nixos/doc/manual/.gitignore b/nixos/doc/manual/.gitignore deleted file mode 100644 index 879282624217..000000000000 --- a/nixos/doc/manual/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -generated -manual-combined.xml diff --git a/nixos/doc/manual/Makefile b/nixos/doc/manual/Makefile deleted file mode 100644 index b2b6481b20c7..000000000000 --- a/nixos/doc/manual/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -.PHONY: all -all: manual-combined.xml - -.PHONY: debug -debug: generated manual-combined.xml - -manual-combined.xml: generated *.xml **/*.xml - rm -f ./manual-combined.xml - nix-shell --pure -Q --packages xmloscopy \ - --run "xmloscopy --docbook5 ./manual.xml ./manual-combined.xml" - -.PHONY: format -format: - nix-shell --pure -Q --packages xmlformat \ - --run "find ../../ -iname '*.xml' -type f -print0 | xargs -0 -I{} -n1 \ - xmlformat --config-file '../xmlformat.conf' -i {}" - -.PHONY: fix-misc-xml -fix-misc-xml: - find . -iname '*.xml' -type f \ - -exec ../varlistentry-fixer.rb {} ';' - -.PHONY: clean -clean: - rm -f manual-combined.xml generated - -generated: - nix-build ../../release.nix \ - --attr manualGeneratedSources.x86_64-linux \ - --out-link ./generated diff --git a/nixos/doc/manual/shell.nix b/nixos/doc/manual/shell.nix deleted file mode 100644 index e5ec9b8f97f7..000000000000 --- a/nixos/doc/manual/shell.nix +++ /dev/null @@ -1,8 +0,0 @@ -let - pkgs = import ../../.. { }; -in -pkgs.mkShell { - name = "nixos-manual"; - - packages = with pkgs; [ xmlformat jing xmloscopy ruby ]; -} diff --git a/nixos/doc/varlistentry-fixer.rb b/nixos/doc/varlistentry-fixer.rb deleted file mode 100755 index 02168016b554..000000000000 --- a/nixos/doc/varlistentry-fixer.rb +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/env ruby - -# This script is written intended as a living, evolving tooling -# to fix oopsies within the docbook documentation. -# -# This is *not* a formatter. It, instead, handles some known cases -# where something bad happened, and fixing it manually is tedious. -# -# Read the code to see the different cases it handles. -# -# ALWAYS `make format` after fixing with this! -# ALWAYS read the changes, this tool isn't yet proven to be always right. - -require "rexml/document" -include REXML - -if ARGV.length < 1 then - $stderr.puts "Needs a filename." - exit 1 -end - -filename = ARGV.shift -doc = Document.new(File.open(filename)) - -$touched = false - -# Fixing varnames having a sibling element without spacing. -# This is to fix an initial `xmlformat` issue where `term` -# would mangle as spaces. -# -# -# types.separatedStringsep <---- -# -# ... -# -# Generates: types.separatedStringsep -# ^^^^ -# -# -# -# makeWrapperexecutablewrapperfileargs <---- -# -# -# Generates: makeWrapperexecutablewrapperfileargs -# ^^^^ ^^^^ ^^ ^^ -# -# -# namevalue <----- -# -# -# Generates: --optionnamevalue -# ^^ ^^ -doc.elements.each("//varlistentry/term") do |term| - ["varname", "function", "option", "replaceable"].each do |prev_name| - term.elements.each(prev_name) do |el| - if el.next_element and - el.next_element.name == "replaceable" and - el.next_sibling_node.class == Element - then - $touched = true - term.insert_after(el, Text.new(" ")) - end - end - end -end - - - -# -# nixos-option -# -# path <------ -# -# -# Generates: -Ipath -# ^^ -doc.elements.each("//cmdsynopsis/arg") do |term| - ["option", "replaceable"].each do |prev_name| - term.elements.each(prev_name) do |el| - if el.next_element and - el.next_element.name == "replaceable" and - el.next_sibling_node.class == Element - then - $touched = true - term.insert_after(el, Text.new(" ")) - end - end - end -end - -# -# -# -# -# -# -# -# -# -# -# name <---- -# -# -# Generates: [{--profile-name | -p }name] -# ^^^^ -doc.elements.each("//cmdsynopsis/arg") do |term| - ["group"].each do |prev_name| - term.elements.each(prev_name) do |el| - if el.next_element and - el.next_element.name == "replaceable" and - el.next_sibling_node.class == Element - then - $touched = true - term.insert_after(el, Text.new(" ")) - end - end - end -end - - -if $touched then - doc.context[:attribute_quote] = :quote - doc.write(output: File.open(filename, "w")) -end From 02124bbb7ea70ecec0add1a0036abf0c6127298c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 15 Feb 2023 21:41:18 +0100 Subject: [PATCH 18/45] rsstail: don't run cppcheck linter, little cleanup --- .../networking/feedreaders/rsstail/default.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/applications/networking/feedreaders/rsstail/default.nix b/pkgs/applications/networking/feedreaders/rsstail/default.nix index 1cd83cda77a9..af2dbd1a9a4f 100644 --- a/pkgs/applications/networking/feedreaders/rsstail/default.nix +++ b/pkgs/applications/networking/feedreaders/rsstail/default.nix @@ -1,18 +1,17 @@ -{ lib, stdenv, fetchFromGitHub, cppcheck, libmrss, libiconv }: +{ lib, stdenv, fetchFromGitHub, libmrss, libiconv }: stdenv.mkDerivation { pname = "rsstail"; version = "2.1"; src = fetchFromGitHub { - sha256 = "12p69i3g1fwlw0bds9jqsdmzkid3k5a41w31d227i7vm12wcvjf6"; - rev = "6f2436185372b3f945a4989406c4b6a934fe8a95"; - repo = "rsstail"; owner = "folkertvanheusden"; + repo = "rsstail"; + rev = "6f2436185372b3f945a4989406c4b6a934fe8a95"; + sha256 = "12p69i3g1fwlw0bds9jqsdmzkid3k5a41w31d227i7vm12wcvjf6"; }; buildInputs = [ libmrss ] ++ lib.optionals stdenv.isDarwin [ libiconv ]; - nativeCheckInputs = [ cppcheck ]; postPatch = '' substituteInPlace Makefile --replace -liconv_hook "" @@ -21,7 +20,8 @@ stdenv.mkDerivation { makeFlags = [ "prefix=$(out)" ]; enableParallelBuilding = true; - doCheck = true; + # just runs cppcheck linter + doCheck = false; meta = with lib; { description = "Monitor RSS feeds for new entries"; @@ -29,7 +29,7 @@ stdenv.mkDerivation { RSSTail is more or less an RSS reader: it monitors an RSS feed and if it detects a new entry it'll emit only that new entry. ''; - homepage = "http://www.vanheusden.com/rsstail/"; + homepage = "https://www.vanheusden.com/rsstail/"; license = licenses.gpl2Plus; maintainers = [ maintainers.Necior ]; platforms = platforms.unix; From e4c2a7ceb39d2adf3892dd06a62cf0b10079ebde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 15 Feb 2023 22:02:37 +0100 Subject: [PATCH 19/45] sqlitecpp: don't run cppcheck linter --- pkgs/development/libraries/sqlitecpp/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/libraries/sqlitecpp/default.nix b/pkgs/development/libraries/sqlitecpp/default.nix index f4b2ee9e9a95..aad1ee34e5c4 100644 --- a/pkgs/development/libraries/sqlitecpp/default.nix +++ b/pkgs/development/libraries/sqlitecpp/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, cmake, sqlite, cppcheck, gtest }: +{ lib, stdenv, fetchFromGitHub, cmake, sqlite, gtest }: stdenv.mkDerivation rec { pname = "sqlitecpp"; @@ -12,7 +12,6 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ cmake ]; - nativeCheckInputs = [ cppcheck ]; buildInputs = [ sqlite gtest ]; doCheck = true; From 2f97cda1f8108ed2d7a5b43ca47c758831fc800e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 15 Feb 2023 22:12:24 +0100 Subject: [PATCH 20/45] freeorion: use boost that builds with python3, remove cppcheck linter --- pkgs/games/freeorion/default.nix | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pkgs/games/freeorion/default.nix b/pkgs/games/freeorion/default.nix index 5b4407038015..9f9075d75a4d 100644 --- a/pkgs/games/freeorion/default.nix +++ b/pkgs/games/freeorion/default.nix @@ -5,8 +5,7 @@ , doxygen , graphviz , makeWrapper -, cppcheck -, boost16x +, boost17x , SDL2 , python3 , freetype @@ -24,8 +23,8 @@ }: stdenv.mkDerivation rec { - version = "0.4.10.2"; pname = "freeorion"; + version = "0.4.10.2"; src = fetchFromGitHub { owner = "freeorion"; @@ -35,7 +34,7 @@ stdenv.mkDerivation rec { }; buildInputs = [ - (boost16x.override { enablePython = true; python = python3; }) + (boost17x.override { enablePython = true; python = python3; }) (python3.withPackages (p: with p; [ pycodestyle ])) SDL2 freetype @@ -53,7 +52,6 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake - cppcheck doxygen graphviz makeWrapper @@ -81,7 +79,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "A free, open source, turn-based space empire and galactic conquest (4X) computer game"; - homepage = "http://www.freeorion.org"; + homepage = "https://www.freeorion.org/"; license = with licenses; [ gpl2 cc-by-sa-30 ]; platforms = platforms.linux; maintainers = with maintainers; [ tex ]; From d382e6d1bdd91581a766f05f393b5d8c2e1fb05d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 15 Feb 2023 23:38:17 +0100 Subject: [PATCH 21/45] migraphx: remove cppcheck linter --- pkgs/development/libraries/migraphx/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/development/libraries/migraphx/default.nix b/pkgs/development/libraries/migraphx/default.nix index 27caa1f94137..15581e00e528 100644 --- a/pkgs/development/libraries/migraphx/default.nix +++ b/pkgs/development/libraries/migraphx/default.nix @@ -7,7 +7,6 @@ , rocm-cmake , hip , clang-tools-extra -, cppcheck , openmp , rocblas , rocmlir @@ -70,7 +69,6 @@ in stdenv.mkDerivation (finalAttrs: { rocm-cmake hip clang-tools-extra - cppcheck python3Packages.python ] ++ lib.optionals buildDocs [ latex From e1d4a40c44069d9cdc06fa9c66f9b3b652fb774a Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Thu, 16 Feb 2023 09:47:44 +0800 Subject: [PATCH 22/45] traefik: 2.9.6 -> 2.9.8 Diff: https://github.com/traefik/traefik/compare/v2.9.6...v2.9.8 Changelog: https://github.com/traefik/traefik/raw/v2.9.8/CHANGELOG.md --- pkgs/servers/traefik/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix index 60eb9a22a829..4bc0a230d3cc 100644 --- a/pkgs/servers/traefik/default.nix +++ b/pkgs/servers/traefik/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "traefik"; - version = "2.9.6"; + version = "2.9.8"; # Archive with static assets for webui src = fetchzip { url = "https://github.com/traefik/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz"; - sha256 = "sha256-T1yJT45bCjGizS6bqkzc6EF9uhJ3dhXsSc5X3di6SJ4="; + sha256 = "sha256-3vrMh0zrJQhIG9VAlG/iHlOVlUFlE4qd0EkOB0ckAtY="; stripRoot = false; }; - vendorSha256 = "sha256-g/UL+cUenWW94afWIGFU2fBSpo48YcUIUaX/1M5vhNk="; + vendorSha256 = "sha256-NyI+3wYRZ3L98qwrkDfrbJK4S+Wdx/UJ8FlLAMhaL7A="; subPackages = [ "cmd/traefik" ]; From 3ac55d312df6f771b32047153175f1a01dc9e3cb Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Thu, 16 Feb 2023 15:36:19 +0100 Subject: [PATCH 23/45] Revert "rubyPackages: update" This reverts commit e23578703ad5d57bfa1c48db341348e5cdd25b1b. --- pkgs/top-level/ruby-packages.nix | 408 ++++++++++++++++--------------- 1 file changed, 214 insertions(+), 194 deletions(-) diff --git a/pkgs/top-level/ruby-packages.nix b/pkgs/top-level/ruby-packages.nix index 3bdb15e9d7e2..97d5ad25f63f 100644 --- a/pkgs/top-level/ruby-packages.nix +++ b/pkgs/top-level/ruby-packages.nix @@ -5,10 +5,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "10g5gk8h4mfhvgqylzbf591fqf5p78ca35cb97p9bclpv9jfy0za"; + sha256 = "1271f7nyrmb0kk93zjsb3zyxng8jlzhhg9784pwfpwvrlclashlw"; type = "gem"; }; - version = "6.1.7.2"; + version = "6.0.6"; }; activesupport = { dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"]; @@ -16,10 +16,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "14pjq2k761qaywaznpqq8ziivjk2ks1ma2cjwdflkxqgndxjmsr2"; + sha256 = "091qjiv0mvmn5k9krqkv1lfg8983mgcmrf11gxa6xkchh74csr6a"; type = "gem"; }; - version = "6.1.7.2"; + version = "6.0.6"; }; addressable = { dependencies = ["public_suffix"]; @@ -119,10 +119,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "017jh2lx3z5hqjvnqclc5bfr5q0d3zk0nqjfz73909ybr4h20kmi"; + sha256 = "0xwcnbwnbqq8jp92mvawn6y69cb53wsz84wwmk9vsfk1jjvqfw2z"; type = "gem"; }; - version = "0.2.1"; + version = "0.2.0"; }; builder = { groups = ["default"]; @@ -193,10 +193,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1a36zn77yyibqsfpka0i8vgf3yv98ic2b9wwlbc29566y8wpa2bq"; + sha256 = "193l8r1ycd3dcxa7lsb4pqcghbk56dzc5244m6y8xmv88z6m31d7"; type = "gem"; }; - version = "3.0.6"; + version = "3.0.5"; }; charlock_holmes = { groups = ["default"]; @@ -360,10 +360,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0csgcp2kkmciavnic1yrb8z405dg4lqkzdlw2zscahvggpwr0j2p"; + sha256 = "1fxrq0b1x5gr2gr9md6mkwgaj8519gf1sbyqs88yqphbigf5iy75"; type = "gem"; }; - version = "0.2.0"; + version = "0.1.1"; }; cocoapods-downloader = { groups = ["default"]; @@ -401,10 +401,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "06rvrsb5p4j9pwqg7xzx8kv0v4x3wwjbiw6y2i905qhyqxqrww2l"; + sha256 = "0vpn0y2r91cv9kr2kh6rwh51ipi90iyjfya8ir9grxh1ngv179ck"; type = "gem"; }; - version = "2.2.4"; + version = "2.2.2"; }; cocoapods-git_url_rewriter = { groups = ["default"]; @@ -417,15 +417,15 @@ version = "1.0.1"; }; cocoapods-keys = { - dependencies = ["dotenv" "ruby-keychain"]; + dependencies = ["dotenv" "osx_keychain"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1zycjq1i3kqzpixngm1jp66r075yrb54qcd0xxxa8rmxngimqhff"; + sha256 = "153cxxsi77dygc4qrij6qs44dbvc7dw31jx06cmf0ajrhv9qjnxl"; type = "gem"; }; - version = "2.3.1"; + version = "2.2.1"; }; cocoapods-open = { groups = ["default"]; @@ -587,20 +587,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1q4ai2i4rswhq5l46ny5066z8pavj3j0qvr9hbgqvzj677fa335f"; + sha256 = "0f3v6ffikj694h925zvfzgx995q6l1ixnqpph3qpnjdsyjpsmbn8"; type = "gem"; }; - version = "0.23.8"; + version = "0.23.6"; }; concurrent-ruby = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1qnsflsbjj38im8xq35g0vihlz96h09wjn2dad5g543l3vvrkrx5"; + sha256 = "0s4fpn3mqiizpmpy2a24k4v365pv75y50292r8ajrv4i1p5b2k14"; type = "gem"; }; - version = "1.2.0"; + version = "1.1.10"; }; connection_pool = { groups = ["default"]; @@ -627,10 +627,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1lgga9ina9gnpp9ycj8lpqkc5hm5qlxb41s4pfg0w6fnnpgmairc"; + sha256 = "1195gisqv1kn4lpshn6frlnjgx5r9a0gnpkzjxzsi6wfmfys1mwy"; type = "gem"; }; - version = "1.0.5"; + version = "1.0.1"; }; curses = { groups = ["default"]; @@ -709,10 +709,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0qbj8lvl8lzrbpfj9612iiwxf53drb8jg1l4bd1mcqyds8lw9z9z"; + sha256 = "0kqfwfz3pf6mb22r48ybbp7hkzy2qafdpp1bv1knjd74zyilv73h"; type = "gem"; }; - version = "7.5.0"; + version = "7.4.0"; }; dnsruby = { dependencies = ["simpleidn"]; @@ -793,10 +793,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "08s75vs9cxlc4r1q2bjg4br8g9wc5lc5x5vl0vv4zq5ivxsdpgi7"; + sha256 = "11bz1v1cxabm8672gabrw542zyg51dizlcvdck6vvwzagxbjv9zx"; type = "gem"; }; - version = "1.12.0"; + version = "1.11.0"; }; escape = { groups = ["default"]; @@ -814,10 +814,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "17ix0mijpsy3y0c6ywrk5ibarmvqzjsirjyprpsy3hwax8fdm85v"; + sha256 = "0kd7c61f28f810fgxg480j7457nlvqarza9c2ra0zhav0dd80288"; type = "gem"; }; - version = "0.16.0"; + version = "0.15.0"; }; eventmachine = { groups = ["default"]; @@ -834,10 +834,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0j826kfvzn7nc5pv950n270r0sx1702k988ad11cdlav3dcxxw09"; + sha256 = "1v71iii13cnlkck20xv0yrbz0g60qn88f4r6518k8vk31sddw4hx"; type = "gem"; }; - version = "0.99.0"; + version = "0.93.1"; }; execjs = { groups = ["default"]; @@ -855,20 +855,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1f20vjx0ywx0zdb4dfx4cpa7kd51z6vg7dw5hs35laa45dy9g9pj"; + sha256 = "0mqv17hfmph4ylmb2bqyccy64gsgpmzapq5yrmf5yjsqkvw9rxbv"; type = "gem"; }; - version = "2.7.4"; + version = "2.6.0"; }; faraday-net_http = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "13byv3mp1gsjyv8k0ih4612y6vw5kqva6i03wcg4w2fqpsd950k8"; + sha256 = "13b717ddw90iaf4vijy06srmkvrfbzsnyjap93yll0nibad4dbxq"; type = "gem"; }; - version = "3.0.2"; + version = "3.0.1"; }; ffi = { groups = ["default"]; @@ -1023,10 +1023,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0llbqaziga5vawfs71r1ijfiw9allsd15wsrm5vr0sqd3yn7ak89"; + sha256 = "sha256-bkSvvD2SClHJ5FyERpyqZaWp0im7NNhn+wplbmnZD84="; type = "gem"; }; - version = "1.13.2"; + version = "1.13.1"; }; github-pages = { dependencies = ["github-pages-health-check" "jekyll" "jekyll-avatar" "jekyll-coffeescript" "jekyll-commonmark-ghpages" "jekyll-default-layout" "jekyll-feed" "jekyll-gist" "jekyll-github-metadata" "jekyll-include-cache" "jekyll-mentions" "jekyll-optional-front-matter" "jekyll-paginate" "jekyll-readme-index" "jekyll-redirect-from" "jekyll-relative-links" "jekyll-remote-theme" "jekyll-sass-converter" "jekyll-seo-tag" "jekyll-sitemap" "jekyll-swiss" "jekyll-theme-architect" "jekyll-theme-cayman" "jekyll-theme-dinky" "jekyll-theme-hacker" "jekyll-theme-leap-day" "jekyll-theme-merlot" "jekyll-theme-midnight" "jekyll-theme-minimal" "jekyll-theme-modernist" "jekyll-theme-primer" "jekyll-theme-slate" "jekyll-theme-tactile" "jekyll-theme-time-machine" "jekyll-titles-from-headings" "jemoji" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "minima" "nokogiri" "rouge" "terminal-table"]; @@ -1034,10 +1034,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0brk2sgk01mly2hb1h5hm3ip1l6hjr4xx9zkqfhs5k3swlwnwzq9"; + sha256 = "0kg03q6hvz191pyqhbhz3qis5niy3qvrxsnd3sdxcqz6a750wmw6"; type = "gem"; }; - version = "228"; + version = "227"; }; github-pages-health-check = { dependencies = ["addressable" "dnsruby" "octokit" "public_suffix" "typhoeus"]; @@ -1055,10 +1055,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1m3ypny84jyvlxf060p3q3d8pb4yihxa2br5hh012bgc11d09nky"; + sha256 = "0yvh8vv9kgd06hc8c1pl2hq56w56vr0n7dr5mz19fx4p2v89y7xb"; type = "gem"; }; - version = "1.9.0"; + version = "1.8.1"; }; glib2 = { dependencies = ["native-package-installer" "pkg-config"]; @@ -1088,10 +1088,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0qn87vxdsaq1szcvq39rnz38cgqllncdxmiyghnbzl7x5aah8sbw"; + sha256 = "0xbgh9d8nbvsvyzqnd0mzhz0nr9hx4qn025kmz6d837lry4lc6gw"; type = "gem"; }; - version = "2.0.22"; + version = "2.0.20"; }; gtk2 = { dependencies = ["atk" "gdk_pixbuf2" "pango"]; @@ -1110,10 +1110,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1vcr5wcvfbsq91302playk3i98wdisspkybcmajl04agv4k8xr68"; + sha256 = "03qiz6kbk260v3613z4wrk8iy1mi06j631fglcskfxyhf18lpy05"; type = "gem"; }; - version = "6.1.1"; + version = "6.0.8"; }; hashie = { groups = ["default"]; @@ -1130,10 +1130,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1f8cr014j7mdqpdb9q17fp5vb5b8n1pswqaif91s3ylg5x3pygfn"; + sha256 = "0yclf57n2j3cw8144ania99h1zinf8q3f5zrhqa754j6gl95rp9d"; type = "gem"; }; - version = "2.1.0"; + version = "2.0.3"; }; hike = { groups = ["default"]; @@ -1244,10 +1244,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1vdcchz7jli1p0gnc669a7bj3q1fv09y9ppf0y3k0vb1jwdwrqwi"; + sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3"; type = "gem"; }; - version = "1.12.0"; + version = "0.9.5"; }; iconv = { groups = ["default"]; @@ -1264,20 +1264,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0dy04jx3n1ddz744b80mg7hp87miysnjp0h21lqr43hpmhdglxih"; + sha256 = "1xjr8nxpq6vsa4kd7pvd14xxiba9y4dais1yyz4dj567hsqdrhcm"; type = "gem"; }; - version = "0.1.5"; + version = "0.1.4"; }; ipaddr = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0ypic2hrmvvcgw7al72raphqv5cs1zvq4w284pwrkvfqsrqrqrsf"; + sha256 = "13qd34nzpgp3fxfjbvaqg3dcnfr0cgl5vjvcqy0hfllbvfcklnbq"; type = "gem"; }; - version = "1.2.5"; + version = "1.2.4"; }; jaro_winkler = { groups = ["default"]; @@ -1306,10 +1306,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0m9yzkiwm751wbyq3aq1355afcx240r24nrick1fzv578bis4kyy"; + sha256 = "0wzb3ysr43f9acpdfhnndnqh1ypir01w4s4clzi38l9mxkfc4d75"; type = "gem"; }; - version = "3.9.3"; + version = "3.9.2"; }; jekyll-avatar = { dependencies = ["jekyll"]; @@ -1350,10 +1350,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1zps7bb9kc4qf32b9y9h47z08wpsziklg0jnhcrcz2wxn09fijgd"; + sha256 = "0xkqq0cyca84hxs47ilkg3sjavwjvc6wijz4n0zd4nxj01jz54bh"; type = "gem"; }; - version = "0.4.0"; + version = "0.2.0"; }; jekyll-default-layout = { dependencies = ["jekyll"]; @@ -1732,40 +1732,40 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1cdw9vw2qly7q7r41s7phnac264rbsdqgj4l0h4nqgbjb157g393"; + sha256 = "1mnvb80cdg7fzdcs3xscv21p28w4igk5sj5m7m81xp8v2ks87jj0"; type = "gem"; }; - version = "1.6.2"; + version = "1.6.1"; }; json = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6"; + sha256 = "0yk5d10yvspkc5jyvx9gc1a9pn1z8v4k2hvjk1l88zixwf3wf3cl"; type = "gem"; }; - version = "2.6.3"; + version = "2.6.2"; }; json_pure = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0kn736pb52j8b9xxq6l8wqp2chs74aa14vfnp0rijjn086m8b4f3"; + sha256 = "04d8lc6mc09bqmcrlygh51an8r0j7l3p9aghjkc1g6i4fvmrmxfc"; type = "gem"; }; - version = "2.6.3"; + version = "2.6.2"; }; jwt = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "09yj3z5snhaawh2z1w45yyihzmh57m6m7dp8ra8gxavhj5kbiq5p"; + sha256 = "0kcmnx6rgjyd7sznai9ccns2nh7p7wnw3mi8a7vf2wkm51azwddq"; type = "gem"; }; - version = "2.7.0"; + version = "2.5.0"; }; kramdown = { dependencies = ["rexml"]; @@ -1815,10 +1815,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1xz5mrp103i95r4wfxny1f5x7h7vgnxv2p9cdkmmdjzrsk23rijs"; + sha256 = "1jbqw7hkx08i5dj74fwfdc16980hsj3mhrxp4mmjxsdzw1kndrvp"; type = "gem"; }; - version = "4.0.0"; + version = "3.2.4"; }; link_header = { groups = ["default"]; @@ -1835,10 +1835,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1czxv2i1gv3k7hxnrgfjb0z8khz74l4pmfwd70c7kr25l2qypksg"; + sha256 = "0zhg5ha8zy8zw9qr3fl4wgk4r5940n4128xm2pn4shpbzdbsj5by"; type = "gem"; }; - version = "4.0.4"; + version = "4.0.3"; }; listen = { dependencies = ["rb-fsevent" "rb-inotify"]; @@ -1846,10 +1846,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "13rgkfar8pp31z1aamxf5y7cfq88wv6rxxcwy7cmm177qq508ycn"; + sha256 = "0agybr37wpjv3xy4ipcmsvsibgdgphzrwbvcj4vfiykpmakwm01v"; type = "gem"; }; - version = "3.8.0"; + version = "3.7.1"; }; loofah = { dependencies = ["crass" "nokogiri"]; @@ -1857,7 +1857,7 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "08qhzck271anrx9y6qa6mh8hwwdzsgwld8q0000rcd7yvvpnjr3c"; + sha256 = "sha256-bGRp797+NJYBAACjRvnTv3EOEaxGYeNTz1aFIyb7ECM="; type = "gem"; }; version = "2.19.1"; @@ -1961,10 +1961,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0slh78f9z6n0l1i2km7m48yz7l4fjrk88sj1f4mh1wb39sl2yc37"; + sha256 = "1aj604x11d9pksbljh0l38f70b558rhdgji1s9i763hiagvvx2hs"; type = "gem"; }; - version = "4.12.0"; + version = "4.11.0"; }; mini_mime = { groups = ["default"]; @@ -1981,10 +1981,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1af4yarhbbx62f7qsmgg5fynrik0s36wjy3difkawy536xg343mp"; + sha256 = "0rapl1sfmfi3bfr68da4ca16yhc0pp93vjwkj7y3rdqrzy3b41hy"; type = "gem"; }; - version = "2.8.1"; + version = "2.8.0"; }; minima = { dependencies = ["jekyll" "jekyll-feed" "jekyll-seo-tag"]; @@ -2002,10 +2002,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1kjy67qajw4rnkbjs5jyk7kc3lyhz5613fwj1i8f6ppdk4zampy0"; + sha256 = "0516ypqlx0mlcfn5xh7qppxqc3xndn1fnadxawa8wld5dkcimy30"; type = "gem"; }; - version = "5.17.0"; + version = "5.16.3"; }; molinillo = { groups = ["default"]; @@ -2063,10 +2063,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1gjvj215qdhwk3292sc7xsn6fmwnnaq2xs35hh5hc8d8j22izlbn"; + sha256 = "0xsy70mg4p854jska7ff7cy8fyn9nhlkrmfdvkkfmk8qxairbfq1"; type = "gem"; }; - version = "0.5.5"; + version = "0.5.4"; }; nanaimo = { groups = ["default"]; @@ -2199,10 +2199,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0qr6psd9qgv83pklpw7cpmshkcasnv8d777ksmvwsacwfvvkmnxj"; + sha256 = "sha256-0+4A8mwVF2PaFpHH/Ghx3dA+Uy90+FEB9aztwtCZ6Vg="; type = "gem"; }; - version = "1.14.1"; + version = "1.13.10"; }; octokit = { dependencies = ["faraday" "sawyer"]; @@ -2215,27 +2215,16 @@ }; version = "4.25.1"; }; - og-corefoundation = { - dependencies = ["ffi"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0xmz13rb92xy55askn5f3kkmz14qwyyhkdsikk2gd1ydicnaqkh8"; - type = "gem"; - }; - version = "0.2.3"; - }; openssl = { dependencies = ["ipaddr"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0rm9nzz2p204dgcplq9v53jr62m74w63vz01rk8dfmcgifkxhnff"; + sha256 = "0xx01in25q31rpxmq2qlimi44zarsp4px7046xnc6in0pa127xsk"; type = "gem"; }; - version = "2.2.3"; + version = "2.2.2"; }; optimist = { groups = ["default"]; @@ -2258,6 +2247,17 @@ }; version = "1.0.1"; }; + osx_keychain = { + dependencies = ["RubyInline"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10hr3lihq7s5fv18dp0g4mfncvapkcwcd6xnn5483ximyd7rhfx0"; + type = "gem"; + }; + version = "1.0.2"; + }; ovirt-engine-sdk = { dependencies = ["json"]; groups = ["default"]; @@ -2275,10 +2275,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1hi3jcm9s7hkv35gzgdh3nxs0s9h7kkqwv1x6kalww15msk60fxd"; + sha256 = "0zk3fwwx8zzxhmfmlgzzr050jzsl58ma54wy99xy4xx0ibmw48pv"; type = "gem"; }; - version = "1.1.0"; + version = "1.0.4"; }; pango = { dependencies = ["cairo-gobject" "gobject-introspection"]; @@ -2307,20 +2307,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0cdjcasyg7w05kk82dqysq29f1qcf8y5sw8iak5flpxjbdil50qv"; + sha256 = "1q31n7yj59wka8xl8s5wkf66hm4pgvblx95czyxffprdnlhrir2p"; type = "gem"; }; - version = "3.2.1.0"; + version = "3.1.2.1"; }; paru = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0mzy0s4cdqm5nvgyj55idc2pv51k3zlgw6sa7825dcyrk2ihcx0c"; + sha256 = "1v6my9g7bwjlx92hr9w0blnrcrai1yg3yz6k9xz0i6mq8lml2k87"; type = "gem"; }; - version = "1.1.0"; + version = "1.0.3"; }; pastel = { dependencies = ["tty-color"]; @@ -2369,20 +2369,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1wd6nl81nbdwck04hccsm7wf23ghpi8yddd9j4rbwyvyj0sbsff1"; + sha256 = "09a5z9qhxnybahx162q2q1cygdhxfp6cihdivvzh32jlwc37z1x3"; type = "gem"; }; - version = "1.4.5"; + version = "1.4.4"; }; pkg-config = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "02fw2pzrmvwp67nbndpy8a2ln74fd8kmsiffw77z7g1mp58ww651"; + sha256 = "0v9vmkmpha34lwdhig08kb7z4wk3xmw49dvkl99nz9llxhzqr5hl"; type = "gem"; }; - version = "1.5.1"; + version = "1.4.9"; }; polyglot = { groups = ["default"]; @@ -2410,10 +2410,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1bbw4czjr2ch6m57rgjib5a35hx3g18975vwzm2iwq13pvdj9hzk"; + sha256 = "1l5pk6w63bj7cxy4y9mqvpclw6r0pcm7xa44c33vx3f960px8wk8"; type = "gem"; }; - version = "1.2.0"; + version = "1.0.2"; }; pry = { dependencies = ["coderay" "method_source"]; @@ -2421,10 +2421,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0k9kqkd9nps1w1r1rb7wjr31hqzkka2bhi8b518x78dcxppm9zn4"; + sha256 = "0m445x8fwcjdyv2bc0glzss2nbm1ll51bq45knixapc7cl3dzdlr"; type = "gem"; }; - version = "0.14.2"; + version = "0.14.1"; }; pry-byebug = { dependencies = ["byebug" "pry"]; @@ -2443,10 +2443,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1pp43n69p6bjvc640wgcz295w1q2v9awcqgbwcqn082dbvq5xvnx"; + sha256 = "0wyvql6pb6m8jl8bsamabxhxhd86bnqblspaxzz05sl0fm2ynj0r"; type = "gem"; }; - version = "1.4.0"; + version = "1.3.0"; }; public_suffix = { groups = ["default"]; @@ -2464,30 +2464,30 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ymaq2m30yx35sninw8mjknsjw23k6458ph9k350khwwn1hh2d1k"; + sha256 = "1yabmxmqprb2x58awiasidsiwpplscmyar9dzwh5l8jgaw4i3wra"; type = "gem"; }; - version = "6.1.0"; + version = "6.0.0"; }; racc = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "09jgz6r0f7v84a7jz9an85q8vvmp743dqcsdm3z9c8rqcqv6pljq"; + sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d"; type = "gem"; }; - version = "1.6.2"; + version = "1.6.0"; }; rack = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0qvp6h2abmlsl4sqjsvac03cr2mxq6143gbx4kq52rpazp021qsb"; + sha256 = "0axc6w0rs4yj0pksfll1hjgw1k6a5q0xi2lckh91knfb72v348pa"; type = "gem"; }; - version = "2.2.6.2"; + version = "2.2.4"; }; rack-protection = { dependencies = ["rack"]; @@ -2495,10 +2495,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1a12m1mv8dc0g90fs1myvis8vsgr427k1arg1q4a9qlfw6fqyhis"; + sha256 = "0jmixih0qrsdz60dhznkk29v50ks55cqq51jjf0yn3amqghh4bhk"; type = "gem"; }; - version = "3.0.5"; + version = "3.0.2"; }; rails-dom-testing = { dependencies = ["activesupport" "nokogiri"]; @@ -2517,10 +2517,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0ygav4xyq943qqyhjmi3mzirn180j565mc9h5j4css59x1sn0cmz"; + sha256 = "sha256-iV0Mh6K2YjiR6FwdUHx/FqzaTnfZRpL1N981unE5i9U="; type = "gem"; }; - version = "1.5.0"; + version = "1.4.4"; }; rainbow = { groups = ["default"]; @@ -2589,10 +2589,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0dgj5n7rj83981fvrhswfwsh88x42p7r00nvd80hkxmdcjvda2h6"; + sha256 = "0wd4j2irk88qcrxbhhbrsr6rswz8ckva7n0hsjyffnmx1ya60n8y"; type = "gem"; }; - version = "2.8.4"; + version = "2.7.0"; }; rchardet = { groups = ["default"]; @@ -2630,10 +2630,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1sg9sbf9pm91l7lac7fs4silabyn0vflxwaa2x3lrzsm0ff8ilca"; + sha256 = "0bvk8yyns5s1ls437z719y5sdv9fr8kfs8dmr6g8s761dv5n8zvi"; type = "gem"; }; - version = "3.6.0"; + version = "3.5.1"; }; redis = { dependencies = ["redis-client"]; @@ -2641,10 +2641,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "10r5z5mg1x5kjx3wvwx5d8bqgd2j8pc4dlaasq7nmnl3nsn7sn9k"; + sha256 = "1s2hvsq0nyxmh27cqv00zk0s6bb4dlxfhzng5x0w8qijpw0vx9h5"; type = "gem"; }; - version = "5.0.6"; + version = "5.0.5"; }; redis-client = { dependencies = ["connection_pool"]; @@ -2652,10 +2652,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1q9h6mgr3nnxlc65r3f78cn208i4l8y2jqa1g6wwjl620za3ay9q"; + sha256 = "1hkwqi18cbiil787ivvh2s8i6csrn0z3qb4ccp2vhrc2w6ay6ncq"; type = "gem"; }; - version = "0.12.1"; + version = "0.10.0"; }; redis-rack = { dependencies = ["rack" "redis-store"]; @@ -2684,10 +2684,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0d6241adx6drsfzz74nx1ld3394nm6fjpv3ammzr0g659krvgf7q"; + sha256 = "0mm5sykyblc61a82zz3dag6yy3mvflj2z47060kjzjj5793blqzi"; type = "gem"; }; - version = "2.7.0"; + version = "2.6.0"; }; rest-client = { dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"]; @@ -2722,15 +2722,14 @@ version = "3.2.5"; }; rmagick = { - dependencies = ["pkg-config"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "11skr2l49cml2wgm74zzcxwdyw0vn0abynhhq1m08jpzr309x730"; + sha256 = "0v269bx6bhnrlxpsmhr8xjv64dwnnykiw9hr58dwghsps1qb8ib7"; type = "gem"; }; - version = "5.1.0"; + version = "5.0.0"; }; rouge = { groups = ["default"]; @@ -2769,10 +2768,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0da45cvllbv39sdbsl65vp5djb2xf5m10mxc9jm7rsqyyxjw4h1f"; + sha256 = "1ibb81slc35q5yp276sixp3yrvj9q92wlmi1glbnwlk6g49z8rn4"; type = "gem"; }; - version = "3.12.1"; + version = "3.12.0"; }; rspec-expectations = { dependencies = ["diff-lcs" "rspec-support"]; @@ -2780,10 +2779,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "03ba3lfdsj9zl00v1yvwgcx87lbadf87livlfa5kgqssn9qdnll6"; + sha256 = "0qldsmjhqr4344zdlamzggr3y98wdk2c4hihkhwx8imk800gkl8v"; type = "gem"; }; - version = "3.12.2"; + version = "3.12.0"; }; rspec-mocks = { dependencies = ["diff-lcs" "rspec-support"]; @@ -2791,10 +2790,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0sq2cc9pm5gq411y7iwfvzbmgv3g91lyf7y7cqn1lr3yf1v122nc"; + sha256 = "1yvwnb0x5d6d4ff3wlgahk0wcw72ic51gd2snr1xxc5ify41kabv"; type = "gem"; }; - version = "3.12.3"; + version = "3.12.0"; }; rspec-support = { groups = ["default"]; @@ -2812,10 +2811,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1jsiy93y5c2sx2sr5jmdah208idw038m2fpihgan4klmldm3r1pm"; + sha256 = "1xhm882zzs4z4ivknrymh6lgnd3p90b651dn0fp32dciajdxr9f1"; type = "gem"; }; - version = "1.45.1"; + version = "1.37.1"; }; rubocop-ast = { dependencies = ["parser"]; @@ -2823,10 +2822,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1zqk8dgjjhm0zll2rxqvvb8fl5vin7mmbc1ndn1a2q4276ri6ydc"; + sha256 = "1qiq3q66w57im0ryrvnd1yq0g2s2safhywpv94441kvc1amayjzy"; type = "gem"; }; - version = "1.26.0"; + version = "1.23.0"; }; rubocop-performance = { dependencies = ["rubocop" "rubocop-ast"]; @@ -2834,10 +2833,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1n7g0vg06ldjaq4f8c11c7yqy99zng1qdrkkk4kfziippy24yxnc"; + sha256 = "1h06a2asg8pjq7l0k885126n60y54rgw0qr957qarpv7qligzn4c"; type = "gem"; }; - version = "1.16.0"; + version = "1.15.0"; }; ruby-graphviz = { dependencies = ["rexml"]; @@ -2850,17 +2849,6 @@ }; version = "1.2.5"; }; - ruby-keychain = { - dependencies = ["ffi" "og-corefoundation"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1g57fr1r39bfh1r887hp87mawfg3miidagvpqyqq3l0152ya43wr"; - type = "gem"; - }; - version = "0.4.0"; - }; ruby-libvirt = { groups = ["default"]; platforms = []; @@ -2932,6 +2920,17 @@ }; version = "0.0.5"; }; + RubyInline = { + dependencies = ["ZenTest"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zq24qvkqzjsrcwyz9lp3pm602kqw08cp3g1acf3zy0nc7npvx9p"; + type = "gem"; + }; + version = "3.12.6"; + }; rubyzip = { groups = ["default"]; platforms = []; @@ -2947,10 +2946,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0wnfgxx59nq2wpvi8ll7bqw9x99x5hps6i38xdjrwbb5a3896d58"; + sha256 = "02h1cv73znwfgy61mqmfylcfvwyyp3lddiz3njgivfx234mpz50x"; type = "gem"; }; - version = "1.5.1"; + version = "1.5.0.1"; }; safe_yaml = { groups = ["default"]; @@ -3022,20 +3021,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ffbd7jimj73fwdg7gf26bfc41a06aqi7zrwj90pkkwxipjljrzl"; + sha256 = "1yzv7gn539aqwpada2mvfrnbdygr3d61ryp68ncp3kpx6nbz1x25"; type = "gem"; }; - version = "0.17.0"; + version = "0.16.0"; }; sequel = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1yf5sqw15gj5vmrbklw144y0wg8r92fwczfg64znwn61k9bz9j21"; + sha256 = "1qg80fqxs1rabsg3xrkfkkicnn1z2p02xsb1lxv78a6iw5p17d73"; type = "gem"; }; - version = "5.65.0"; + version = "5.61.0"; }; sequel_pg = { dependencies = ["pg" "sequel"]; @@ -3043,10 +3042,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "01j51vn47ynyhlxpgz6wj8swm3d8g1hrad1678s0sd43kh2hqxdg"; + sha256 = "15ndf1wr45vyqiyc3059f8zv0wp11i6xqfqclsa0v3qf739jb1zw"; type = "gem"; }; - version = "1.17.1"; + version = "1.17.0"; }; simplecov = { dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"]; @@ -3054,10 +3053,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "198kcbrjxhhzca19yrdcd6jjj9sb51aaic3b0sc3pwjghg3j49py"; + sha256 = "1hrv046jll6ad1s964gsmcq4hvkr3zzr6jc7z1mns22mvfpbc3cr"; type = "gem"; }; - version = "0.22.0"; + version = "0.21.2"; }; simplecov-html = { groups = ["default"]; @@ -3096,10 +3095,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ryfja9yd3fq8n1p5yi3qnd0pjk7bkycmxxmbb1bj0axlr1pdv20"; + sha256 = "0c2vmy0j5amy9fihs2gz2ssm4bdpqqh4llyjfl6qqqry7f87c6xz"; type = "gem"; }; - version = "3.0.5"; + version = "3.0.2"; }; slather = { dependencies = ["CFPropertyList" "activesupport" "clamp" "nokogiri" "xcodeproj"]; @@ -3107,10 +3106,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0kdigir21jinkkj4q3cjsswix26lmff1rmnwjz2ywc6y9d8ib9ak"; + sha256 = "0wy8ws5n2gvxgkncbhrp4vkwjcbphcczw4k7y3g2wfl8fdmv5b4n"; type = "gem"; }; - version = "2.7.4"; + version = "2.7.2"; }; slop = { groups = ["default"]; @@ -3148,10 +3147,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1pdy2f5phffknx98j2f5k72s52ayp456m3jkg08vx396yg59l0gi"; + sha256 = "0smcpi3x87chkdqdclhgh36xlbwm7r44r58m3k1w4mcikdwlpjl7"; type = "gem"; }; - version = "0.48.0"; + version = "0.47.2"; }; sqlite3 = { dependencies = ["mini_portile2"]; @@ -3159,10 +3158,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0f24qp50mc1qg8yvv7b3x73mh78d6mzd3b7rqib1ixfbsdiayx1x"; + sha256 = "1i95rgfxdj2rhxifps27dz7fjfdih5iyl7b01di9gdmh9m04ylk6"; type = "gem"; }; - version = "1.6.0"; + version = "1.5.3"; }; string_inflection = { groups = ["default"]; @@ -3180,10 +3179,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0zkq75hcqnxnipvccsd2f7vqcra6rplzvn1ds73sna6lcy8s6sxa"; + sha256 = "1im3kskcrmwa12q4pxilps7dyf9jlc82saasp6lkn5q7zqi7ilfh"; type = "gem"; }; - version = "6.0.0"; + version = "4.3.0"; }; syntax_tree-haml = { dependencies = ["haml" "prettier_print" "syntax_tree"]; @@ -3191,10 +3190,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0nnq6z8xhvcv3yc7rf64np3f8dx6j8gmvbi6ws3lwccq4w5cmqnk"; + sha256 = "0n2ag309fzz9qvj634aibv2khfc45vvsg1sra227ssn3xwcvx4vq"; type = "gem"; }; - version = "3.0.0"; + version = "2.0.0"; }; syntax_tree-rbs = { dependencies = ["prettier_print" "rbs" "syntax_tree"]; @@ -3212,30 +3211,31 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0yvchq3j0splz70796a27hr1v6ifhyab5ddc9fl1x734nhmsy4rb"; + sha256 = "0zf6cavsmj87lszy0b5mzw6mdg0dbsb7f52xy2fx06y9abv78xxw"; type = "gem"; }; - version = "1.1.3"; + version = "1.1.2"; }; temple = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "07k5wr2ypsmsbyc9d1plhdki4xr7vvggld8r1i49iljkrpx5nbqc"; + sha256 = "1kzp8c08jl137v62rafmr81b7hg01q3d1q70fr5y5cmmranfpml1"; type = "gem"; }; - version = "0.10.0"; + version = "0.9.1"; }; terminal-table = { + dependencies = ["unicode-display_width"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0hbmzfr17ji5ws5x5z3kypmb5irwwss7q7kkad0gs005ibqrxv0a"; + sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk"; type = "gem"; }; - version = "1.6.0"; + version = "1.8.0"; }; thor = { groups = ["default"]; @@ -3247,6 +3247,16 @@ }; version = "1.2.1"; }; + thread_safe = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; + type = "gem"; + }; + version = "0.3.6"; + }; thrift = { groups = ["default"]; platforms = []; @@ -3293,10 +3303,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0adc8qblz8ii668r3rksjx83p675iryh52rvdvysimx2hkbasj7d"; + sha256 = "0697qz1akblf8r3wi0s2dsjh468hfsd57fb0mrp93z35y2ni6bhh"; type = "gem"; }; - version = "1.6.12"; + version = "1.6.11"; }; tty-color = { groups = ["default"]; @@ -3341,15 +3351,15 @@ version = "1.4.0"; }; tzinfo = { - dependencies = ["concurrent-ruby"]; + dependencies = ["thread_safe"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "16w2g84dzaf3z13gxyzlzbf748kylk5bdgg3n1ipvkvvqy685bwd"; + sha256 = "0rw89y3zj0wcybcyiazgcprg6hi42k8ipp1n2lbl95z1dmpgmly6"; type = "gem"; }; - version = "2.0.6"; + version = "1.2.10"; }; uglifier = { dependencies = ["execjs"]; @@ -3388,10 +3398,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1gi82k102q7bkmfi7ggn9ciypn897ylln1jk9q67kjhr39fj043a"; + sha256 = "1204c1jx2g89pc25qk5150mk7j5k90692i7ihgfzqnad6qni74h2"; type = "gem"; }; - version = "2.4.2"; + version = "1.8.0"; }; uuid4r = { groups = ["default"]; @@ -3472,19 +3482,29 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "028ld9qmgdllxrl7d0qkl65s58wb1n3gv8yjs28g43a8b1hplxk1"; + sha256 = "18hihq3hxs2ywxh3ixm366cawwy4k733mh680ldaa1vxjiraxj58"; type = "gem"; }; - version = "2.6.7"; + version = "2.6.1"; + }; + ZenTest = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vss0ldskqprnlvl5pczcl8p346p2ib1sc6hyprbprh6gjq4v16y"; + type = "gem"; + }; + version = "4.12.1"; }; zookeeper = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1hc87pbmgc53lksa1aql61kxn9d2kjzmlhnjxa5rcn01qhm3pkvg"; + sha256 = "0gbmc76cxi4nlhrdch8ykinyzp5f2m6d272g8xhn5rjg3fjp15l1"; type = "gem"; }; - version = "1.5.5"; + version = "1.5.3"; }; } From 5fc03b04a15b5743f0bb9fcc1a5194a5db376ad4 Mon Sep 17 00:00:00 2001 From: lom Date: Thu, 16 Feb 2023 18:42:26 -0500 Subject: [PATCH 24/45] wiki-tui: 0.6.1 -> 0.6.3 --- pkgs/misc/wiki-tui/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/misc/wiki-tui/default.nix b/pkgs/misc/wiki-tui/default.nix index 9131f66491d5..332577489faf 100644 --- a/pkgs/misc/wiki-tui/default.nix +++ b/pkgs/misc/wiki-tui/default.nix @@ -10,13 +10,13 @@ rustPlatform.buildRustPackage rec { pname = "wiki-tui"; - version = "0.6.1"; + version = "0.6.3"; src = fetchFromGitHub { owner = "Builditluc"; repo = pname; rev = "v${version}"; - hash = "sha256-WiyRBF3rWLpOZ8mxT89ImRL++Oq9+b88oSKjr4tzCGs="; + hash = "sha256-vBfD5SQnVx/UqRoyGJc4PINW/wKuHjpiUEz3WiRCR9A="; }; nativeBuildInputs = [ @@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec { Security ]; - cargoHash = "sha256-R9xxIDqkU7FeulpD7PUM6aHgA67PVgqxHKYtdrjdaUo="; + cargoHash = "sha256-xbjUdQs2t+cjplAlNVRN1Zw5CeAYv4+ir4Pvrt+/n9k="; meta = with lib; { description = "A simple and easy to use Wikipedia Text User Interface"; From 0372c798146ecbc3e8b166829fbc0ff18179c3cc Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 17 Feb 2023 01:16:21 +0100 Subject: [PATCH 25/45] python310Packages.elastic-apm: 6.14.0 -> 6.15.0 Changelog: https://github.com/elastic/apm-agent-python/releases/tag/v6.15.0 --- .../python-modules/elastic-apm/default.nix | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/pkgs/development/python-modules/elastic-apm/default.nix b/pkgs/development/python-modules/elastic-apm/default.nix index 0f44f7b8fb02..b7286ad39c26 100644 --- a/pkgs/development/python-modules/elastic-apm/default.nix +++ b/pkgs/development/python-modules/elastic-apm/default.nix @@ -1,5 +1,4 @@ { lib -, asynctest , aiohttp , blinker , buildPythonPackage @@ -30,7 +29,7 @@ buildPythonPackage rec { pname = "elastic-apm"; - version = "6.14.0"; + version = "6.15.0"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -39,7 +38,7 @@ buildPythonPackage rec { owner = "elastic"; repo = "apm-agent-python"; rev = "refs/tags/v${version}"; - hash = "sha256-T1TWILlJZffTISVt8YSi8ZYSXOHieh6SV55j8W333LQ="; + hash = "sha256-Uoybe6Mx7ZLs2GaOnl278Xj6KlTEgrOuNxMRmPpSq8k="; }; propagatedBuildInputs = [ @@ -54,22 +53,18 @@ buildPythonPackage rec { ]; nativeCheckInputs = [ - pytestCheckHook - ]; - - checkInputs = [ - asynctest ecs-logging + httpx jinja2 jsonschema Logbook mock - httpx pytest-asyncio pytest-bdd - pytest-mock pytest-localserver + pytest-mock pytest-random-order + pytestCheckHook sanic-testing structlog webob From 8f5bd5c6354fa1f97b2b99dabd471dac30aba726 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 17 Feb 2023 01:07:37 +0000 Subject: [PATCH 26/45] python310Packages.pynvml: 11.4.1 -> 11.5.0 --- pkgs/development/python-modules/pynvml/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pynvml/default.nix b/pkgs/development/python-modules/pynvml/default.nix index 8f02bcdbe816..bad74b2aed9c 100644 --- a/pkgs/development/python-modules/pynvml/default.nix +++ b/pkgs/development/python-modules/pynvml/default.nix @@ -9,12 +9,12 @@ buildPythonPackage rec { pname = "pynvml"; - version = "11.4.1"; + version = "11.5.0"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "b2e4a33b80569d093b513f5804db0c7f40cfc86f15a013ae7a8e99c5e175d5dd"; + sha256 = "sha256-0CeyG5WxCIufwngRf59ht8Z/jjOnh+n4P3NfD3GsMtA="; }; patches = [ From 83aa89faa9e31442c26e106b7bcb1cb2d866441b Mon Sep 17 00:00:00 2001 From: Daniel Hill Date: Thu, 16 Feb 2023 15:51:40 +1300 Subject: [PATCH 27/45] obs-vkcapture: fix xcursor not rendering obs-vkcapture has an optional dependency on libxcb which is required for rendering the cursor for x11 clients. Signed-off-by: Daniel Hill --- pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nix b/pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nix index ba0e8a818263..c156ac288b66 100644 --- a/pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nix +++ b/pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nix @@ -8,6 +8,7 @@ , wayland-scanner , obs-studio , libX11 +, libxcb , vulkan-headers , vulkan-loader , libGL @@ -35,6 +36,7 @@ stdenv.mkDerivation rec { buildInputs = [ libGL libX11 + libxcb vulkan-headers vulkan-loader wayland From 00371102782b231060044411be21d23da116f381 Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Fri, 17 Feb 2023 04:20:00 +0000 Subject: [PATCH 28/45] nodejs-14_x: 14.21.2 -> 14.21.3 https://github.com/nodejs/node/releases/tag/v14.21.3 --- pkgs/development/web/nodejs/v14.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/web/nodejs/v14.nix b/pkgs/development/web/nodejs/v14.nix index 4563dd7a045a..e7dec1c12f66 100644 --- a/pkgs/development/web/nodejs/v14.nix +++ b/pkgs/development/web/nodejs/v14.nix @@ -8,7 +8,7 @@ let in buildNodejs { inherit enableNpm; - version = "14.21.2"; - sha256 = "00zzl43iis8mr8x48hww5ncj8mj5dmpn05rq7ihpffkp2q7rmw6q"; + version = "14.21.3"; + sha256 = "sha256-RY7AkuYK1wDdzwectj1DXBXaTHuz0/mbmo5YqZ5UB14="; patches = lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff; } From 4313c6360fba1111d5f25994d4c90a7aa68253a3 Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Fri, 17 Feb 2023 04:20:00 +0000 Subject: [PATCH 29/45] nodejs-16_x: 16.19.0 -> 16.19.1 https://github.com/nodejs/node/releases/tag/v16.19.1 --- pkgs/development/web/nodejs/v16.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/web/nodejs/v16.nix b/pkgs/development/web/nodejs/v16.nix index c8241ababc0d..725bbc690df1 100644 --- a/pkgs/development/web/nodejs/v16.nix +++ b/pkgs/development/web/nodejs/v16.nix @@ -10,8 +10,8 @@ let in buildNodejs { inherit enableNpm; - version = "16.19.0"; - sha256 = "01k72p0hp4lhlpz1syd9cbkm2gpfww0hn10xdpmzd4i3x8dfq7sg"; + version = "16.19.1"; + sha256 = "sha256-F/txZAYZgSWzDJTdPRdWIHspdwViav4W2NxHmmWh2LU="; patches = [ ./disable-darwin-v8-system-instrumentation.patch ./bypass-darwin-xcrun-node16.patch From cfdcb8d7fa7ae40616ec304eac07048d5a9e28ea Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Fri, 17 Feb 2023 04:20:00 +0000 Subject: [PATCH 30/45] nodejs-18_x: 18.14.0 -> 18.14.1 https://github.com/nodejs/node/releases/tag/v18.14.1 --- pkgs/development/web/nodejs/v18.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/web/nodejs/v18.nix b/pkgs/development/web/nodejs/v18.nix index 86accf5977b3..2a5a5ae3f677 100644 --- a/pkgs/development/web/nodejs/v18.nix +++ b/pkgs/development/web/nodejs/v18.nix @@ -9,8 +9,8 @@ let in buildNodejs { inherit enableNpm; - version = "18.14.0"; - sha256 = "sha256-Qu+d0xmT1cjoKwqwlpE1CT5qKW76J7G+mvwErADwJno="; + version = "18.14.1"; + sha256 = "sha256-7sNTQ4Jm/QrvU6lEa+ELMu5udNCOMt1UVLOC/2eT2gQ="; patches = [ ./disable-darwin-v8-system-instrumentation.patch ./bypass-darwin-xcrun-node16.patch From d42631d6c59fabbb3b4a6109cce8f22e75761b2f Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Fri, 17 Feb 2023 04:20:00 +0000 Subject: [PATCH 31/45] nodejs-19_x: 19.6.0 -> 19.6.1 https://github.com/nodejs/node/releases/tag/v19.6.1 --- pkgs/development/web/nodejs/v19.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/web/nodejs/v19.nix b/pkgs/development/web/nodejs/v19.nix index 85739c36c132..f344324291c3 100644 --- a/pkgs/development/web/nodejs/v19.nix +++ b/pkgs/development/web/nodejs/v19.nix @@ -9,8 +9,8 @@ let in buildNodejs { inherit enableNpm; - version = "19.6.0"; - sha256 = "sha256-UZxtVCqfmW8AwaPTsuXPUrfbmY2V9s7VqJPRagPeM+o="; + version = "19.6.1"; + sha256 = "sha256-dxDmwoUclWvkkm/CVAZ48/3fjm04Juo6qbjCjW6omps="; patches = [ ./revert-arm64-pointer-auth.patch ./disable-darwin-v8-system-instrumentation-node19.patch From 214add38535093a72200acb7587eab797178622d Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Fri, 17 Feb 2023 04:20:00 +0000 Subject: [PATCH 32/45] flexget: 3.5.23 -> 3.5.24 --- pkgs/applications/networking/flexget/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix index dca8f277867a..818ceb74ea0c 100644 --- a/pkgs/applications/networking/flexget/default.nix +++ b/pkgs/applications/networking/flexget/default.nix @@ -5,7 +5,7 @@ python3Packages.buildPythonApplication rec { pname = "flexget"; - version = "3.5.23"; + version = "3.5.24"; format = "pyproject"; # Fetch from GitHub in order to use `requirements.in` @@ -13,7 +13,7 @@ python3Packages.buildPythonApplication rec { owner = "flexget"; repo = "flexget"; rev = "refs/tags/v${version}"; - hash = "sha256-VWpcXwiQHpQ3X/rmm6fWfPfuUoUmWQMfOq5A87nED3A="; + hash = "sha256-4RQBaqC3nmyEq9Kqg0n9KIN9Gw4Z+uCl6hQeqo/NTls="; }; postPatch = '' From ee2ae036a1967332e22dcad2ca4ee5ebccf80732 Mon Sep 17 00:00:00 2001 From: Zhong Jianxin Date: Fri, 17 Feb 2023 14:36:20 +0800 Subject: [PATCH 33/45] kubernetes-helmPlugins.helm-secrets: 3.8.3 -> 4.2.2 --- .../networking/cluster/helm/plugins/helm-secrets.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix index 7d9135045f17..39a03eceacaa 100644 --- a/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix +++ b/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "helm-secrets"; - version = "3.8.3"; + version = "4.2.2"; src = fetchFromGitHub { owner = "jkroepke"; repo = pname; rev = "v${version}"; - hash = "sha256-FpF/d+e5T6nb0OENaYLY+3ATZ+qcAeih5/yKI+AtfKA="; + hash = "sha256-aqRgny1vU+dxpZpzwL4aSbYfTGrZbRffQy81mMBvnJk="; }; nativeBuildInputs = [ makeWrapper ]; @@ -17,9 +17,9 @@ stdenv.mkDerivation rec { # NOTE: helm-secrets is comprised of shell scripts. dontBuild = true; - # NOTE: Remove the install and upgrade hooks. + # NOTE: Fix version string postPatch = '' - sed -i '/^hooks:/,+2 d' plugin.yaml + sed -i 's/^version:.*/version: "${version}"/' plugin.yaml ''; installPhase = '' From 2c6683291e6b9f789554bf0d62bb89b3fd9202d9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 17 Feb 2023 10:47:33 +0000 Subject: [PATCH 34/45] cargo-valgrind: 2.1.0 -> 2.1.1 --- pkgs/development/tools/rust/cargo-valgrind/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/rust/cargo-valgrind/default.nix b/pkgs/development/tools/rust/cargo-valgrind/default.nix index af7abb9a1abf..7b0647c14c45 100644 --- a/pkgs/development/tools/rust/cargo-valgrind/default.nix +++ b/pkgs/development/tools/rust/cargo-valgrind/default.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage rec { pname = "cargo-valgrind"; - version = "2.1.0"; + version = "2.1.1"; src = fetchFromGitHub { owner = "jfrimmel"; repo = "cargo-valgrind"; rev = "v${version}"; - sha256 = "sha256-FCz15kMSKckifYWSTMGqJbRpZ8X/AM5dSw46dg8ERcY="; + sha256 = "sha256-l/1paghG/ARD0JfzNh0xj2UD5kW6FddM8Xrd/FCygYc="; }; - cargoSha256 = "sha256-csSUe2qUIN2xKOMHWyM56FZyCwKPdfAI0NrFiDOtRiE="; + cargoSha256 = "sha256-9/kIIZDIsOhUvRT3TyXN5PGFUB+a8m2yXmzBbsPUK28="; passthru = { updateScript = nix-update-script { }; From 16edc68ccba48392c489b187a36d8f677d5cc8e1 Mon Sep 17 00:00:00 2001 From: David Izquierdo Date: Fri, 17 Feb 2023 12:03:30 +0100 Subject: [PATCH 35/45] maintaniers: remove dizfer --- maintainers/maintainer-list.nix | 6 ------ pkgs/development/libraries/tbb/default.nix | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 36762361d104..04658beb7f81 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -3762,12 +3762,6 @@ githubId = 14034137; name = "Mostly Void"; }; - dizfer = { - email = "david@izquierdofernandez.com"; - github = "DIzFer"; - githubId = 8852888; - name = "David Izquierdo"; - }; djacu = { email = "daniel.n.baker@gmail.com"; github = "djacu"; diff --git a/pkgs/development/libraries/tbb/default.nix b/pkgs/development/libraries/tbb/default.nix index e0c48bc6dcef..ec22952cc42b 100644 --- a/pkgs/development/libraries/tbb/default.nix +++ b/pkgs/development/libraries/tbb/default.nix @@ -101,6 +101,6 @@ stdenv.mkDerivation rec { details and threading mechanisms for scalability and performance. ''; platforms = platforms.unix; - maintainers = with maintainers; [ thoughtpolice dizfer ]; + maintainers = with maintainers; [ thoughtpolice ]; }; } From 609af8dfbc324dee20447b89a49f4b906f4d8299 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 17 Feb 2023 11:04:50 +0000 Subject: [PATCH 36/45] python310Packages.ansible-doctor: 2.0.0 -> 2.0.1 --- pkgs/development/python-modules/ansible-doctor/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/ansible-doctor/default.nix b/pkgs/development/python-modules/ansible-doctor/default.nix index 0ddd26b7ffb4..96f381f56d03 100644 --- a/pkgs/development/python-modules/ansible-doctor/default.nix +++ b/pkgs/development/python-modules/ansible-doctor/default.nix @@ -18,7 +18,7 @@ buildPythonPackage rec { pname = "ansible-doctor"; - version = "2.0.0"; + version = "2.0.1"; format = "pyproject"; disabled = pythonOlder "3.7"; @@ -27,7 +27,7 @@ buildPythonPackage rec { owner = "thegeeklab"; repo = "ansible-doctor"; rev = "refs/tags/v${version}"; - hash = "sha256-P2PC90coR+FpQkO+SUon72bDLTYJhZ5qbcOdCKuFFwE="; + hash = "sha256-xUg7+7oWxIVdKLOGIE1uxh7SSjkz/w0//OyMF1HhEJk="; }; pythonRelaxDeps = true; From bc485d9e26201f28132af6573ae34a00be3d53e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw=20Pitucha?= Date: Fri, 17 Feb 2023 22:30:42 +1100 Subject: [PATCH 37/45] fnc: fix clang build Use the gcc-specific option on gcc only. --- pkgs/applications/version-management/fnc/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/version-management/fnc/default.nix b/pkgs/applications/version-management/fnc/default.nix index 7fd1b34d4560..b74200a6919c 100644 --- a/pkgs/applications/version-management/fnc/default.nix +++ b/pkgs/applications/version-management/fnc/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { makeFlags = [ "PREFIX=$(out)" ]; - NIX_CFLAGS_COMPILE = [ + NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isGNU [ # Needed with GCC 12 "-Wno-error=maybe-uninitialized" ]; From 2b71a590f45f6737d42fcf057914360f1d333473 Mon Sep 17 00:00:00 2001 From: Ingo Blechschmidt Date: Fri, 17 Feb 2023 13:40:00 +0100 Subject: [PATCH 38/45] yt-dlp: 2023.1.6 -> 2023.2.17 --- pkgs/tools/misc/yt-dlp/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/misc/yt-dlp/default.nix b/pkgs/tools/misc/yt-dlp/default.nix index f99632fac2de..09771083f1c4 100644 --- a/pkgs/tools/misc/yt-dlp/default.nix +++ b/pkgs/tools/misc/yt-dlp/default.nix @@ -20,11 +20,11 @@ buildPythonPackage rec { # The websites yt-dlp deals with are a very moving target. That means that # downloads break constantly. Because of that, updates should always be backported # to the latest stable release. - version = "2023.1.6"; + version = "2023.2.17"; src = fetchPypi { inherit pname version; - sha256 = "sha256-Ong6NnUc7RY2j0CzuoZas5swaJ7YBW8e4jRqo4OaCw8="; + sha256 = "sha256-mvkt5e/8GTvbUSFtnr8oh02WGA0gL651Kw2fKmM4Dzo="; }; propagatedBuildInputs = [ brotli certifi mutagen pycryptodomex websockets ]; From b89976519b35b08c0ddd529c22f47a550ebb7dfd Mon Sep 17 00:00:00 2001 From: Mostly Void Date: Fri, 17 Feb 2023 13:52:34 +0100 Subject: [PATCH 39/45] rqlite: init at 7.6.1 (#187962) * rqlite: init at 7.6.1 * Update pkgs/servers/sql/rqlite/default.nix Co-authored-by: Sandro --------- Co-authored-by: Sandro --- pkgs/servers/sql/rqlite/default.nix | 37 +++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 39 insertions(+) create mode 100644 pkgs/servers/sql/rqlite/default.nix diff --git a/pkgs/servers/sql/rqlite/default.nix b/pkgs/servers/sql/rqlite/default.nix new file mode 100644 index 000000000000..713072953be2 --- /dev/null +++ b/pkgs/servers/sql/rqlite/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "rqlite"; + version = "7.6.1"; + + src = fetchFromGitHub { + owner = "rqlite"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-WvEnMAz3dKG8xMlQzm7E0TmAgvsrRED50bb4Ved1+4U="; + }; + + vendorSha256 = "sha256-qirt5g7dcjAnceejrBnfhDpA4LSEj7eOuznSlfUBUgo="; + + subPackages = [ "cmd/rqlite" "cmd/rqlited" "cmd/rqbench" ]; + + # Leaving other flags from https://github.com/rqlite/rqlite/blob/master/package.sh + # since automatically retriving those is nontrivial and inessential + ldflags = [ + "-s" "-w" + "-X github.com/rqlite/rqlite/cmd.Version=${src.rev}" + ]; + + # Tests are in a different subPackage which fails trying to access the network + doCheck = false; + + meta = with lib; { + description = "The lightweight, distributed relational database built on SQLite"; + homepage = "https://github.com/rqlite/rqlite"; + license = licenses.mit; + maintainers = with maintainers; [ dit7ya ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 651d095f8621..34a70696e1c4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -23014,6 +23014,8 @@ with pkgs; rover = callPackage ../development/tools/rover { }; + rqlite = callPackage ../servers/sql/rqlite { }; + rshell = python3.pkgs.callPackage ../development/embedded/rshell { }; rttr = callPackage ../development/libraries/rttr { }; From f2544dc85f4532fe8fabde0dce3a061b3dd336c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Fri, 17 Feb 2023 14:05:18 +0100 Subject: [PATCH 40/45] mdcat: add mdless symlink and install completions Closes #215459 --- pkgs/tools/text/mdcat/default.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/text/mdcat/default.nix b/pkgs/tools/text/mdcat/default.nix index 47f74684c6f1..e8a7e4ecf5a2 100644 --- a/pkgs/tools/text/mdcat/default.nix +++ b/pkgs/tools/text/mdcat/default.nix @@ -42,10 +42,14 @@ rustPlatform.buildRustPackage rec { postInstall = '' installManPage $releaseDir/build/mdcat-*/out/mdcat.1 - installShellCompletion \ - --bash $releaseDir/build/mdcat-*/out/completions/mdcat.bash \ - --fish $releaseDir/build/mdcat-*/out/completions/mdcat.fish \ - --zsh $releaseDir/build/mdcat-*/out/completions/_mdcat + ln -sr $out/bin/{mdcat,mdless} + + for bin in mdcat mdless; do + installShellCompletion \ + --bash $releaseDir/build/mdcat-*/out/completions/$bin.bash \ + --fish $releaseDir/build/mdcat-*/out/completions/$bin.fish \ + --zsh $releaseDir/build/mdcat-*/out/completions/_$bin + done ''; meta = with lib; { From 0c4ece0585d4c22666531729b7e6afe35ac4c307 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 17 Feb 2023 13:08:21 +0000 Subject: [PATCH 41/45] python310Packages.arcam-fmj: 1.2.0 -> 1.2.1 --- pkgs/development/python-modules/arcam-fmj/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/arcam-fmj/default.nix b/pkgs/development/python-modules/arcam-fmj/default.nix index 1169e1ca341f..7cba156bd684 100644 --- a/pkgs/development/python-modules/arcam-fmj/default.nix +++ b/pkgs/development/python-modules/arcam-fmj/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "arcam-fmj"; - version = "1.2.0"; + version = "1.2.1"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "elupus"; repo = "arcam_fmj"; rev = "refs/tags/${version}"; - hash = "sha256-stoxDb25K/h55rwR0faWO0AOjSJmjZNbMbOAuUE2iSM="; + hash = "sha256-nRInKju3Q4En+SiSl6DOeeTRK56TzKPweoVXsvzs45I="; }; propagatedBuildInputs = [ From 61f8e0511f279599f340eec22a8f967e2bfc376a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 17 Feb 2023 13:27:43 +0000 Subject: [PATCH 42/45] python310Packages.simpleeval: 0.9.12 -> 0.9.13 --- pkgs/development/python-modules/simpleeval/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/simpleeval/default.nix b/pkgs/development/python-modules/simpleeval/default.nix index 28e5c2578602..6c570419aa20 100644 --- a/pkgs/development/python-modules/simpleeval/default.nix +++ b/pkgs/development/python-modules/simpleeval/default.nix @@ -7,14 +7,14 @@ buildPythonPackage rec { pname = "simpleeval"; - version = "0.9.12"; + version = "0.9.13"; format = "pyproject"; src = fetchFromGitHub { owner = "danthedeckie"; repo = pname; - rev = version; - sha256 = "0khgl729q5133fgc00d550f4r77707rkkn7r56az4v8bvx0q8xp4"; + rev = "refs/tags/${version}"; + sha256 = "sha256-I1GILYPE6OyotgRe0Ek/iHHv6q9/b/MlcTxMAtfZD80="; }; nativeBuildInputs = [ From 6ebfe7e1c28b7b702a90ebaa2ca97fa2f4a9e037 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Fri, 17 Feb 2023 22:03:48 +0800 Subject: [PATCH 43/45] =?UTF-8?q?webkitgtk:=202.38.4=20=E2=86=92=202.38.5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://webkitgtk.org/2023/02/15/webkitgtk2.38.5-released.html https://webkitgtk.org/security/WSA-2023-0002.html CVE-2023-23529 --- pkgs/development/libraries/webkitgtk/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix index fdefeb86a046..73073a6b7117 100644 --- a/pkgs/development/libraries/webkitgtk/default.nix +++ b/pkgs/development/libraries/webkitgtk/default.nix @@ -69,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "webkitgtk"; - version = "2.38.4"; + version = "2.38.5"; name = "${finalAttrs.pname}-${finalAttrs.version}+abi=${if lib.versionAtLeast gtk3.version "4.0" then "5.0" else "4.${if lib.versions.major libsoup.version == "2" then "0" else "1"}"}"; outputs = [ "out" "dev" "devdoc" ]; @@ -80,7 +80,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://webkitgtk.org/releases/webkitgtk-${finalAttrs.version}.tar.xz"; - hash = "sha256-T0fqKaLU1fFe7z3J4tbG8Gfo3oY6P2RFXhzPlpPMHTY="; + hash = "sha256-QMIMQwIidN9Yk/IrEFT6iUw+6gVzibsIruCMWwuwwac="; }; patches = lib.optionals stdenv.isLinux [ From f14e3fef033f1b6048a951f7395db841c18cdd64 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 17 Feb 2023 16:45:47 +0100 Subject: [PATCH 44/45] python310Packages.simpleeval: add changelog to meta --- pkgs/development/python-modules/simpleeval/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/simpleeval/default.nix b/pkgs/development/python-modules/simpleeval/default.nix index 6c570419aa20..57693fb3791c 100644 --- a/pkgs/development/python-modules/simpleeval/default.nix +++ b/pkgs/development/python-modules/simpleeval/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { owner = "danthedeckie"; repo = pname; rev = "refs/tags/${version}"; - sha256 = "sha256-I1GILYPE6OyotgRe0Ek/iHHv6q9/b/MlcTxMAtfZD80="; + hash = "sha256-I1GILYPE6OyotgRe0Ek/iHHv6q9/b/MlcTxMAtfZD80="; }; nativeBuildInputs = [ @@ -36,6 +36,7 @@ buildPythonPackage rec { meta = with lib; { description = "Simple, safe single expression evaluator library"; homepage = "https://github.com/danthedeckie/simpleeval"; + changelog = "https://github.com/danthedeckie/simpleeval/releases/tag/${version}"; license = licenses.mit; maintainers = with maintainers; [ johbo ]; }; From 427d0b71b6f788769320391cb779f6387d1ecd9c Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Fri, 17 Feb 2023 18:32:43 +0100 Subject: [PATCH 45/45] protonup-qt: Fix CI This change unblocks OfBorg. --- pkgs/applications/misc/protonup-qt/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/misc/protonup-qt/default.nix b/pkgs/applications/misc/protonup-qt/default.nix index 50cb5c9cd003..72997d1e09a3 100644 --- a/pkgs/applications/misc/protonup-qt/default.nix +++ b/pkgs/applications/misc/protonup-qt/default.nix @@ -28,6 +28,6 @@ appimageTools.wrapType2 rec { sourceProvenance = with sourceTypes; [ binaryNativeCode ]; mainProgram = "protonup-qt"; platforms = [ "x86_64-linux" ]; - maintainers = with maintainers; [ quasigod-io ]; + maintainers = with maintainers; [ ]; }; }