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/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 6e9e3faf60e6..04658beb7f81 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -1417,6 +1417,12 @@
githubId = 12958979;
name = "Mika Naylor";
};
+ avakhrenev = {
+ email = "avakhrenev@gmail.com";
+ github = "avakhrenev";
+ githubId = 1060224;
+ name = "Alexey Vakhrenev";
+ };
avaq = {
email = "nixpkgs@account.avaq.it";
github = "Avaq";
@@ -3756,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/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/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 e0bcec1ea6b5..8c71e5108799 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"
''
@@ -148,70 +98,102 @@ 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 ];
+ { 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/* .
- xmllint --xinclude --output ./manual-combined.xml ./manual.xml
- xmllint --xinclude --noxincludenode \
- --output ./man-pages-combined.xml ./man-pages.xml
+ 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
- # 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
+ nixos-render-docs manual docbook \
+ --manpage-urls ${manpageUrls} \
+ --revision ${lib.escapeShellArg revision} \
+ ./manual.md \
+ ./manual-combined.xml
- # 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 {
- 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"];
}
@@ -248,8 +230,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.
@@ -300,7 +281,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
diff --git a/nixos/doc/manual/development/developing-the-test-driver.chapter.md b/nixos/doc/manual/development/developing-the-test-driver.chapter.md
new file mode 100644
index 000000000000..4b70fe00af47
--- /dev/null
+++ b/nixos/doc/manual/development/developing-the-test-driver.chapter.md
@@ -0,0 +1,43 @@
+
+# Developing the NixOS Test Driver {#chap-developing-the-test-driver}
+
+The NixOS test framework is a project of its own.
+
+It consists of roughly the following components:
+
+ - `nixos/lib/test-driver`: The Python framework that sets up the test and runs the [`testScript`](#test-opt-testScript)
+ - `nixos/lib/testing`: The Nix code responsible for the wiring, written using the (NixOS) Module System.
+
+These components are exposed publicly through:
+
+ - `nixos/lib/default.nix`: The public interface that exposes the `nixos/lib/testing` entrypoint.
+ - `flake.nix`: Exposes the `lib.nixos`, including the public test interface.
+
+Beyond the test driver itself, its integration into NixOS and Nixpkgs is important.
+
+ - `pkgs/top-level/all-packages.nix`: Defines the `nixosTests` attribute, used
+ by the package `tests` attributes and OfBorg.
+ - `nixos/release.nix`: Defines the `tests` attribute built by Hydra, independently, but analogous to `nixosTests`
+ - `nixos/release-combined.nix`: Defines which tests are channel blockers.
+
+Finally, we have legacy entrypoints that users should move away from, but are cared for on a best effort basis.
+These include `pkgs.nixosTest`, `testing-python.nix` and `make-test-python.nix`.
+
+## Testing changes to the test framework {#sec-test-the-test-framework}
+
+When making significant changes to the test framework, we run the tests on Hydra, to avoid disrupting the larger NixOS project.
+
+For this, we use the `python-test-refactoring` branch in the `NixOS/nixpkgs` repository, and its [corresponding Hydra jobset](https://hydra.nixos.org/jobset/nixos/python-test-refactoring).
+This branch is used as a pointer, and not as a feature branch.
+
+1. Rebase the PR onto a recent, good evaluation of `nixos-unstable`
+2. Create a baseline evaluation by force-pushing this revision of `nixos-unstable` to `python-test-refactoring`.
+3. Note the evaluation number (we'll call it ``)
+4. Push the PR to `python-test-refactoring` and evaluate the PR on Hydra
+5. Create a comparison URL by navigating to the latest build of the PR and adding to the URL `?compare=`. This is not necessary for the evaluation that comes right after the baseline.
+
+Review the removed tests and newly failed tests using the constructed URL; otherwise you will accidentally compare iterations of the PR instead of changes to the PR base.
+
+As we currently have some flaky tests, newly failing tests are expected, but should be reviewed to make sure that
+ - The number of failures did not increase significantly.
+ - All failures that do occur can reasonably be assumed to fail for a different reason than the changes.
diff --git a/nixos/doc/manual/development/development.md b/nixos/doc/manual/development/development.md
new file mode 100644
index 000000000000..76f405c3b29c
--- /dev/null
+++ b/nixos/doc/manual/development/development.md
@@ -0,0 +1,15 @@
+# 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
+developing-the-test-driver.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/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.
+
+
+
+
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/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
diff --git a/nixos/lib/testing/meta.nix b/nixos/lib/testing/meta.nix
index 65754fe3c541..805b7520edff 100644
--- a/nixos/lib/testing/meta.nix
+++ b/nixos/lib/testing/meta.nix
@@ -22,7 +22,7 @@ in
};
timeout = lib.mkOption {
type = types.nullOr types.int;
- default = null; # NOTE: null values are filtered out by `meta`.
+ default = 3600; # 1 hour
description = mdDoc ''
The [{option}`test`](#test-opt-test)'s [`meta.timeout`](https://nixos.org/manual/nixpkgs/stable/#var-meta-timeout) in seconds.
'';
diff --git a/nixos/modules/config/no-x-libs.nix b/nixos/modules/config/no-x-libs.nix
index 9a83b2973b59..eb1e41a3d8dc 100644
--- a/nixos/modules/config/no-x-libs.nix
+++ b/nixos/modules/config/no-x-libs.nix
@@ -67,6 +67,7 @@ with lib;
stoken = super.stoken.override { withGTK3 = false; };
# translateManpages -> perlPackages.po4a -> texlive-combined-basic -> texlive-core-big -> libX11
util-linux = super.util-linux.override { translateManpages = false; };
+ vim-full = super.vim-full.override { guiSupport = false; };
zbar = super.zbar.override { enableVideo = false; withXorg = false; };
}));
};
diff --git a/nixos/modules/services/hardware/kanata.nix b/nixos/modules/services/hardware/kanata.nix
index 84265eb8f947..bb730037277b 100644
--- a/nixos/modules/services/hardware/kanata.nix
+++ b/nixos/modules/services/hardware/kanata.nix
@@ -8,19 +8,9 @@ let
keyboard = {
options = {
devices = mkOption {
- type = types.addCheck (types.listOf types.str)
- (devices: (length devices) > 0);
+ type = types.listOf types.str;
example = [ "/dev/input/by-id/usb-0000_0000-event-kbd" ];
- # TODO replace note with tip, which has not been implemented yet in
- # nixos/lib/make-options-doc/mergeJSON.py
- description = mdDoc ''
- Paths to keyboard devices.
-
- ::: {.note}
- To avoid unnecessary triggers of the service unit, unplug devices in
- the order of the list.
- :::
- '';
+ description = mdDoc "Paths to keyboard devices.";
};
config = mkOption {
type = types.lines;
@@ -44,8 +34,10 @@ let
cap (tap-hold 100 100 caps lctl))
'';
description = mdDoc ''
- Configuration other than `defcfg`. See [example config
- files](https://github.com/jtroo/kanata) for more information.
+ Configuration other than `defcfg`.
+
+ See [example config files](https://github.com/jtroo/kanata)
+ for more information.
'';
};
extraDefCfg = mkOption {
@@ -53,8 +45,12 @@ let
default = "";
example = "danger-enable-cmd yes";
description = mdDoc ''
- Configuration of `defcfg` other than `linux-dev`. See [example
- config files](https://github.com/jtroo/kanata) for more information.
+ Configuration of `defcfg` other than `linux-dev` (generated
+ from the devices option) and
+ `linux-continue-if-no-devs-found` (hardcoded to be yes).
+
+ See [example config files](https://github.com/jtroo/kanata)
+ for more information.
'';
};
extraArgs = mkOption {
@@ -67,8 +63,7 @@ let
default = null;
example = 6666;
description = mdDoc ''
- Port to run the notification server on. `null` will not run the
- server.
+ Port to run the TCP server on. `null` will not run the server.
'';
};
};
@@ -76,28 +71,23 @@ let
mkName = name: "kanata-${name}";
- mkDevices = devices: concatStringsSep ":" devices;
+ mkDevices = devices:
+ optionalString ((length devices) > 0) "linux-dev ${concatStringsSep ":" devices}";
mkConfig = name: keyboard: pkgs.writeText "${mkName name}-config.kdb" ''
(defcfg
${keyboard.extraDefCfg}
- linux-dev ${mkDevices keyboard.devices})
+ ${mkDevices keyboard.devices}
+ linux-continue-if-no-devs-found yes)
${keyboard.config}
'';
mkService = name: keyboard: nameValuePair (mkName name) {
- description = "kanata for ${mkDevices keyboard.devices}";
-
- # Because path units are used to activate service units, which
- # will start the old stopped services during "nixos-rebuild
- # switch", stopIfChanged here is a workaround to make sure new
- # services are running after "nixos-rebuild switch".
- stopIfChanged = false;
-
+ wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = ''
- ${cfg.package}/bin/kanata \
+ ${getExe cfg.package} \
--cfg ${mkConfig name keyboard} \
--symlink-path ''${RUNTIME_DIRECTORY}/${name} \
${optionalString (keyboard.port != null) "--port ${toString keyboard.port}"} \
@@ -146,37 +136,10 @@ let
UMask = "0077";
};
};
-
- mkPathName = i: name: "${mkName name}-${toString i}";
-
- mkPath = name: n: i: device:
- nameValuePair (mkPathName i name) {
- description =
- "${toString (i+1)}/${toString n} kanata trigger for ${name}, watching ${device}";
- wantedBy = optional (i == 0) "multi-user.target";
- pathConfig = {
- PathExists = device;
- # (ab)use systemd.path to construct a trigger chain so that the
- # service unit is only started when all paths exist
- # however, manual of systemd.path says Unit's suffix is not ".path"
- Unit =
- if (i + 1) == n
- then "${mkName name}.service"
- else "${mkPathName (i + 1) name}.path";
- };
- unitConfig.StopPropagatedFrom = optional (i > 0) "${mkName name}.service";
- };
-
- mkPaths = name: keyboard:
- let
- n = length keyboard.devices;
- in
- imap0 (mkPath name n) keyboard.devices
- ;
in
{
options.services.kanata = {
- enable = mkEnableOption (lib.mdDoc "kanata");
+ enable = mkEnableOption (mdDoc "kanata");
package = mkOption {
type = types.package;
default = pkgs.kanata;
@@ -201,14 +164,7 @@ in
config = mkIf cfg.enable {
hardware.uinput.enable = true;
- systemd = {
- paths = trivial.pipe cfg.keyboards [
- (mapAttrsToList mkPaths)
- concatLists
- listToAttrs
- ];
- services = mapAttrs' mkService cfg.keyboards;
- };
+ systemd.services = mapAttrs' mkService cfg.keyboards;
};
meta.maintainers = with maintainers; [ linj ];
diff --git a/nixos/modules/services/mail/maddy.nix b/nixos/modules/services/mail/maddy.nix
index eeb113e204c6..5f3a9b56292d 100644
--- a/nixos/modules/services/mail/maddy.nix
+++ b/nixos/modules/services/mail/maddy.nix
@@ -223,22 +223,59 @@ in {
'';
};
+ ensureAccounts = mkOption {
+ type = types.listOf types.str;
+ default = [];
+ description = lib.mdDoc ''
+ List of IMAP accounts which get automatically created. Note that for
+ a complete setup, user credentials for these accounts are required too
+ and can be created using the command `maddyctl creds`.
+ This option does not delete accounts which are not (anymore) listed.
+ '';
+ example = [
+ "user1@localhost"
+ "user2@localhost"
+ ];
+ };
+
};
};
config = mkIf cfg.enable {
systemd = {
+
packages = [ pkgs.maddy ];
- services.maddy = {
- serviceConfig = {
- User = cfg.user;
- Group = cfg.group;
- StateDirectory = [ "maddy" ];
+ services = {
+ maddy = {
+ serviceConfig = {
+ User = cfg.user;
+ Group = cfg.group;
+ StateDirectory = [ "maddy" ];
+ };
+ restartTriggers = [ config.environment.etc."maddy/maddy.conf".source ];
+ wantedBy = [ "multi-user.target" ];
};
- restartTriggers = [ config.environment.etc."maddy/maddy.conf".source ];
- wantedBy = [ "multi-user.target" ];
+ maddy-ensure-accounts = {
+ script = ''
+ ${optionalString (cfg.ensureAccounts != []) ''
+ ${concatMapStrings (account: ''
+ if ! ${pkgs.maddy}/bin/maddyctl imap-acct list | grep "${account}"; then
+ ${pkgs.maddy}/bin/maddyctl imap-acct create ${account}
+ fi
+ '') cfg.ensureAccounts}
+ ''}
+ '';
+ serviceConfig = {
+ Type = "oneshot";
+ User= "maddy";
+ };
+ after = [ "maddy.service" ];
+ wantedBy = [ "multi-user.target" ];
+ };
+
};
+
};
environment.etc."maddy/maddy.conf" = {
diff --git a/nixos/modules/services/web-apps/onlyoffice.nix b/nixos/modules/services/web-apps/onlyoffice.nix
index 6a8a28185b5b..3494f2fa21f0 100644
--- a/nixos/modules/services/web-apps/onlyoffice.nix
+++ b/nixos/modules/services/web-apps/onlyoffice.nix
@@ -270,7 +270,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";
diff --git a/nixos/modules/system/boot/systemd/repart.nix b/nixos/modules/system/boot/systemd/repart.nix
index 33f1b247c5ed..8f3a70023770 100644
--- a/nixos/modules/system/boot/systemd/repart.nix
+++ b/nixos/modules/system/boot/systemd/repart.nix
@@ -1,7 +1,8 @@
{ config, pkgs, lib, ... }:
let
- cfg = config.boot.initrd.systemd.repart;
+ cfg = config.systemd.repart;
+ initrdCfg = config.boot.initrd.systemd.repart;
writeDefinition = name: partitionConfig: pkgs.writeText
"${name}.conf"
@@ -24,45 +25,59 @@ let
'';
in
{
- options.boot.initrd.systemd.repart = {
- enable = lib.mkEnableOption (lib.mdDoc "systemd-repart") // {
+ options = {
+ boot.initrd.systemd.repart.enable = lib.mkEnableOption (lib.mdDoc "systemd-repart") // {
description = lib.mdDoc ''
- Grow and add partitions to a partition table a boot time in the initrd.
+ Grow and add partitions to a partition table at boot time in the initrd.
systemd-repart only works with GPT partition tables.
+
+ To run systemd-repart after the initrd, see
+ `options.systemd.repart.enable`.
'';
};
- partitions = lib.mkOption {
- type = with lib.types; attrsOf (attrsOf (oneOf [ str int bool ]));
- default = { };
- example = {
- "10-root" = {
- Type = "root";
+ systemd.repart = {
+ enable = lib.mkEnableOption (lib.mdDoc "systemd-repart") // {
+ description = lib.mdDoc ''
+ Grow and add partitions to a partition table.
+ systemd-repart only works with GPT partition tables.
+
+ To run systemd-repart while in the initrd, see
+ `options.boot.initrd.systemd.repart.enable`.
+ '';
+ };
+
+ partitions = lib.mkOption {
+ type = with lib.types; attrsOf (attrsOf (oneOf [ str int bool ]));
+ default = { };
+ example = {
+ "10-root" = {
+ Type = "root";
+ };
+ "20-home" = {
+ Type = "home";
+ SizeMinBytes = "512M";
+ SizeMaxBytes = "2G";
+ };
};
- "20-home" = {
- Type = "home";
- SizeMinBytes = "512M";
- SizeMaxBytes = "2G";
- };
+ description = lib.mdDoc ''
+ Specify partitions as a set of the names of the definition files as the
+ key and the partition configuration as its value. The partition
+ configuration can use all upstream options. See
+ for all available options.
+ '';
};
- description = lib.mdDoc ''
- Specify partitions as a set of the names of the definition files as the
- key and the partition configuration as its value. The partition
- configuration can use all upstream options. See
- for all available options.
- '';
};
};
- config = lib.mkIf cfg.enable {
- # Link the definitions into /etc so that they are included in the
- # /nix/store of the sysroot. This also allows the user to run the
- # systemd-repart binary after activation manually while automatically
- # picking up the definition files.
+ config = lib.mkIf (cfg.enable || initrdCfg.enable) {
+ # Always link the definitions into /etc so that they are also included in
+ # the /nix/store of the sysroot during early userspace (i.e. while in the
+ # initrd).
environment.etc."repart.d".source = definitionsDirectory;
- boot.initrd.systemd = {
+ boot.initrd.systemd = lib.mkIf initrdCfg.enable {
additionalUpstreamUnits = [
"systemd-repart.service"
];
@@ -73,7 +88,7 @@ in
# Override defaults in upstream unit.
services.systemd-repart = {
- # Unset the coniditions as they cannot be met before activation because
+ # Unset the conditions as they cannot be met before activation because
# the definition files are not stored in the expected locations.
unitConfig.ConditionDirectoryNotEmpty = [
" " # required to unset the previous value.
@@ -97,5 +112,12 @@ in
after = [ "sysroot.mount" ];
};
};
+
+ systemd = lib.mkIf cfg.enable {
+ additionalUpstreamSystemUnits = [
+ "systemd-repart.service"
+ ];
+ };
};
+
}
diff --git a/nixos/modules/virtualisation/docker.nix b/nixos/modules/virtualisation/docker.nix
index d9bd10ba1fc8..505cb4e32e1e 100644
--- a/nixos/modules/virtualisation/docker.nix
+++ b/nixos/modules/virtualisation/docker.nix
@@ -163,7 +163,7 @@ in
###### implementation
config = mkIf cfg.enable (mkMerge [{
- boot.kernelModules = [ "bridge" "veth" ];
+ boot.kernelModules = [ "bridge" "veth" "br_netfilter" "xt_nat" ];
boot.kernel.sysctl = {
"net.ipv4.conf.all.forwarding" = mkOverride 98 true;
"net.ipv4.conf.default.forwarding" = mkOverride 98 true;
diff --git a/nixos/modules/virtualisation/podman/default.nix b/nixos/modules/virtualisation/podman/default.nix
index 2e2190e4188c..baca48305188 100644
--- a/nixos/modules/virtualisation/podman/default.nix
+++ b/nixos/modules/virtualisation/podman/default.nix
@@ -9,8 +9,7 @@ let
extraPackages = cfg.extraPackages
# setuid shadow
++ [ "/run/wrappers" ]
- # include pkgs.zfs by default in the wrapped podman used by the module so it is cached
- ++ (if (builtins.elem "zfs" config.boot.supportedFilesystems) then [ config.boot.zfs.package ] else [ pkgs.zfs ]);
+ ++ lib.optional (builtins.elem "zfs" config.boot.supportedFilesystems) config.boot.zfs.package;
});
# Provides a fake "docker" binary mapping to podman
@@ -184,6 +183,10 @@ in
systemd.packages = [ cfg.package ];
+ systemd.services.podman.serviceConfig = {
+ ExecStart = [ "" "${cfg.package}/bin/podman $LOGGING system service" ];
+ };
+
systemd.services.podman-prune = {
description = "Prune podman resources";
@@ -204,6 +207,10 @@ in
systemd.sockets.podman.wantedBy = [ "sockets.target" ];
systemd.sockets.podman.socketConfig.SocketGroup = "podman";
+ systemd.user.services.podman.serviceConfig = {
+ ExecStart = [ "" "${cfg.package}/bin/podman $LOGGING system service" ];
+ };
+
systemd.user.sockets.podman.wantedBy = [ "sockets.target" ];
systemd.tmpfiles.packages = [
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;
diff --git a/nixos/tests/maddy.nix b/nixos/tests/maddy.nix
index b9d0416482da..800d254f1770 100644
--- a/nixos/tests/maddy.nix
+++ b/nixos/tests/maddy.nix
@@ -9,6 +9,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
hostname = "server";
primaryDomain = "server";
openFirewall = true;
+ ensureAccounts = [ "postmaster@server" ];
};
};
@@ -50,7 +51,6 @@ import ./make-test-python.nix ({ pkgs, ... }: {
server.wait_for_open_port(587)
server.succeed("maddyctl creds create --password test postmaster@server")
- server.succeed("maddyctl imap-acct create postmaster@server")
client.succeed("send-testmail")
client.succeed("test-imap")
diff --git a/nixos/tests/pass-secret-service.nix b/nixos/tests/pass-secret-service.nix
index a85a508bfe16..e0dddf0ad29e 100644
--- a/nixos/tests/pass-secret-service.nix
+++ b/nixos/tests/pass-secret-service.nix
@@ -1,6 +1,6 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "pass-secret-service";
- meta.maintainers = with lib; [ aidalgol ];
+ meta.maintainers = [ lib.maintainers.aidalgol ];
nodes.machine = { nodes, pkgs, ... }:
{
diff --git a/nixos/tests/quake3.nix b/nixos/tests/quake3.nix
index 82af1af463d0..ef5fcc41476b 100644
--- a/nixos/tests/quake3.nix
+++ b/nixos/tests/quake3.nix
@@ -1,4 +1,4 @@
-import ./make-test-python.nix ({ pkgs, ...} :
+import ./make-test-python.nix ({ pkgs, lib, ...} :
let
@@ -11,9 +11,9 @@ let
};
# Only allow the demo data to be used (only if it's unfreeRedistributable).
- unfreePredicate = pkg: with pkgs.lib; let
+ unfreePredicate = pkg: with lib; let
allowPackageNames = [ "quake3-demodata" "quake3-pointrelease" ];
- allowLicenses = [ pkgs.lib.licenses.unfreeRedistributable ];
+ allowLicenses = [ lib.licenses.unfreeRedistributable ];
in elem pkg.pname allowPackageNames &&
elem (pkg.meta.license or null) allowLicenses;
@@ -31,7 +31,7 @@ in
rec {
name = "quake3";
- meta = with pkgs.stdenv.lib.maintainers; {
+ meta = with lib.maintainers; {
maintainers = [ domenkozar eelco ];
};
diff --git a/nixos/tests/systemd-repart.nix b/nixos/tests/systemd-repart.nix
index 92cc1fb04edc..36de5d988fdb 100644
--- a/nixos/tests/systemd-repart.nix
+++ b/nixos/tests/systemd-repart.nix
@@ -52,9 +52,6 @@ let
};
};
- boot.initrd.systemd.enable = true;
- boot.initrd.systemd.repart.enable = true;
-
# systemd-repart operates on disks with a partition table. The qemu module,
# however, creates separate filesystem images without a partition table, so
# we have to create a disk image manually.
@@ -88,7 +85,10 @@ in
nodes.machine = { config, pkgs, ... }: {
imports = [ common ];
- boot.initrd.systemd.repart.partitions = {
+ boot.initrd.systemd.enable = true;
+
+ boot.initrd.systemd.repart.enable = true;
+ systemd.repart.partitions = {
"10-root" = {
Type = "linux-generic";
};
@@ -105,4 +105,30 @@ in
assert "Growing existing partition 1." in systemd_repart_logs
'';
};
+
+ after-initrd = makeTest {
+ name = "systemd-repart-after-initrd";
+ meta.maintainers = with maintainers; [ nikstur ];
+
+ nodes.machine = { config, pkgs, ... }: {
+ imports = [ common ];
+
+ systemd.repart.enable = true;
+ systemd.repart.partitions = {
+ "10-root" = {
+ Type = "linux-generic";
+ };
+ };
+ };
+
+ testScript = { nodes, ... }: ''
+ ${useDiskImage nodes.machine}
+
+ machine.start()
+ machine.wait_for_unit("multi-user.target")
+
+ systemd_repart_logs = machine.succeed("journalctl --unit systemd-repart.service")
+ assert "Growing existing partition 1." in systemd_repart_logs
+ '';
+ };
}
diff --git a/pkgs/applications/audio/eartag/default.nix b/pkgs/applications/audio/eartag/default.nix
index 0db9da5d2161..8a4ffab5dc1f 100644
--- a/pkgs/applications/audio/eartag/default.nix
+++ b/pkgs/applications/audio/eartag/default.nix
@@ -1,6 +1,6 @@
{ stdenv
, lib
-, fetchFromGitHub
+, fetchFromGitLab
, meson
, ninja
, pkg-config
@@ -18,14 +18,15 @@
python3Packages.buildPythonApplication rec {
pname = "eartag";
- version = "0.3.1";
+ version = "0.3.2";
format = "other";
- src = fetchFromGitHub {
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
owner = "knuxify";
repo = pname;
- rev = "refs/tags/${version}";
- sha256 = "sha256-gN3V5ZHlhHp52Jg/i+hDLEDpSvP8yFngujyw5ZncQQg=";
+ rev = version;
+ sha256 = "sha256-XvbfQtE8LsztQ2VByG2jLYND3qVpH6owdAgh3b//lI4=";
};
postPatch = ''
@@ -67,7 +68,7 @@ python3Packages.buildPythonApplication rec {
'';
meta = with lib; {
- homepage = "https://github.com/knuxify/eartag";
+ homepage = "https://gitlab.gnome.org/knuxify/eartag";
description = "Simple music tag editor";
# This seems to be using ICU license but we're flagging it to MIT license
# since ICU license is a modified version of MIT and to prevent it from
diff --git a/pkgs/applications/audio/pianotrans/default.nix b/pkgs/applications/audio/pianotrans/default.nix
index 89e0716a0adc..e5848de03dac 100644
--- a/pkgs/applications/audio/pianotrans/default.nix
+++ b/pkgs/applications/audio/pianotrans/default.nix
@@ -6,14 +6,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "pianotrans";
- version = "1.0";
+ version = "1.0.1";
format = "setuptools";
src = fetchFromGitHub {
owner = "azuwis";
repo = pname;
rev = "v${version}";
- hash = "sha256-6Otup1Yat1dBZdSoR4lDfpytUQ2RbDXC6ieo835Nw+U=";
+ hash = "sha256-gRbyUQmPtGvx5QKAyrmeJl0stp7hwLBWwjSbJajihdE=";
};
propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index d64376aae18d..5aee9eaee9fe 100644
--- a/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -2,11 +2,11 @@
let
pname = "ledger-live-desktop";
- version = "2.51.0";
+ version = "2.53.2";
src = fetchurl {
url = "https://download.live.ledger.com/${pname}-${version}-linux-x86_64.AppImage";
- hash = "sha256-qpgzGJsj7hrrK2i+xP0T+hcw7WMlGBILbHVJBHD5duo=";
+ hash = "sha256-RGeJWUMZagXM/8SHHOpTpcnsz+BShnGp2yvt31qo5lI=";
};
appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/emulators/cemu/default.nix b/pkgs/applications/emulators/cemu/default.nix
index f8e585501289..91f6cb0de1a6 100644
--- a/pkgs/applications/emulators/cemu/default.nix
+++ b/pkgs/applications/emulators/cemu/default.nix
@@ -31,13 +31,13 @@
stdenv.mkDerivation rec {
pname = "cemu";
- version = "2.0-22";
+ version = "2.0-26";
src = fetchFromGitHub {
owner = "cemu-project";
repo = "Cemu";
rev = "v${version}";
- hash = "sha256-ZQfJHQnT5mV6GC3dO6QV1fGsnyZMYqXiVdBSsimL5yU=";
+ hash = "sha256-+y+PJE2biRvuxIwrFVMjmkZyD8/zhHVMw6vzNKlsOZE=";
};
patches = [
diff --git a/pkgs/applications/emulators/flycast/default.nix b/pkgs/applications/emulators/flycast/default.nix
index b597abc7b069..f1874d62fba4 100644
--- a/pkgs/applications/emulators/flycast/default.nix
+++ b/pkgs/applications/emulators/flycast/default.nix
@@ -5,25 +5,36 @@
, pkg-config
, makeWrapper
, alsa-lib
-, libX11
+, curl
+, egl-wayland
+, libao
+, libdecor
, libevdev
-, udev
+, libffi
+, libGL
, libpulseaudio
-, SDL2
+, libX11
+, libXext
+, libxkbcommon
, libzip
+, mesa
, miniupnpc
+, udev
+, vulkan-headers
, vulkan-loader
+, wayland
+, zlib
}:
stdenv.mkDerivation rec {
pname = "flycast";
- version = "2.0";
+ version = "2.1";
src = fetchFromGitHub {
owner = "flyinghead";
repo = "flycast";
- rev = "v${version}";
- sha256 = "sha256-vSyLg2lAJBV7crKVbGRbi1PUuCwHF9GB/8pjMTlaigA=";
+ rev = "V${version}";
+ sha256 = "sha256-PRInOqg9OpaUVLwSj1lOxDtjpVaYehkRsp0jLrVKPyY=";
fetchSubmodules = true;
};
@@ -35,13 +46,24 @@ stdenv.mkDerivation rec {
buildInputs = [
alsa-lib
- libX11
+ curl
+ egl-wayland
+ libao
+ libdecor
libevdev
- udev
+ libffi
+ libGL
libpulseaudio
- SDL2
+ libX11
+ libXext
+ libxkbcommon
libzip
+ mesa # for libgbm
miniupnpc
+ udev
+ vulkan-headers
+ wayland
+ zlib
];
postFixup = ''
diff --git a/pkgs/applications/misc/protonup-qt/default.nix b/pkgs/applications/misc/protonup-qt/default.nix
new file mode 100644
index 000000000000..0638a9d4efde
--- /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; [ michaelBelsanti ];
+ };
+}
diff --git a/pkgs/applications/misc/usql/default.nix b/pkgs/applications/misc/usql/default.nix
index 4911556086c7..839b100383f5 100644
--- a/pkgs/applications/misc/usql/default.nix
+++ b/pkgs/applications/misc/usql/default.nix
@@ -10,18 +10,18 @@
buildGoModule rec {
pname = "usql";
- version = "0.13.8";
+ version = "0.13.9";
src = fetchFromGitHub {
owner = "xo";
repo = "usql";
rev = "v${version}";
- hash = "sha256-oNsA9VM6MN2czeZSTFGvmCWX0T3iVaAhQk1mVRyKgWw=";
+ hash = "sha256-hcAwwu1bp7QJLt+mrUZYK6YeX/uRmfRa8JnUfrTzf3k=";
};
buildInputs = [ unixODBC icu ];
- vendorHash = "sha256-LG5gTHXB1ItDZFbTBHyZGHZLaSYb8wekIHkahTMXzkk=";
+ vendorHash = "sha256-BehI6O+WpCcgMGabTFMCpYHN3CIo3Zb5rBQuGLsWRc0=";
proxyVendor = true;
# Exclude broken impala & hive driver
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 = ''
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 = ''
diff --git a/pkgs/applications/networking/cluster/nomad/default.nix b/pkgs/applications/networking/cluster/nomad/default.nix
index faec09480774..ba7f86e9e7d6 100644
--- a/pkgs/applications/networking/cluster/nomad/default.nix
+++ b/pkgs/applications/networking/cluster/nomad/default.nix
@@ -1,6 +1,6 @@
{ lib
, buildGoModule
-, buildGo119Module
+, buildGo120Module
, fetchFromGitHub
, nixosTests
}:
@@ -47,24 +47,24 @@ rec {
nomad = nomad_1_4;
nomad_1_2 = generic {
- buildGoModule = buildGo119Module;
- version = "1.2.15";
- sha256 = "sha256-p9yRjSapQAhuHv+slUmYI25bUb1N1A7LBiJOdk1++iI=";
- vendorSha256 = "sha256-6d3tE337zVAIkzQzAnV2Ya5xwwhuzmKgtPUJcJ9HRto=";
+ buildGoModule = buildGo120Module;
+ version = "1.2.16";
+ sha256 = "sha256-fhfUpcG91EgIzJ4mCS7geyIJyTSHS2e8t4yYiI3PqpQ=";
+ vendorSha256 = "sha256-kwCDsGFw+25Mimgt/cTK/Z2H7Qh5n4rjr3kIBvjcPL8=";
};
nomad_1_3 = generic {
- buildGoModule = buildGo119Module;
- version = "1.3.8";
- sha256 = "sha256-hUmDWgGV8HAXew8SpcbhaiaF9VfBN5mk1W7t5lhnZ9I=";
- vendorSha256 = "sha256-IfYobyDFriOldJnNfRK0QVKBfttoZZ1iOkt4cBQxd00=";
+ buildGoModule = buildGo120Module;
+ version = "1.3.9";
+ sha256 = "sha256-xfoIzLDG/OfqAPQqeLvQZ11uESWFNyOyLP6Imi+S96w=";
+ vendorSha256 = "sha256-kW0goicoM1lM1NEHPTfozg2EKR1daf33UxT/mVabyfY=";
};
nomad_1_4 = generic {
- buildGoModule = buildGo119Module;
- version = "1.4.3";
- sha256 = "sha256-GQVfrn9VlzfdIj73W3hBpHcevsXZcb6Uj808HUCZUUg=";
- vendorSha256 = "sha256-JQRpsQhq5r/QcgFwtnptmvnjBEhdCFrXFrTKkJioL3A=";
+ buildGoModule = buildGo120Module;
+ version = "1.4.4";
+ sha256 = "sha256-mAimuWolTJ3lMY/ArnLZFu+GZv9ADdGsriXsTcEgdYc=";
+ vendorSha256 = "sha256-QtP7pzsIBd2S79AUcbOeVG71Mb5qK706rq5DkT41VqM=";
passthru.tests.nomad = nixosTests.nomad;
};
}
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index f2afa21bc361..76647ede165a 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -110,29 +110,29 @@
"vendorHash": null
},
"aws": {
- "hash": "sha256-gAIZQIljgrYNtaDrPqWnd7K0rQkKz67hQWJyVgs4ZNs=",
+ "hash": "sha256-WBb1cio+vxt7QM3bM1T2OEusHXpQs/bjUFxRGCFTbIE=",
"homepage": "https://registry.terraform.io/providers/hashicorp/aws",
"owner": "hashicorp",
"repo": "terraform-provider-aws",
- "rev": "v4.54.0",
+ "rev": "v4.55.0",
"spdx": "MPL-2.0",
- "vendorHash": "sha256-9YvQP1QWnT2Rb9D65j6g2edxTDaoGisVlQWFNnH4lSs="
+ "vendorHash": "sha256-WndEg+n0hId7R35OeHamP+OxzzRee7f+qXIhWmos8WI="
},
"azuread": {
- "hash": "sha256-Byr6AJ1kP6fBxBCD8vLxQD5tz8fI3Z1fcCa0rXS9rhs=",
+ "hash": "sha256-StoT7ujiJhEMpQ4wMN/qzILFxJ18ZkgLkY56LwxKY+Y=",
"homepage": "https://registry.terraform.io/providers/hashicorp/azuread",
"owner": "hashicorp",
"repo": "terraform-provider-azuread",
- "rev": "v2.33.0",
+ "rev": "v2.34.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
"azurerm": {
- "hash": "sha256-b2KEq7QBpPR7100VCFIe9KGMm8Soy2wr/TAbUT0NxEQ=",
+ "hash": "sha256-40oarnfSdA2Sif40C1gi+SupY4bNsp78TBfgNDCFf7U=",
"homepage": "https://registry.terraform.io/providers/hashicorp/azurerm",
"owner": "hashicorp",
"repo": "terraform-provider-azurerm",
- "rev": "v3.43.0",
+ "rev": "v3.44.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@@ -1027,13 +1027,13 @@
"vendorHash": null
},
"snowflake": {
- "hash": "sha256-uO3LgEQjeHS8kbolFZ3jb6FltMAiWNTVsjCSrsI776M=",
+ "hash": "sha256-aFRjbr0Gzu2GtxJrIEl7ahEcnOQOprJQnetaIzPePAo=",
"homepage": "https://registry.terraform.io/providers/Snowflake-Labs/snowflake",
"owner": "Snowflake-Labs",
"repo": "terraform-provider-snowflake",
- "rev": "v0.56.3",
+ "rev": "v0.56.4",
"spdx": "MIT",
- "vendorHash": "sha256-ulgTRY8qQ5oXONkwYtffRl1QMNnbvyn0zYiYqqvwrUU="
+ "vendorHash": "sha256-shzsn3N6pVFe6ecaoXpv6ZZ27MEUUV82gnRMHFEtYlU="
},
"sops": {
"hash": "sha256-D1Yzs8hDimMP9y8ZRbizEhic3vGtLcZjOVSuSMUAqPk=",
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;
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 = ''
diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix
index bd2f9e4b3f5e..f627647e1efb 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix
@@ -56,6 +56,10 @@ stdenv.mkDerivation {
fetchSubmodules = true;
};
+ patches = [
+ ./tg_owt.patch
+ ];
+
postPatch = lib.optionalString stdenv.isLinux ''
substituteInPlace src/modules/desktop_capture/linux/egl_dmabuf.cc \
--replace '"libEGL.so.1"' '"${libGL}/lib/libEGL.so.1"' \
diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.patch b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.patch
new file mode 100644
index 000000000000..05332d51c047
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.patch
@@ -0,0 +1,23 @@
+--- a/src/modules/include/module_common_types_public.h
++++ b/src/modules/include/module_common_types_public.h
+@@ -11,6 +11,7 @@
+ #ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+ #define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+
++#include
+ #include
+
+ #include "absl/types/optional.h"
+diff --git a/src/common_video/h265/h265_pps_parser.h b/src/common_video/h265/h265_pps_parser.h
+index 28c95ea9..790b0b73 100644
+--- a/src/common_video/h265/h265_pps_parser.h
++++ b/src/common_video/h265/h265_pps_parser.h
+@@ -13,6 +13,8 @@
+
+ #include "absl/types/optional.h"
+
++#include
++
+ namespace rtc {
+ class BitBuffer;
+ }
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 = [
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index 3b171070a573..d221324b205b 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -1,4 +1,4 @@
-{ buildGoModule, stdenv, lib, procps, fetchFromGitHub, nixosTests }:
+{ pkgsBuildBuild, go, buildGoModule, stdenv, lib, procps, fetchFromGitHub, nixosTests }:
let
common = { stname, target, postInstall ? "" }:
@@ -22,7 +22,12 @@ let
buildPhase = ''
runHook preBuild
- go run build.go -no-upgrade -version v${version} build ${target}
+ (
+ export GOOS="${pkgsBuildBuild.go.GOOS}" GOARCH="${pkgsBuildBuild.go.GOARCH}" CC=$CC_FOR_BUILD
+ go build build.go
+ go generate github.com/syncthing/syncthing/lib/api/auto github.com/syncthing/syncthing/cmd/strelaypoolsrv/auto
+ )
+ ./build -goos ${go.GOOS} -goarch ${go.GOARCH} -no-upgrade -version v${version} build ${target}
runHook postBuild
'';
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/applications/science/misc/cwltool/default.nix b/pkgs/applications/science/misc/cwltool/default.nix
index 815ccc6cc249..7c28f65f3bf7 100644
--- a/pkgs/applications/science/misc/cwltool/default.nix
+++ b/pkgs/applications/science/misc/cwltool/default.nix
@@ -7,14 +7,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "cwltool";
- version = "3.1.20230209161050";
+ version = "3.1.20230213100550";
format = "setuptools";
src = fetchFromGitHub {
owner = "common-workflow-language";
repo = pname;
rev = "refs/tags/${version}";
- hash = "sha256-gc/KSJS3KcxXc3xDyJSXavaxtwhKBiihgdI7yc7d2I8=";
+ hash = "sha256-BtHkIVadcccnYYX8lRqiCzO+/qFeBaZfdUuu6qrjysk=";
};
postPatch = ''
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"
];
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
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index 766a9fd1de50..d8bfa140fa87 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -14,52 +14,10 @@
, go-md2man
, nixosTests
, python3
-, makeWrapper
-, symlinkJoin
-, extraPackages ? [ ]
-, runc
-, crun
-, conmon
-, slirp4netns
-, fuse-overlayfs
-, util-linux
-, iptables
-, iproute2
-, catatonit
-, gvproxy
-, aardvark-dns
-, netavark
, testers
, podman
}:
-let
- # do not add qemu to this wrapper, store paths get written to the podman vm config and break when GCed
- binPath = lib.makeBinPath ([
- ] ++ lib.optionals stdenv.isLinux [
- runc
- crun
- conmon
- slirp4netns
- fuse-overlayfs
- util-linux
- iptables
- iproute2
- ] ++ extraPackages);
-
- helpersBin = symlinkJoin {
- name = "podman-helper-binary-wrapper";
-
- # this only works for some binaries, others may need to be be added to `binPath` or in the modules
- paths = [
- gvproxy
- ] ++ lib.optionals stdenv.isLinux [
- aardvark-dns
- catatonit # added here for the pause image and also set in `containersConf` for `init_path`
- netavark
- ];
- };
-in
buildGoModule rec {
pname = "podman";
version = "4.4.1";
@@ -80,9 +38,9 @@ buildGoModule rec {
doCheck = false;
- outputs = [ "out" "man" ];
+ outputs = [ "out" "man" ] ++ lib.optionals stdenv.isLinux [ "rootlessport" ];
- nativeBuildInputs = [ pkg-config go-md2man installShellFiles makeWrapper python3 ];
+ nativeBuildInputs = [ pkg-config go-md2man installShellFiles python3 ];
buildInputs = lib.optionals stdenv.isLinux [
btrfs-progs
@@ -94,16 +52,13 @@ buildGoModule rec {
systemd
];
- HELPER_BINARIES_DIR = "${helpersBin}/bin";
- PREFIX = "${placeholder "out"}";
-
buildPhase = ''
runHook preBuild
patchShebangs .
${if stdenv.isDarwin then ''
make podman-remote # podman-mac-helper uses FHS paths
'' else ''
- make bin/podman bin/rootlessport bin/quadlet
+ make bin/podman bin/rootlessport
''}
make docs
runHook postBuild
@@ -111,20 +66,26 @@ buildGoModule rec {
installPhase = ''
runHook preInstall
+ mkdir -p {$out/{bin,etc,lib,share},$man} # ensure paths exist for the wrapper
${if stdenv.isDarwin then ''
- install bin/darwin/podman -Dt $out/bin
+ mv bin/{darwin/podman,podman}
'' else ''
- make install.bin install.systemd
+ install -Dm644 contrib/tmpfile/podman.conf -t $out/lib/tmpfiles.d
+ for s in contrib/systemd/**/*.in; do
+ substituteInPlace "$s" --replace "@@PODMAN@@" "podman" # don't use unwrapped binary
+ done
+ PREFIX=$out make install.systemd
+ install -Dm555 bin/rootlessport -t $rootlessport/bin
''}
- make install.completions install.man
- wrapProgram $out/bin/podman \
- --prefix PATH : ${lib.escapeShellArg binPath}
+ install -Dm555 bin/podman -t $out/bin
+ PREFIX=$out make install.completions
+ MANDIR=$man/share/man make install.man
runHook postInstall
'';
postFixup = lib.optionalString stdenv.isLinux ''
- RPATH=$(patchelf --print-rpath $out/bin/.podman-wrapped)
- patchelf --set-rpath "${lib.makeLibraryPath [ systemd ]}":$RPATH $out/bin/.podman-wrapped
+ RPATH=$(patchelf --print-rpath $out/bin/podman)
+ patchelf --set-rpath "${lib.makeLibraryPath [ systemd ]}":$RPATH $out/bin/podman
'';
passthru.tests = {
diff --git a/pkgs/applications/virtualization/podman/wrapper.nix b/pkgs/applications/virtualization/podman/wrapper.nix
new file mode 100644
index 000000000000..7fe483a7079e
--- /dev/null
+++ b/pkgs/applications/virtualization/podman/wrapper.nix
@@ -0,0 +1,78 @@
+{ podman-unwrapped
+, runCommand
+, makeWrapper
+, symlinkJoin
+, lib
+, stdenv
+, extraPackages ? []
+, runc # Default container runtime
+, crun # Container runtime (default with cgroups v2 for podman/buildah)
+, conmon # Container runtime monitor
+, slirp4netns # User-mode networking for unprivileged namespaces
+, fuse-overlayfs # CoW for images, much faster than default vfs
+, util-linux # nsenter
+, iptables
+, iproute2
+, catatonit
+, gvproxy
+, aardvark-dns
+, netavark
+}:
+
+# do not add qemu to this wrapper, store paths get written to the podman vm config and break when GCed
+
+let
+ binPath = lib.makeBinPath ([
+ ] ++ lib.optionals stdenv.isLinux [
+ runc
+ crun
+ conmon
+ slirp4netns
+ fuse-overlayfs
+ util-linux
+ iptables
+ iproute2
+ ] ++ extraPackages);
+
+ helpersBin = symlinkJoin {
+ name = "${podman-unwrapped.pname}-helper-binary-wrapper-${podman-unwrapped.version}";
+
+ # this only works for some binaries, others may need to be be added to `binPath` or in the modules
+ paths = [
+ gvproxy
+ ] ++ lib.optionals stdenv.isLinux [
+ aardvark-dns
+ catatonit # added here for the pause image and also set in `containersConf` for `init_path`
+ netavark
+ podman-unwrapped.rootlessport
+ ];
+ };
+
+in runCommand podman-unwrapped.name {
+ name = "${podman-unwrapped.pname}-wrapper-${podman-unwrapped.version}";
+ inherit (podman-unwrapped) pname version passthru;
+
+ preferLocalBuild = true;
+
+ meta = builtins.removeAttrs podman-unwrapped.meta [ "outputsToInstall" ];
+
+ outputs = [
+ "out"
+ "man"
+ ];
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+} ''
+ ln -s ${podman-unwrapped.man} $man
+
+ mkdir -p $out/bin
+ ln -s ${podman-unwrapped}/etc $out/etc
+ ln -s ${podman-unwrapped}/lib $out/lib
+ ln -s ${podman-unwrapped}/share $out/share
+ makeWrapper ${podman-unwrapped}/bin/podman $out/bin/podman \
+ --set CONTAINERS_HELPER_BINARY_DIR ${helpersBin}/bin \
+ --prefix PATH : ${lib.escapeShellArg binPath}
+''
diff --git a/pkgs/data/fonts/nasin-nanpa/default.nix b/pkgs/data/fonts/nasin-nanpa/default.nix
new file mode 100644
index 000000000000..cd05c667a248
--- /dev/null
+++ b/pkgs/data/fonts/nasin-nanpa/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+ pname = "nasin-nanpa";
+ version = "2.5.1";
+
+ srcs = [
+ (fetchurl {
+ name = "nasin-nanpa.otf";
+ url = "https://github.com/ETBCOR/nasin-nanpa/releases/download/n${version}/nasin-nanpa-${version}.otf";
+ hash = "sha256-++uOrqFzQ6CB/OPEmBivpjMfAtFk3PSsCNpFBjOtGEg=";
+ })
+ (fetchurl {
+ name = "nasin-nanpa-lasina-kin.otf";
+ url = "https://github.com/ETBCOR/nasin-nanpa/releases/download/n${version}/nasin-nanpa-${version}-lasina-kin.otf";
+ hash = "sha256-4WIX74y2O4NaKi/JQrgTbOxlKDQKJ/F9wkQuoOdWuTI=";
+ })
+ ];
+
+ dontUnpack = true;
+
+ installPhase = ''
+ mkdir -p $out/share/fonts/opentype
+ for src in $srcs; do
+ file=$(stripHash $src)
+ cp $src $out/share/fonts/opentype/$file
+ done
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/ETBCOR/nasin-nanpa";
+ description = "UCSUR OpenType monospaced font for the Toki Pona writing system, Sitelen Pona";
+ longDescription = ''
+ ni li nasin pi sitelen pona.
+ sitelen ale pi nasin ni li sama mute weka.
+ sitelen pi nasin ni li lon nasin UCSUR kin.
+ '';
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ somasis ];
+ };
+}
diff --git a/pkgs/data/icons/numix-icon-theme-square/default.nix b/pkgs/data/icons/numix-icon-theme-square/default.nix
index b1a90ba1085f..f3503a9f5f07 100644
--- a/pkgs/data/icons/numix-icon-theme-square/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-square/default.nix
@@ -2,13 +2,13 @@
stdenvNoCC.mkDerivation rec {
pname = "numix-icon-theme-square";
- version = "23.02.05";
+ version = "23.02.16";
src = fetchFromGitHub {
owner = "numixproject";
repo = pname;
rev = version;
- sha256 = "sha256-FZt/3RugPHjanlxKjITSpaIb5RoKzI9mJvmPn7CNqS4=";
+ sha256 = "sha256-z9LHSfhCTeHsf4XtPJeOqOqfKHHz0B7n2hciIpCQ9H4=";
};
nativeBuildInputs = [ gtk3 ];
diff --git a/pkgs/development/beam-modules/fetch-mix-deps.nix b/pkgs/development/beam-modules/fetch-mix-deps.nix
index 2bba3a93c294..6d047dbe1ca5 100644
--- a/pkgs/development/beam-modules/fetch-mix-deps.nix
+++ b/pkgs/development/beam-modules/fetch-mix-deps.nix
@@ -45,7 +45,7 @@ stdenvNoCC.mkDerivation (attrs // {
installPhase = attrs.installPhase or ''
runHook preInstall
- mix deps.get ''${mixEnv:+--only $mixEnv}
+ mix deps.get ''${MIX_ENV:+--only $MIX_ENV}
find "$TEMPDIR/deps" -path '*/.git/*' -a ! -name HEAD -exec rm -rf {} +
cp -r --no-preserve=mode,ownership,timestamps $TEMPDIR/deps $out
runHook postInstall
diff --git a/pkgs/development/compilers/zig/0.10.nix b/pkgs/development/compilers/zig/0.10.nix
index 6d41b63f03b2..966be329befc 100644
--- a/pkgs/development/compilers/zig/0.10.nix
+++ b/pkgs/development/compilers/zig/0.10.nix
@@ -47,6 +47,8 @@ stdenv.mkDerivation rec {
cmakeFlags = [
# file RPATH_CHANGE could not write new RPATH
"-DCMAKE_SKIP_BUILD_RPATH=ON"
+
+ # ensure determinism in the compiler build
"-DZIG_TARGET_MCPU=baseline"
];
diff --git a/pkgs/development/compilers/zig/0.9.1.nix b/pkgs/development/compilers/zig/0.9.1.nix
index e7c62a4cf938..637186f686e9 100644
--- a/pkgs/development/compilers/zig/0.9.1.nix
+++ b/pkgs/development/compilers/zig/0.9.1.nix
@@ -62,6 +62,9 @@ stdenv.mkDerivation rec {
cmakeFlags = [
# file RPATH_CHANGE could not write new RPATH
"-DCMAKE_SKIP_BUILD_RPATH=ON"
+
+ # ensure determinism in the compiler build
+ "-DZIG_TARGET_MCPU=baseline"
];
doCheck = true;
diff --git a/pkgs/development/embedded/openocd/default.nix b/pkgs/development/embedded/openocd/default.nix
index c80f5f3dd573..5ffb9071534b 100644
--- a/pkgs/development/embedded/openocd/default.nix
+++ b/pkgs/development/embedded/openocd/default.nix
@@ -1,6 +1,5 @@
{ stdenv
, lib
-, fetchpatch
, fetchurl
, pkg-config
, hidapi
@@ -11,10 +10,10 @@
stdenv.mkDerivation rec {
pname = "openocd";
- version = "0.11.0";
+ version = "0.12.0";
src = fetchurl {
url = "mirror://sourceforge/project/${pname}/${pname}/${version}/${pname}-${version}.tar.bz2";
- sha256 = "0z8y7mmv0mhn2l5gs3vz6l7cnwak7agklyc7ml33f7gz99rwx8s3";
+ sha256 = "sha256-ryVHiL6Yhh8r2RA/5uYKd07Jaow3R0Tu+Rl/YEMHWvo=";
};
nativeBuildInputs = [ pkg-config ];
@@ -22,15 +21,6 @@ stdenv.mkDerivation rec {
buildInputs = [ hidapi libftdi1 libusb1 ]
++ lib.optional stdenv.isLinux libgpiod;
- patches = [
- # Patch is upstream, so can be removed when OpenOCD 0.12.0 or later is released.
- (fetchpatch
- {
- url = "https://github.com/openocd-org/openocd/commit/cff0e417da58adef1ceef9a63a99412c2cc87ff3.patch";
- sha256 = "Xxzf5miWy4S34sbQq8VQdAbY/oqGyhL/AJxiEPRuj3Q=";
- })
- ];
-
configureFlags = [
"--disable-werror"
"--enable-jtag_vpi"
diff --git a/pkgs/development/libraries/flatpak/default.nix b/pkgs/development/libraries/flatpak/default.nix
index 14e6abd90065..7fd08bc599a6 100644
--- a/pkgs/development/libraries/flatpak/default.nix
+++ b/pkgs/development/libraries/flatpak/default.nix
@@ -54,14 +54,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "flatpak";
- version = "1.14.1";
+ version = "1.14.2";
# TODO: split out lib once we figure out what to do with triggerdir
outputs = [ "out" "dev" "man" "doc" "devdoc" "installedTests" ];
src = fetchurl {
url = "https://github.com/flatpak/flatpak/releases/download/${finalAttrs.version}/flatpak-${finalAttrs.version}.tar.xz";
- sha256 = "sha256-CjyCM0MBjMWJhrbIJUVgnIzb8Pul8B2IMHvRSstd058="; # Taken from https://github.com/flatpak/flatpak/releases/
+ sha256 = "sha256-yAcR6s9CqZB49jlqplVV3Wv3PuxjF3a3np17cmK293Q="; # Taken from https://github.com/flatpak/flatpak/releases/
};
patches = [
diff --git a/pkgs/development/libraries/flatpak/unset-env-vars.patch b/pkgs/development/libraries/flatpak/unset-env-vars.patch
index 6b8017684d45..ffefdd6ed621 100644
--- a/pkgs/development/libraries/flatpak/unset-env-vars.patch
+++ b/pkgs/development/libraries/flatpak/unset-env-vars.patch
@@ -1,11 +1,11 @@
diff --git a/common/flatpak-run.c b/common/flatpak-run.c
-index 146c4f87..bcdad2bc 100644
+index d35b4652..b4bb4a44 100644
--- a/common/flatpak-run.c
+++ b/common/flatpak-run.c
-@@ -1710,6 +1710,7 @@ static const ExportData default_exports[] = {
- {"GST_PTP_HELPER", NULL},
- {"GST_PTP_HELPER_1_0", NULL},
- {"GST_INSTALL_PLUGINS_HELPER", NULL},
+@@ -1899,6 +1899,7 @@ static const ExportData default_exports[] = {
+ {"KRB5CCNAME", NULL},
+ {"XKB_CONFIG_ROOT", NULL},
+ {"GIO_EXTRA_MODULES", NULL},
+ {"GDK_PIXBUF_MODULE_FILE", NULL},
};
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;
+ };
+ };
}
diff --git a/pkgs/development/libraries/libdisplay-info/default.nix b/pkgs/development/libraries/libdisplay-info/default.nix
index a83aa299b0bc..fa499a001464 100644
--- a/pkgs/development/libraries/libdisplay-info/default.nix
+++ b/pkgs/development/libraries/libdisplay-info/default.nix
@@ -25,10 +25,8 @@ stdenv.mkDerivation rec {
buildInputs = [ hwdata ];
- prePatch = ''
- substituteInPlace meson.build \
- --replace "find_program('tool/gen-search-table.py')" "find_program('python3')" \
- --replace "gen_search_table," "gen_search_table, '$src/tool/gen-search-table.py',"
+ postPatch = ''
+ patchShebangs tool/gen-search-table.py
'';
meta = with lib; {
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
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;
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 ];
};
}
diff --git a/pkgs/development/libraries/tl-expected/default.nix b/pkgs/development/libraries/tl-expected/default.nix
index c7cb92440ee8..79af37f58e6f 100644
--- a/pkgs/development/libraries/tl-expected/default.nix
+++ b/pkgs/development/libraries/tl-expected/default.nix
@@ -2,14 +2,14 @@
stdenv.mkDerivation rec {
pname = "tl-expected-unstable";
- version = "2019-11-11"; # 5 commits ahead of version 1.0.0
+ version = "2023-02-15"; # 37 commits ahead of version 1.0.0
src = fetchFromGitHub {
owner = "TartanLlama";
repo = "expected";
- rev = "1d9c5d8c0da84b8ddc54bd3d90d632eec95c1f13";
+ rev = "9d812f5e3b5bc68023f6e31d29489cdcaacef606";
fetchSubmodules = true;
- sha256 = "0rzfn9yyg70zwpxbmv22qy0015baymi2rdd65ixmcb31fgnap68i";
+ hash = "sha256-ZokcGQgHH37nmTMLmxFcun4S1RjXuXb9NfWHet8Fbc4=";
};
nativeBuildInputs = [ cmake ];
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 [
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;
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 = [
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/development/python-modules/canonicaljson/default.nix b/pkgs/development/python-modules/canonicaljson/default.nix
index 46ceee80c0f5..0787d4d09718 100644
--- a/pkgs/development/python-modules/canonicaljson/default.nix
+++ b/pkgs/development/python-modules/canonicaljson/default.nix
@@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "canonicaljson";
- version = "1.6.4";
+ version = "1.6.5";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
- hash = "sha256-bAmyEZUR8w6xEmz82XOhCCTiDxz9JQOc3j0SGN2cjY8=";
+ hash = "sha256-aN/BV7AR4H2Uv3S11MzAGVhYTtlC2d/V/dcGYJ6BzUs=";
};
nativeBuildInputs = [
@@ -49,6 +49,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Encodes objects and arrays as RFC 7159 JSON";
homepage = "https://github.com/matrix-org/python-canonicaljson";
+ changelog = "https://github.com/matrix-org/python-canonicaljson/blob/v${version}/CHANGES.md";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
diff --git a/pkgs/development/python-modules/check-manifest/default.nix b/pkgs/development/python-modules/check-manifest/default.nix
index 8a3e328313f9..832cac1f7872 100644
--- a/pkgs/development/python-modules/check-manifest/default.nix
+++ b/pkgs/development/python-modules/check-manifest/default.nix
@@ -3,48 +3,41 @@
, build
, buildPythonPackage
, fetchPypi
-, fetchpatch
, git
-, mock
, pep517
, pytestCheckHook
-, toml
+, tomli
, pythonOlder
}:
buildPythonPackage rec {
pname = "check-manifest";
- version = "0.48";
+ version = "0.49";
format = "setuptools";
- disabled = pythonOlder "3.6";
+ disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
- hash = "sha256-O1dfHa3nvrMHjvS/M6lFGYNEV8coHbxyaxXFRmtVxlc=";
+ hash = "sha256-ZKZARFVCzyJpGWV8e3jQLZwcpbHCXX5m4OH/MlBg9BY=";
};
- patches = [
- # Fix git submodule tests using file: protocol
- (fetchpatch {
- url = "https://github.com/mgedmin/check-manifest/pull/159.patch";
- hash = "sha256-CDtuIoHgP4THLt+xF32C/OrjakwPOEVTKUh5JuQB5wM=";
- })
- ];
-
propagatedBuildInputs = [
build
pep517
- toml
+ ] ++ lib.optionals (pythonOlder "3.11") [
+ tomli
];
nativeCheckInputs = [
- breezy
git
- mock
pytestCheckHook
];
+ checkInputs = [
+ breezy
+ ];
+
disabledTests = [
# Test wants to setup a venv
"test_build_sdist_pep517_isolated"
@@ -57,6 +50,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Check MANIFEST.in in a Python source package for completeness";
homepage = "https://github.com/mgedmin/check-manifest";
+ changelog = "https://github.com/mgedmin/check-manifest/blob/${version}/CHANGES.rst";
license = licenses.mit;
maintainers = with maintainers; [ lewo ];
};
diff --git a/pkgs/development/python-modules/cwl-utils/default.nix b/pkgs/development/python-modules/cwl-utils/default.nix
index 2f605950bc59..0c0618f9c3d0 100644
--- a/pkgs/development/python-modules/cwl-utils/default.nix
+++ b/pkgs/development/python-modules/cwl-utils/default.nix
@@ -16,7 +16,7 @@
buildPythonPackage rec {
pname = "cwl-utils";
- version = "0.22";
+ version = "0.23";
format = "setuptools";
disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
owner = "common-workflow-language";
repo = pname;
rev = "refs/tags/v${version}";
- hash = "sha256-vOIheOcDG8qdPtcN0kkBN3URodknDLTC7BzYGIiD2RA=";
+ hash = "sha256-tr4QQ/p0jx/e5kHx4WSYfo06/qMNFyxIGsaAA8nBBoA=";
};
propagatedBuildInputs = [
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
diff --git a/pkgs/development/python-modules/gdtoolkit/default.nix b/pkgs/development/python-modules/gdtoolkit/default.nix
deleted file mode 100644
index 5323e12e4c55..000000000000
--- a/pkgs/development/python-modules/gdtoolkit/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, lark, docopt, pyyaml, setuptools }:
-
-let lark080 = lark.overrideAttrs (old: rec {
- # gdtoolkit needs exactly this lark version
- version = "0.8.0";
- src = fetchFromGitHub {
- owner = "lark-parser";
- repo = "lark";
- rev = version;
- sha256 = "su7kToZ05OESwRCMPG6Z+XlFUvbEb3d8DgsTEcPJMg4=";
- };
-});
-
-in
-buildPythonPackage rec {
- pname = "gdtoolkit";
- version = "3.3.1";
-
- propagatedBuildInputs = [
- lark080
- docopt
- pyyaml
- setuptools
- ];
-
- # If we try to get using fetchPypi it requires GeoIP (but the package dont has that dep!?)
- src = fetchFromGitHub {
- owner = "Scony";
- repo = "godot-gdscript-toolkit";
- rev = version;
- sha256 = "13nnpwy550jf5qnm9ixpxl1bwfnhhbiys8vqfd25g3aim4bm3gnn";
- };
-
- disabled = pythonOlder "3.7";
-
- # Tests cannot be run because they need network to install additional dependencies using pip and tox
- doCheck = false;
- pythonImportsCheck = [ "gdtoolkit" "gdtoolkit.formatter" "gdtoolkit.linter" "gdtoolkit.parser" ];
-
- meta = with lib; {
- description = "Independent set of tools for working with Godot's GDScript - parser, linter and formatter";
- homepage = "https://github.com/Scony/godot-gdscript-toolkit";
- license = licenses.mit;
- maintainers = with maintainers; [ shiryel ];
- };
-}
diff --git a/pkgs/development/python-modules/griffe/default.nix b/pkgs/development/python-modules/griffe/default.nix
index 692b2fe6d8e6..8dfabb097296 100644
--- a/pkgs/development/python-modules/griffe/default.nix
+++ b/pkgs/development/python-modules/griffe/default.nix
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "griffe";
- version = "0.25.4";
+ version = "0.25.5";
format = "pyproject";
disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "mkdocstrings";
repo = pname;
rev = "refs/tags/${version}";
- hash = "sha256-AZZhwHtVhdHkztzr/Hdi63VC5CjK2Vz8h8zizmSUdNY=";
+ hash = "sha256-0+n5v93ERcQDKNtXxSZYfCUMTRzcbtQEXl023KSxfrE=";
};
postPatch = ''
diff --git a/pkgs/development/python-modules/ha-philipsjs/default.nix b/pkgs/development/python-modules/ha-philipsjs/default.nix
index 3d8ff39af14b..4b8b02e91209 100644
--- a/pkgs/development/python-modules/ha-philipsjs/default.nix
+++ b/pkgs/development/python-modules/ha-philipsjs/default.nix
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "ha-philipsjs";
- version = "3.0.0";
+ version = "3.0.1";
format = "setuptools";
disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "danielperna84";
repo = pname;
rev = "refs/tags/${version}";
- hash = "sha256-iJxu+TdgDHMnLuNTFj0UC8V76x3nAgGqswMLDSgmDmQ=";
+ hash = "sha256-5SneI1aZiUyLGYmtRXJYPBUtQR08fV+MWkjIQXt208s=";
};
propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/leb128/default.nix b/pkgs/development/python-modules/leb128/default.nix
index 6ba2330eb56a..aada84c73654 100644
--- a/pkgs/development/python-modules/leb128/default.nix
+++ b/pkgs/development/python-modules/leb128/default.nix
@@ -2,14 +2,14 @@
buildPythonPackage rec {
pname = "leb128";
- version = "1.0.4";
+ version = "1.0.5";
# fetchPypi doesn't include files required for tests
src = fetchFromGitHub {
owner = "mohanson";
repo = "leb128";
- rev = "v${version}";
- sha256 = "040l6fxyzqal841kirf783kk1840gcy1gjd374jfr46v96qc8scm";
+ rev = "refs/tags/v${version}";
+ sha256 = "sha256-zK14LPziBkvXAMzuPbcg/47caO/5GEYA9txAzCGfpS8=";
};
nativeCheckInputs = [ pytestCheckHook ];
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 = ''
diff --git a/pkgs/development/python-modules/playwright/default.nix b/pkgs/development/python-modules/playwright/default.nix
index e57655c2227c..741b655df868 100644
--- a/pkgs/development/python-modules/playwright/default.nix
+++ b/pkgs/development/python-modules/playwright/default.nix
@@ -223,5 +223,6 @@ buildPythonPackage rec {
homepage = "https://github.com/microsoft/playwright-python";
license = licenses.asl20;
maintainers = with maintainers; [ techknowlogick yrd SuperSandro2000 ];
+ platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
};
}
diff --git a/pkgs/development/python-modules/pydeconz/default.nix b/pkgs/development/python-modules/pydeconz/default.nix
index 54b4b2ef1d8a..5a4532c598ef 100644
--- a/pkgs/development/python-modules/pydeconz/default.nix
+++ b/pkgs/development/python-modules/pydeconz/default.nix
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "pydeconz";
- version = "106";
+ version = "107";
format = "setuptools";
disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "Kane610";
repo = "deconz";
rev = "refs/tags/v${version}";
- hash = "sha256-13of5ohz/hezlmGvSNqCu9QoOPKdPPtrhQHbxmG2/Do=";
+ hash = "sha256-5NR+N2UoWvzD/y1kP08qOS2djMsLIwLDuaIBmt0AV/s=";
};
propagatedBuildInputs = [
@@ -43,6 +43,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Python library wrapping the Deconz REST API";
homepage = "https://github.com/Kane610/deconz";
+ changelog = "https://github.com/Kane610/deconz/releases/tag/v${version}";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
diff --git a/pkgs/development/python-modules/pyfido/default.nix b/pkgs/development/python-modules/pyfido/default.nix
index 43909e2c130f..a850030274c4 100644
--- a/pkgs/development/python-modules/pyfido/default.nix
+++ b/pkgs/development/python-modules/pyfido/default.nix
@@ -6,11 +6,11 @@
buildPythonPackage rec {
pname = "pyfido";
- version = "2.1.1";
+ version = "2.1.2";
src = fetchPypi {
inherit pname version;
- sha256 = "0b28bhyhscaw7dbc92dxswann05x8mz92cagyawdfm8jnc67gq4b";
+ sha256 = "sha256-hh2g46GVCkiMHElEP6McY8FdzGNzZV7pgA5DQhodP20=";
};
propagatedBuildInputs = [ aiohttp ];
diff --git a/pkgs/development/python-modules/pynobo/default.nix b/pkgs/development/python-modules/pynobo/default.nix
index 97b3f2c5be59..1be7a78c44f3 100644
--- a/pkgs/development/python-modules/pynobo/default.nix
+++ b/pkgs/development/python-modules/pynobo/default.nix
@@ -6,7 +6,7 @@
buildPythonPackage rec {
pname = "pynobo";
- version = "1.6.0";
+ version = "1.6.1";
format = "setuptools";
disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
owner = "echoromeo";
repo = pname;
rev = "refs/tags/v${version}";
- hash = "sha256-YbQfdOLO1gs7+oiwe4rDmmD1o7MG+vma5xPlrtNZ00M=";
+ hash = "sha256-T86d3HGu6hsc54+ocCbINsInH/qHL9+HhOXDQ0I8QGA=";
};
# Project has no tests
@@ -28,6 +28,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Python TCP/IP interface for Nobo Hub/Nobo Energy Control devices";
homepage = "https://github.com/echoromeo/pynobo";
+ changelog = "https://github.com/echoromeo/pynobo/releases/tag/v${version}";
license = with licenses; [ gpl3Plus ];
maintainers = with maintainers; [ fab ];
};
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 = [
diff --git a/pkgs/development/python-modules/python-ipmi/default.nix b/pkgs/development/python-modules/python-ipmi/default.nix
index 9ee03dc8911c..68bcd7434d05 100644
--- a/pkgs/development/python-modules/python-ipmi/default.nix
+++ b/pkgs/development/python-modules/python-ipmi/default.nix
@@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "python-ipmi";
- version = "0.5.3";
+ version = "0.5.4";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "kontron";
repo = pname;
rev = version;
- sha256 = "sha256-Y8HJ7MXYHJRUWPTcw8p+GGSFswuRI7u+/bIaJpKy7lY=";
+ sha256 = "sha256-IXEq3d1nXGEndciQw2MJ1Abc0vmEYez+k6aWGSWEzWA=";
};
propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-ironicclient/default.nix b/pkgs/development/python-modules/python-ironicclient/default.nix
index 0214a6b0d2e4..193717d6d83e 100644
--- a/pkgs/development/python-modules/python-ironicclient/default.nix
+++ b/pkgs/development/python-modules/python-ironicclient/default.nix
@@ -20,11 +20,11 @@
buildPythonPackage rec {
pname = "python-ironicclient";
- version = "5.0.1";
+ version = "5.1.0";
src = fetchPypi {
inherit pname version;
- sha256 = "sha256-7RawbJ5O5KCruD499fOkuFcouBzp3f7aEUnE37wJqmM=";
+ sha256 = "sha256-yYmzZuwZSasN6g6Bosivexe5oOy3dP+l/cD5TkXC87g=";
};
propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/requests-pkcs12/default.nix b/pkgs/development/python-modules/requests-pkcs12/default.nix
index fcc4db1fbf0f..96b64a5be236 100644
--- a/pkgs/development/python-modules/requests-pkcs12/default.nix
+++ b/pkgs/development/python-modules/requests-pkcs12/default.nix
@@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "requests-pkcs12";
- version = "1.14";
+ version = "1.15";
format = "setuptools";
disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "m-click";
repo = "requests_pkcs12";
rev = version;
- hash = "sha256-LZgKjSas0KdJAf4leSVz8sEnRrlJ20Sm9Ka+S5zDOTM=";
+ hash = "sha256-xk8+oERonZWzxKEmZutfvovzVOz9ZP5O83cMDTz9i3Y=";
};
propagatedBuildInputs = [
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 = ''
diff --git a/pkgs/development/python-modules/simpleeval/default.nix b/pkgs/development/python-modules/simpleeval/default.nix
index 28e5c2578602..57693fb3791c 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}";
+ 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 ];
};
diff --git a/pkgs/development/python-modules/slack-sdk/default.nix b/pkgs/development/python-modules/slack-sdk/default.nix
index 22901130ccd8..7114b7b16716 100644
--- a/pkgs/development/python-modules/slack-sdk/default.nix
+++ b/pkgs/development/python-modules/slack-sdk/default.nix
@@ -21,7 +21,7 @@
buildPythonPackage rec {
pname = "slack-sdk";
- version = "3.19.5";
+ version = "3.20.0";
format = "setuptools";
disabled = pythonOlder "3.6";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
owner = "slackapi";
repo = "python-slack-sdk";
rev = "refs/tags/v${version}";
- hash = "sha256-/DVcnfHjvmRreHSlZbzxz6pbqytEUdqbaGbQVxIW4Qk=";
+ hash = "sha256-NlUmoOlRV7h7d553uX2tAWi2aWCAqpHflSUrdZxlaws=";
};
propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/types-python-dateutil/default.nix b/pkgs/development/python-modules/types-python-dateutil/default.nix
index e671b91bb979..81f56cd8040a 100644
--- a/pkgs/development/python-modules/types-python-dateutil/default.nix
+++ b/pkgs/development/python-modules/types-python-dateutil/default.nix
@@ -5,12 +5,12 @@
buildPythonPackage rec {
pname = "types-python-dateutil";
- version = "2.8.19.6";
+ version = "2.8.19.7";
format = "setuptools";
src = fetchPypi {
inherit pname version;
- hash = "sha256-Sm9MwZzkuhoIZwhx4pe/OAL1XU8SnmqiRD9UC2z4A9I=";
+ hash = "sha256-evWl0bgKsd+guk2Hn6yzgug2piwtQIwqUJvkaA/Yscg=";
};
# Modules doesn't have tests
diff --git a/pkgs/development/python-modules/types-requests/default.nix b/pkgs/development/python-modules/types-requests/default.nix
index 1d22826b6eea..a3b6c33d9de3 100644
--- a/pkgs/development/python-modules/types-requests/default.nix
+++ b/pkgs/development/python-modules/types-requests/default.nix
@@ -6,12 +6,12 @@
buildPythonPackage rec {
pname = "types-requests";
- version = "2.28.11.12";
+ version = "2.28.11.13";
format = "setuptools";
src = fetchPypi {
inherit pname version;
- sha256 = "sha256-/VMKqz/E8F7jZAavFo8INubwDx7lGguWtzEfgstnUjA=";
+ sha256 = "sha256-P9MyhC6HWepffrd4nfiqdyuhVSFszxDvSqOw5bQuG0Y=";
};
propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/wandb/default.nix b/pkgs/development/python-modules/wandb/default.nix
index f6d1769f526b..e1139ecf1b14 100644
--- a/pkgs/development/python-modules/wandb/default.nix
+++ b/pkgs/development/python-modules/wandb/default.nix
@@ -104,7 +104,7 @@ buildPythonPackage rec {
# Set BOKEH_CDN_VERSION to stop bokeh throwing an exception in tests
preCheck = ''
export HOME=$(mktemp -d)
- export BOKEH_CDN_VERSION=3.0.3
+ export BOKEH_CDN_VERSION=${bokeh.version}
'';
pythonRelaxDeps = [ "protobuf" ];
diff --git a/pkgs/development/python-modules/weconnect-mqtt/default.nix b/pkgs/development/python-modules/weconnect-mqtt/default.nix
index 4f6a8b00d213..7e7517980151 100644
--- a/pkgs/development/python-modules/weconnect-mqtt/default.nix
+++ b/pkgs/development/python-modules/weconnect-mqtt/default.nix
@@ -10,16 +10,16 @@
buildPythonPackage rec {
pname = "weconnect-mqtt";
- version = "0.41.1";
+ version = "0.42.0";
format = "setuptools";
- disabled = pythonOlder "3.7";
+ disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "tillsteinbach";
repo = "WeConnect-mqtt";
rev = "refs/tags/v${version}";
- hash = "sha256-RYxfz5uBWV1HLbcIK1N/glJv2w0nfPLBPyM2b7HuDIY=";
+ hash = "sha256-jxfV2RDyGLugnPae+uNtg/GBsWbKCSbKxuHll10guhU=";
};
propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/weconnect/default.nix b/pkgs/development/python-modules/weconnect/default.nix
index db66c2e9b1c8..7a8c691a8011 100644
--- a/pkgs/development/python-modules/weconnect/default.nix
+++ b/pkgs/development/python-modules/weconnect/default.nix
@@ -12,16 +12,16 @@
buildPythonPackage rec {
pname = "weconnect";
- version = "0.50.1";
+ version = "0.52.0";
format = "setuptools";
- disabled = pythonOlder "3.7";
+ disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "tillsteinbach";
repo = "WeConnect-python";
rev = "refs/tags/v${version}";
- hash = "sha256-KYGNtUJXpY1UrRbUxr71EHxLCR6WixTAk+ybkfqB3Ps=";
+ hash = "sha256-SfdN/em4NrzNeItcaVuyOcUxmE50n5/jjmY4I5hfpQI=";
};
propagatedBuildInputs = [
@@ -48,7 +48,7 @@ buildPythonPackage rec {
--replace "setup_requires=SETUP_REQUIRED," "setup_requires=[]," \
--replace "tests_require=TEST_REQUIRED," "tests_require=[],"
substituteInPlace image_extra_requirements.txt \
- --replace "pillow~=9.3.0" "pillow"
+ --replace "pillow~=9.4.0" "pillow"
substituteInPlace pytest.ini \
--replace "--cov=weconnect --cov-config=.coveragerc --cov-report html" "" \
--replace "pytest-cov" ""
diff --git a/pkgs/development/python-modules/z3c-checkversions/default.nix b/pkgs/development/python-modules/z3c-checkversions/default.nix
index 5aad3df78a63..7678b223297c 100644
--- a/pkgs/development/python-modules/z3c-checkversions/default.nix
+++ b/pkgs/development/python-modules/z3c-checkversions/default.nix
@@ -9,24 +9,25 @@
buildPythonPackage rec {
pname = "z3c-checkversions";
- version = "1.2";
+ version = "2.0";
src = fetchPypi {
inherit version;
pname = "z3c.checkversions";
- sha256 = "94c7ab0810ee6fdb66a4689b48e537b57e2dbee277cb1de2ece7a7f4d8c83001";
+ hash = "sha256-rn4kl8Pn6YNqbE+VD6L8rVBQHkQqXSD47ZIy77+ashE=";
};
propagatedBuildInputs = [ zc-buildout ];
+
nativeCheckInputs = [ zope_testrunner ];
- doCheck = !python.pkgs.isPy27;
+
checkPhase = ''
${python.interpreter} -m zope.testrunner --test-path=src []
'';
meta = with lib; {
- broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
homepage = "https://github.com/zopefoundation/z3c.checkversions";
+ changelog = "https://github.com/zopefoundation/z3c.checkversions/blob/${version}/CHANGES.rst";
description = "Find newer package versions on PyPI";
license = licenses.zpl21;
};
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index 1d61428960ab..f287605aa8f2 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -1016,6 +1016,13 @@ let
'';
});
+ quarto = old.quarto.overrideDerivation (attrs: {
+ postPatch = ''
+ substituteInPlace "R/quarto.R" \
+ --replace "path_env <- Sys.getenv(\"QUARTO_PATH\", unset = NA)" "path_env <- Sys.getenv(\"QUARTO_PATH\", unset = '${lib.getBin pkgs.quarto}/bin/quarto')"
+ '';
+ });
+
s2 = old.s2.overrideDerivation (attrs: {
PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include";
PKGCONFIG_LIBS = "-Wl,-rpath,${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.openssl}/lib -lssl -lcrypto";
diff --git a/pkgs/development/tools/ansi/default.nix b/pkgs/development/tools/ansi/default.nix
index 305b29aef6f9..13794dee2e15 100644
--- a/pkgs/development/tools/ansi/default.nix
+++ b/pkgs/development/tools/ansi/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
description = "Quickly get ANSI escape sequences";
longDescription = ''
CLI utility called "ansi" to quickly get ANSI escape sequences. Supports
- the colors and styles, such as bold or italic.";
+ the colors and styles, such as bold or italic.
'';
homepage = "https://github.com/phip1611/ansi-escape-sequences-cli";
license = with licenses; [ mit ];
diff --git a/pkgs/development/tools/faas-cli/default.nix b/pkgs/development/tools/faas-cli/default.nix
index 55fa760475d9..12eccd200ab6 100644
--- a/pkgs/development/tools/faas-cli/default.nix
+++ b/pkgs/development/tools/faas-cli/default.nix
@@ -18,13 +18,13 @@ let
in
buildGoModule rec {
pname = "faas-cli";
- version = "0.15.4";
+ version = "0.15.9";
src = fetchFromGitHub {
owner = "openfaas";
repo = "faas-cli";
rev = version;
- sha256 = "sha256-Dj4Wli1z4X8FgnthjPszC/h4EIeFiMO/YB5Rlkis5f8=";
+ sha256 = "sha256-DudZOIwpsa7VaOQMJ2P/mfWHWYwESNhDfIUbtMV5Es0=";
};
vendorSha256 = null;
diff --git a/pkgs/development/tools/gdtoolkit/default.nix b/pkgs/development/tools/gdtoolkit/default.nix
new file mode 100644
index 000000000000..67d98e0aa36b
--- /dev/null
+++ b/pkgs/development/tools/gdtoolkit/default.nix
@@ -0,0 +1,84 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+, godot-server
+}:
+
+let lark080 = python3Packages.lark.overrideAttrs (old: rec {
+ # gdtoolkit needs exactly this lark version
+ version = "0.8.0";
+ src = fetchFromGitHub {
+ owner = "lark-parser";
+ repo = "lark";
+ rev = version;
+ hash = "sha256-KN9buVlH8hJ8t0ZP5yefeYM5vH5Gg7a7TEDGKJYpozs=";
+ fetchSubmodules = true;
+ };
+});
+
+in
+python3Packages.buildPythonApplication rec {
+ pname = "gdtoolkit";
+ version = "3.3.1";
+
+ # If we try to get using fetchPypi it requires GeoIP (but the package dont has that dep!?)
+ src = fetchFromGitHub {
+ owner = "Scony";
+ repo = "godot-gdscript-toolkit";
+ rev = version;
+ sha256 = "13nnpwy550jf5qnm9ixpxl1bwfnhhbiys8vqfd25g3aim4bm3gnn";
+ };
+
+ disabled = python3Packages.pythonOlder "3.7";
+
+ propagatedBuildInputs = [ lark080
+ ] ++ (with python3Packages; [
+ docopt
+ pyyaml
+ setuptools
+ ]);
+
+ doCheck = true;
+
+ nativeCheckInputs = with python3Packages; [
+ pytestCheckHook
+ hypothesis
+ godot-server
+ ];
+
+ preCheck =
+ let
+ godotServerMajorVersion = lib.versions.major godot-server.version;
+ gdtoolkitMajorVersion = lib.versions.major version;
+ msg = ''
+ gdtoolkit major version ${gdtoolkitMajorVersion} does not match godot-server major version ${godotServerMajorVersion}!
+ gdtoolkit needs a matching godot-server for its tests.
+ If you see this error, you can either:
+ - disable doCheck for gdtoolkit, or
+ - provide a compatible godot-server version to gdtoolkit"
+ '';
+ in lib.throwIf (godotServerMajorVersion != gdtoolkitMajorVersion) msg ''
+ # The tests want to run the installed executables
+ export PATH=$out/bin:$PATH
+
+ # gdtoolkit tries to write cache variables to $HOME/.cache
+ export HOME=$TMP
+
+ # Work around https://github.com/godotengine/godot/issues/20503
+ # Without this, Godot will complain about a missing project file
+ touch project.godot
+
+ # Remove broken test case
+ # (hard to skip via disabledTests since the test name contains an absolute path)
+ rm tests/potential-godot-bugs/multiline-subscription-expression.gd
+ '';
+
+ pythonImportsCheck = [ "gdtoolkit" "gdtoolkit.formatter" "gdtoolkit.linter" "gdtoolkit.parser" ];
+
+ meta = with lib; {
+ description = "Independent set of tools for working with Godot's GDScript - parser, linter and formatter";
+ homepage = "https://github.com/Scony/godot-gdscript-toolkit";
+ license = licenses.mit;
+ maintainers = with maintainers; [ shiryel tmarkus ];
+ };
+}
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 { };
diff --git a/pkgs/development/tools/skopeo/default.nix b/pkgs/development/tools/skopeo/default.nix
index 08bcde3ae510..f39f7510c1bf 100644
--- a/pkgs/development/tools/skopeo/default.nix
+++ b/pkgs/development/tools/skopeo/default.nix
@@ -12,17 +12,19 @@
, fuse-overlayfs
, dockerTools
, runCommand
+, testers
+, skopeo
}:
buildGoModule rec {
pname = "skopeo";
- version = "1.11.0";
+ version = "1.11.1";
src = fetchFromGitHub {
rev = "v${version}";
owner = "containers";
repo = "skopeo";
- hash = "sha256-P556Is03BeC0Tf+kNv+Luy0KASgTXsyZ/MrPaPFUHE8=";
+ hash = "sha256-wTOcluPSguF6ZnKHlLelM5R2dIF9nd66qu7u/48uNyU=";
};
outputs = [ "out" "man" ];
@@ -45,8 +47,7 @@ buildGoModule rec {
installPhase = ''
runHook preInstall
- PREFIX=$out make install-binary install-completions
- PREFIX=$man make install-docs
+ PREFIX=${placeholder "out"} make install-binary install-completions install-docs
install ${passthru.policy}/default-policy.json -Dt $out/etc/containers
'' + lib.optionalString stdenv.isLinux ''
wrapProgram $out/bin/skopeo \
@@ -60,11 +61,15 @@ buildGoModule rec {
install ${src}/default-policy.json -Dt $out
'';
tests = {
+ version = testers.testVersion {
+ package = skopeo;
+ };
inherit (dockerTools.examples) testNixFromDockerHub;
};
};
meta = with lib; {
+ changelog = "https://github.com/containers/skopeo/releases/tag/${src.rev}";
description = "A command line utility for various operations on container images and image repositories";
homepage = "https://github.com/containers/skopeo";
maintainers = with maintainers; [ lewo ] ++ teams.podman.members;
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;
}
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
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
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
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 ];
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";
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index 3cee78f571ee..abc89d8e8129 100644
--- a/pkgs/servers/plex/raw.nix
+++ b/pkgs/servers/plex/raw.nix
@@ -12,16 +12,16 @@
# server, and the FHS userenv and corresponding NixOS module should
# automatically pick up the changes.
stdenv.mkDerivation rec {
- version = "1.30.2.6563-3d4dc0cce";
+ version = "1.31.0.6654-02189b09f";
pname = "plexmediaserver";
# Fetch the source
src = if stdenv.hostPlatform.system == "aarch64-linux" then fetchurl {
url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_arm64.deb";
- sha256 = "0sz6xc484flh1cnlrvwin7x34bl118yy2mwj034f8p9ngiy5hrkw";
+ sha256 = "sha256-ttkvYD+ALxfZpQutI1VyTbmQi/7hmvZ+YMUv3lskeWU=";
} else fetchurl {
url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb";
- sha256 = "0ymxfy3s9nygv9syiy2bdwmjfqg8m4i5n8c37z1ib6393iwj8mgi";
+ sha256 = "sha256-TTEcyIBFiuJTNHeJ9wu+4o2ol72oCvM9FdDPC83J3Mc=";
};
outputs = [ "out" "basedb" ];
diff --git a/pkgs/servers/prowlarr/default.nix b/pkgs/servers/prowlarr/default.nix
index 31b342d833bc..12df9c02d071 100644
--- a/pkgs/servers/prowlarr/default.nix
+++ b/pkgs/servers/prowlarr/default.nix
@@ -16,17 +16,17 @@ let
}."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
hash = {
- x64-linux_hash = "sha256-hKvme3saa3/GT0l6OlFjYI0RPClo5rWtVYFN/YuJSaw=";
- arm64-linux_hash = "sha256-f7YIJRk1AhlfepmsQqlDFMA97QnbAAzrUtPFfbuV+QY=";
- x64-osx_hash = "sha256-7nU12Y7f+fwjziUm6O+xO78IZf8EOfgmz+JibAP/xk8=";
+ x64-linux_hash = "sha256-Xx2z5aiIKRNbBxBMXCTfm1VacQOLyruC6sXB/+C7knk=";
+ arm64-linux_hash = "sha256-r6WuQhydSRZmsH1hp51gGcQ/7ZruxbEMrbrFps2nmcw=";
+ x64-osx_hash = "sha256-F8bE4lXcqyBVZhgYcQKPrza9cphCuC5j7968jL6qgxM=";
}."${arch}-${os}_hash";
in stdenv.mkDerivation rec {
pname = "prowlarr";
- version = "1.1.3.2521";
+ version = "1.2.0.2583";
src = fetchurl {
- url = "https://github.com/Prowlarr/Prowlarr/releases/download/v${version}/Prowlarr.master.${version}.${os}-core-${arch}.tar.gz";
+ url = "https://github.com/Prowlarr/Prowlarr/releases/download/v${version}/Prowlarr.develop.${version}.${os}-core-${arch}.tar.gz";
sha256 = hash;
};
diff --git a/pkgs/servers/prowlarr/update.sh b/pkgs/servers/prowlarr/update.sh
index 2d21f724408d..d61edda5a0a3 100755
--- a/pkgs/servers/prowlarr/update.sh
+++ b/pkgs/servers/prowlarr/update.sh
@@ -13,7 +13,7 @@ updateHash()
hashKey="${arch}-${os}_hash"
- url="https://github.com/Prowlarr/Prowlarr/releases/download/v$version/Prowlarr.master.$version.$os-core-$arch.tar.gz"
+ url="https://github.com/Prowlarr/Prowlarr/releases/download/v$version/Prowlarr.develop.$version.$os-core-$arch.tar.gz"
hash=$(nix-prefetch-url --type sha256 $url)
sriHash="$(nix hash to-sri --type sha256 $hash)"
diff --git a/pkgs/servers/redpanda/base64.nix b/pkgs/servers/redpanda/base64.nix
new file mode 100644
index 000000000000..305456c55ccf
--- /dev/null
+++ b/pkgs/servers/redpanda/base64.nix
@@ -0,0 +1,26 @@
+{ clangStdenv
+, cmake
+, fetchFromGitHub
+, lib
+}:
+let
+ pname = "base64";
+ version = "0.5.0";
+in
+clangStdenv.mkDerivation {
+ inherit pname version;
+ src = fetchFromGitHub {
+ owner = "aklomp";
+ repo = "base64";
+ rev = "v${version}";
+ sha256 = "sha256-2HNI9ycT9f+NLwLElEuR61qmTguOsI+kNxv01ipxSqQ=";
+ };
+ nativeBuildInputs = [ cmake ];
+ meta = with lib; {
+ description = "Fast Base64 stream encoder/decoder in C99, with SIMD acceleration";
+ license = licenses.bsd2;
+ homepage = "https://github.com/aklomp/base64";
+ maintainers = with maintainers; [ avakhrenev ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/pkgs/servers/redpanda/default.nix b/pkgs/servers/redpanda/default.nix
index e2a265c0f5ef..c59aa621cc4d 100644
--- a/pkgs/servers/redpanda/default.nix
+++ b/pkgs/servers/redpanda/default.nix
@@ -1,48 +1,52 @@
-{ lib, stdenv, fetchzip }:
-
+{ buildGoModule
+, callPackage
+, doCheck ? !stdenv.isDarwin # Can't start localhost test server in MacOS sandbox.
+, fetchFromGitHub
+, installShellFiles
+, lib
+, stdenv
+}:
let
- version = "22.3.11";
- platform = if stdenv.isLinux then "linux" else "darwin";
- arch = if stdenv.isAarch64 then "arm" else "amd";
- sha256s = {
- darwin.amd = "sha256-kwAKxFg7BSNInvsQvFqgtpq8EEwSnmDeDyaF5b8L8SQ=";
- darwin.arm = "sha256-kH5Ii672SeAIiRcWuAO3oVJVSBWp+r78RmTiR3BaDbg=";
- linux.amd = "sha256-EKgkRKBrM4+X2YGoP2LpWRHL+fdHu44LYwCZ+O+c5ZY=";
- linux.arm = "sha256-9b4oerRXjUVUYoswJWtnMBJSQDoCKClf673VjDQFUAw=";
+ version = "22.3.13";
+ src = fetchFromGitHub {
+ owner = "redpanda-data";
+ repo = "redpanda";
+ rev = "v${version}";
+ sha256 = "sha256-cUQFDXWnQYSLcfKFYg6BLrxF77iX+Yx3hcul4tMxdoc=";
};
-in stdenv.mkDerivation rec {
- pname = "redpanda";
- inherit version;
+ server = callPackage ./server.nix { inherit src version; };
+in
+buildGoModule rec {
+ pname = "redpanda-rpk";
+ inherit doCheck src version;
+ modRoot = "./src/go/rpk";
+ runVend = false;
+ vendorSha256 = "sha256-JVZuHRh3gavIGArxDkqUQsL5oBjz35EKGsC75Sy+cMo=";
- src = fetchzip {
- url = "https://github.com/redpanda-data/redpanda/releases/download/v${version}/rpk-${platform}-${arch}64.zip";
- sha256 = sha256s.${platform}.${arch};
- };
+ ldflags = [
+ ''-X "github.com/redpanda-data/redpanda/src/go/rpk/pkg/cli/cmd/version.version=${version}"''
+ ''-X "github.com/redpanda-data/redpanda/src/go/rpk/pkg/cli/cmd/version.rev=v${version}"''
+ ''-X "github.com/redpanda-data/redpanda/src/go/rpk/pkg/cli/cmd/container/common.tag=v${version}"''
+ ];
- installPhase = ''
- runHook preInstall
+ nativeBuildInputs = [ installShellFiles ];
- mkdir -p $out/bin
- cp rpk $out/bin
-
- ${lib.optionalString stdenv.isLinux ''
- patchelf \
- --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
- $out/bin/rpk
- ''}
-
- runHook postInstall
+ postInstall = ''
+ for shell in bash fish zsh; do
+ $out/bin/rpk generate shell-completion $shell > rpk.$shell
+ installShellCompletion rpk.$shell
+ done
'';
- # stripping somehow completely breaks it
- dontStrip = true;
+ passthru = {
+ inherit server;
+ };
meta = with lib; {
- description = "Redpanda is a streaming data platform for developers. Kafka API compatible. 10x faster. No ZooKeeper. No JVM! ";
- sourceProvenance = with sourceTypes; [ binaryNativeCode ];
- license = licenses.bsl11;
+ description = "Redpanda client";
homepage = "https://redpanda.com/";
- maintainers = with maintainers; [ happysalada ];
+ license = licenses.bsl11;
+ maintainers = with maintainers; [ avakhrenev happysalada ];
platforms = platforms.all;
};
}
diff --git a/pkgs/servers/redpanda/hdr-histogram.nix b/pkgs/servers/redpanda/hdr-histogram.nix
new file mode 100644
index 000000000000..91000649e130
--- /dev/null
+++ b/pkgs/servers/redpanda/hdr-histogram.nix
@@ -0,0 +1,28 @@
+{ clangStdenv
+, cmake
+, fetchFromGitHub
+, lib
+, zlib
+}:
+let
+ pname = "HdrHistogram_c";
+ version = "0.11.5";
+in
+clangStdenv.mkDerivation {
+ inherit pname version;
+ src = fetchFromGitHub {
+ owner = "HdrHistogram";
+ repo = "HdrHistogram_c";
+ rev = version;
+ sha256 = "sha256-29if+0H8wdpQBN48lt0ylGgtUCv/tJYZnG5LzcIqXDs=";
+ };
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ zlib ];
+ meta = with lib; {
+ description = "C port of the HdrHistogram";
+ license = licenses.bsd2;
+ homepage = "https://github.com/HdrHistogram/HdrHistogram_c";
+ maintainers = with maintainers; [ avakhrenev ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/pkgs/servers/redpanda/rapidjson.nix b/pkgs/servers/redpanda/rapidjson.nix
new file mode 100644
index 000000000000..99ada8c05f88
--- /dev/null
+++ b/pkgs/servers/redpanda/rapidjson.nix
@@ -0,0 +1,32 @@
+# rapidjson used in nixpkgs is too old. Although it is technically a latest release, it was made in 2016.
+# Redpanda uses its own version
+{ clangStdenv
+, cmake
+, fetchFromGitHub
+, lib
+, pkg-config
+}:
+
+clangStdenv.mkDerivation rec {
+ pname = "rapidjson";
+ version = "1.1.1";
+
+ src = fetchFromGitHub {
+ owner = "redpanda-data";
+ repo = "rapidjson";
+ rev = "27c3a8dc0e2c9218fe94986d249a12b5ed838f1d";
+ sha256 = "sha256-wggyCL5uEsnJDxkYAUsXOjoO1MNQBGB05E6aSpsNcl0=";
+ };
+
+ nativeBuildInputs = [ pkg-config cmake ];
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Fast JSON parser/generator for C++ with both SAX/DOM style API";
+ homepage = "http://rapidjson.org/";
+ maintainers = with maintainers; [ avakhrenev ];
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
diff --git a/pkgs/servers/redpanda/redpanda.patch b/pkgs/servers/redpanda/redpanda.patch
new file mode 100644
index 000000000000..c3ee76d3c9ae
--- /dev/null
+++ b/pkgs/servers/redpanda/redpanda.patch
@@ -0,0 +1,73 @@
+diff --git a/cmake/main.cmake b/cmake/main.cmake
+index 8c60c4214..194f33a21 100644
+--- a/cmake/main.cmake
++++ b/cmake/main.cmake
+@@ -15,15 +15,6 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
+ set(CMAKE_UNITY_BUILD_BATCH_SIZE 10)
+ set(CMAKE_CXX_EXTENSIONS OFF)
+ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+-list(APPEND BASE_LD_FLAGS_LIST
+- -L${REDPANDA_DEPS_INSTALL_DIR}/lib
+- -L${REDPANDA_DEPS_INSTALL_DIR}/lib64
+- -fuse-ld=lld)
+-set(PKG_CONFIG_PATH_LIST
+- ${REDPANDA_DEPS_INSTALL_DIR}/lib64/pkgconfig
+- ${REDPANDA_DEPS_INSTALL_DIR}/share/pkgconfig
+- ${REDPANDA_DEPS_INSTALL_DIR}/lib/pkgconfig
+- )
+
+ list(APPEND BASE_CXX_FLAGS_LIST -fPIC)
+ list(APPEND BASE_C_FLAGS_LIST -fPIC)
+diff --git a/cmake/testing.cmake b/cmake/testing.cmake
+index 7f149dc82..7c57aa3dd 100644
+--- a/cmake/testing.cmake
++++ b/cmake/testing.cmake
+@@ -24,6 +24,7 @@ message(STATUS "RP_ENABLE_BENCHMARK_TESTS=${RP_ENABLE_BENCHMARK_TESTS}")
+ message(STATUS "RP_ENABLE_HONEY_BADGER_TESTS=${RP_ENABLE_HONEY_BADGER_TESTS}")
+
+ function (rp_test)
++ return()
+ set(options
+ INTEGRATION_TEST UNIT_TEST BENCHMARK_TEST HBADGER_TEST)
+ set(oneValueArgs BINARY_NAME TIMEOUT PREPARE_COMMAND POST_COMMAND)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index eecd145ed..b9efa89b5 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -5,4 +5,5 @@ find_package(Boost REQUIRED
+ unit_test_framework)
+ find_package(absl REQUIRED)
+ add_subdirectory(v)
+-add_subdirectory(go/kreq-gen)
++# Don't build kafka-request-generator, it is needed only for tests
++# add_subdirectory(go/kreq-gen)
+diff --git a/src/v/CMakeLists.txt b/src/v/CMakeLists.txt
+index 075da485e..af7ede2bc 100644
+--- a/src/v/CMakeLists.txt
++++ b/src/v/CMakeLists.txt
+@@ -58,7 +58,9 @@ else()
+ if(${ENABLE_GIT_HASH})
+ message(FATAL_ERROR "ENABLE_GIT_HASH cannot be 'on' when ENABLE_GIT_VERSION is 'off'")
+ endif()
+- set(GIT_VER "no_version")
++ if(NOT GIT_VER)
++ set(GIT_VER "no_version")
++ endif()
+ endif()
+
+ if(${ENABLE_GIT_HASH})
+@@ -71,8 +73,12 @@ if(${ENABLE_GIT_HASH})
+ set(GIT_CLEAN_DIRTY "")
+ endif()
+ else()
+- set(GIT_SHA1 "000")
+- set(GIT_CLEAN_DIRTY "-dev")
++ if(NOT GIT_SHA1)
++ set(GIT_SHA1 "000")
++ endif()
++ if(NOT GIT_CLEAN_DIRTY)
++ set(GIT_CLEAN_DIRTY "-dev")
++ endif()
+ endif()
+
+ configure_file(version.h.in version.h @ONLY)
diff --git a/pkgs/servers/redpanda/seastar-fixes.patch b/pkgs/servers/redpanda/seastar-fixes.patch
new file mode 100644
index 000000000000..c6b12b88c149
--- /dev/null
+++ b/pkgs/servers/redpanda/seastar-fixes.patch
@@ -0,0 +1,13 @@
+diff --git a/include/seastar/core/std-coroutine.hh b/include/seastar/core/std-coroutine.hh
+index ea364bee..57474529 100644
+--- a/include/seastar/core/std-coroutine.hh
++++ b/include/seastar/core/std-coroutine.hh
+@@ -87,7 +87,7 @@ class coroutine_handle {
+
+ explicit operator bool() const noexcept { return _pointer; }
+
+- static coroutine_handle from_address(void* ptr) noexcept {
++ static constexpr coroutine_handle from_address(void* ptr) noexcept {
+ coroutine_handle hndl;
+ hndl._pointer = ptr;
+ return hndl;
diff --git a/pkgs/servers/redpanda/seastar.nix b/pkgs/servers/redpanda/seastar.nix
new file mode 100644
index 000000000000..3c7120e6c876
--- /dev/null
+++ b/pkgs/servers/redpanda/seastar.nix
@@ -0,0 +1,84 @@
+{ boost175
+, c-ares
+, cmake
+, cryptopp
+, fetchFromGitHub
+, fmt_8
+, gnutls
+, hwloc
+, lib
+, libsystemtap
+, libtasn1
+, liburing
+, libxfs
+, lksctp-tools
+, llvmPackages_14
+, lz4
+, ninja
+, numactl
+, openssl
+, pkg-config
+, python3
+, ragel
+, valgrind
+, yaml-cpp
+}:
+let
+ pname = "seastar";
+ version = "22.11.0";
+in
+llvmPackages_14.stdenv.mkDerivation {
+ inherit pname version;
+ strictDeps = true;
+ src = fetchFromGitHub {
+ owner = "redpanda-data";
+ repo = "seastar";
+ rev = "30d3a28bde08d2228b4e560c173b89fdd94c3f05";
+ sha256 = "sha256-Xzu7AJMkvE++BGEqluod3fwMEIpDnbCczmlEad0/4v4=";
+ };
+ nativeBuildInputs = [
+ cmake
+ ninja
+ openssl
+ pkg-config
+ python3
+ ragel
+ ];
+ buildInputs = [
+ libsystemtap
+ libxfs
+ ];
+ propagatedBuildInputs = [
+ boost175
+ c-ares
+ gnutls
+ cryptopp
+ fmt_8
+ hwloc
+ libtasn1
+ liburing
+ lksctp-tools
+ lz4
+ numactl
+ valgrind
+ yaml-cpp
+ ];
+ patches = [
+ ./seastar-fixes.patch
+ ];
+ postPatch = ''
+ patchShebangs ./scripts/seastar-json2code.py
+ '';
+ cmakeFlags = [
+ "-DSeastar_EXCLUDE_DEMOS_FROM_ALL=ON"
+ "-DSeastar_EXCLUDE_TESTS_FROM_ALL=ON"
+ ];
+ doCheck = false;
+ meta = with lib; {
+ description = "High performance server-side application framework.";
+ license = licenses.asl20;
+ homepage = "https://seastar.io/";
+ maintainers = with maintainers; [ avakhrenev ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/pkgs/servers/redpanda/server.nix b/pkgs/servers/redpanda/server.nix
new file mode 100644
index 000000000000..9cb050eb5f45
--- /dev/null
+++ b/pkgs/servers/redpanda/server.nix
@@ -0,0 +1,123 @@
+{ abseil-cpp
+, avro-cpp
+, callPackage
+, ccache
+, cmake
+, crc32c
+, croaring
+, ctre
+, curl
+, dpdk
+, git
+, lib
+, llvmPackages_14
+, llvm_14
+, ninja
+, p11-kit
+, pkg-config
+, procps
+, protobuf3_21
+, python3
+, snappy
+, src
+, unzip
+, version
+, writeShellScriptBin
+, xxHash
+, zip
+, zstd
+}:
+let
+ pname = "redpanda";
+ pythonPackages = p: with p; [ jinja2 ];
+ seastar = callPackage ./seastar.nix { };
+ base64 = callPackage ./base64.nix { };
+ hdr-histogram = callPackage ./hdr-histogram.nix { };
+ kafka-codegen-venv = python3.withPackages (ps: [
+ ps.jinja2
+ ps.jsonschema
+ ]);
+ rapidjson = callPackage ./rapidjson.nix { };
+in
+llvmPackages_14.stdenv.mkDerivation rec {
+ inherit pname version src;
+
+ preConfigure = ''
+ # setup sccache
+ export CCACHE_DIR=$TMPDIR/sccache-redpanda
+ mkdir -p $CCACHE_DIR
+ '';
+ patches = [
+ ./redpanda.patch
+ ];
+ postPatch = ''
+ # Fix 'error: use of undeclared identifier 'roaring'; did you mean 'Roaring
+ # qualified reference to 'Roaring' is a constructor name rather than a type in this context'
+ substituteInPlace \
+ ./src/v/storage/compacted_offset_list.h \
+ ./src/v/storage/compaction_reducers.cc \
+ ./src/v/storage/compaction_reducers.h \
+ ./src/v/storage/segment_utils.h \
+ ./src/v/storage/segment_utils.cc \
+ --replace 'roaring::Roaring' 'Roaring'
+
+ patchShebangs ./src/v/rpc/rpc_compiler.py
+ '';
+
+ doCheck = false;
+
+ nativeBuildInputs = [
+ (python3.withPackages pythonPackages)
+ (writeShellScriptBin "kafka-codegen-venv" "exec -a $0 ${kafka-codegen-venv}/bin/python3 $@")
+ ccache
+ cmake
+ curl
+ git
+ llvm_14
+ ninja
+ pkg-config
+ procps
+ seastar
+ unzip
+ zip
+ ];
+
+ cmakeFlags = [
+ "-DREDPANDA_DEPS_SKIP_BUILD=ON"
+ "-DRP_ENABLE_TESTS=OFF"
+ "-Wno-dev"
+ "-DGIT_VER=${version}"
+ "-DGIT_CLEAN_DIRTY=\"\""
+ ];
+
+ buildInputs = [
+ abseil-cpp
+ avro-cpp
+ base64
+ crc32c
+ croaring
+ ctre
+ dpdk
+ hdr-histogram
+ p11-kit
+ protobuf3_21
+ rapidjson
+ seastar
+ snappy
+ xxHash
+ zstd
+ ];
+
+ meta = with lib; {
+ description = "Kafka-compatible streaming platform.";
+ license = licenses.bsl11;
+ longDescription = ''
+ Redpanda is a Kafka-compatible streaming data platform that is
+ proven to be 10x faster and 6x lower in total costs. It is also JVM-free,
+ ZooKeeper-free, Jepsen-tested and source available.
+ '';
+ homepage = "https://redpanda.com/";
+ maintainers = with maintainers; [ avakhrenev happysalada ];
+ platforms = platforms.linux;
+ };
+}
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/servers/teleport/default.nix b/pkgs/servers/teleport/default.nix
index 9025c9151bb7..52c21cb63674 100644
--- a/pkgs/servers/teleport/default.nix
+++ b/pkgs/servers/teleport/default.nix
@@ -2,17 +2,21 @@
, buildGoModule
, rustPlatform
, fetchFromGitHub
+, fetchYarnDeps
, makeWrapper
, symlinkJoin
, CoreFoundation
, AppKit
, libfido2
+, nodejs
, openssl
, pkg-config
, protobuf
, Security
, stdenv
, xdg-utils
+, yarn
+, yarn2nix-moretea
, nixosTests
, withRdpClient ? true
@@ -23,13 +27,13 @@ let
owner = "gravitational";
repo = "teleport";
rev = "v${version}";
- hash = "sha256-dr+tmWVO7yXRLTvJZoFZzayRWETa8wC/aZ7S/vh8qyk=";
+ hash = "sha256-jJfOgcwKkNFO/5XHxMoapZxM8Tb0kEgKVA7SrMU7uW4=";
};
- version = "11.2.3";
+ version = "11.3.4";
rdpClient = rustPlatform.buildRustPackage rec {
pname = "teleport-rdpclient";
- cargoHash = "sha256-8NTzX9HeGg9U3bmiZHXHTcKnbJk55YfY2bkjilEyg0g=";
+ cargoHash = "sha256-TSIwLCY01ygCWT73LR/Ch7NwPQA3a3r0PyL3hUzBNr4=";
inherit version src;
buildAndTestSubdir = "lib/srv/desktop/rdp/rdpclient";
@@ -50,19 +54,49 @@ let
'';
};
- webassets = fetchFromGitHub {
- owner = "gravitational";
- repo = "webassets";
- # Submodule rev from https://github.com/gravitational/teleport/tree/v11.2.3
- rev = "cbddcfda9d5ccba11f02ee61bd305c1f600ee6b0";
- hash = "sha256-XPcQaMyf6kEj5RDRKjNO5b+n1zj/TpBHcDnGhYVUbts=";
+ yarnOfflineCache = fetchYarnDeps {
+ yarnLock = "${src}/yarn.lock";
+ hash = "sha256-MAGeWzA366yzpjdCY0+X6RV5MKcsHa/xD5CJu6ce1FU=";
+ };
+
+ webassets = stdenv.mkDerivation {
+ pname = "teleport-webassets";
+ inherit src version;
+
+ nativeBuildInputs = [
+ nodejs
+ yarn
+ yarn2nix-moretea.fixup_yarn_lock
+ ];
+
+ configurePhase = ''
+ export HOME=$(mktemp -d)
+ '';
+
+ buildPhase = ''
+ yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
+ fixup_yarn_lock yarn.lock
+
+ yarn install --offline \
+ --frozen-lockfile \
+ --ignore-engines --ignore-scripts
+ patchShebangs .
+
+ yarn build-ui-oss
+ '';
+
+ installPhase = ''
+ mkdir -p $out
+ cp -R webassets/. $out
+ '';
};
in
buildGoModule rec {
pname = "teleport";
inherit src version;
- vendorHash = "sha256-rWdRVOaPPK2oXK6fXka4FtuxEkaQf4igm7xlg0wauMs=";
+ vendorHash = "sha256-NkiFLEHBNjxUOSuAlVugAV14yCCo3z6yhX7LZQFKhvA=";
+ proxyVendor = true;
subPackages = [ "tool/tbot" "tool/tctl" "tool/teleport" "tool/tsh" ];
tags = [ "libfido2" "webassets_embed" ]
@@ -85,10 +119,7 @@ buildGoModule rec {
outputs = [ "out" "client" ];
preBuild = ''
- mkdir -p build
- echo "making webassets"
- cp -r ${webassets}/* webassets/
- make -j$NIX_BUILD_CORES lib/web/build/webassets
+ cp -r ${webassets} webassets
'' + lib.optionalString withRdpClient ''
ln -s ${rdpClient}/lib/* lib/
ln -s ${rdpClient}/include/* lib/srv/desktop/rdp/rdpclient/
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" ];
diff --git a/pkgs/shells/nix-your-shell/default.nix b/pkgs/shells/nix-your-shell/default.nix
index 98125cd4b41d..e957fdba7525 100644
--- a/pkgs/shells/nix-your-shell/default.nix
+++ b/pkgs/shells/nix-your-shell/default.nix
@@ -5,16 +5,16 @@
}:
rustPlatform.buildRustPackage rec {
pname = "nix-your-shell";
- version = "1.0.2";
+ version = "1.1.0";
src = fetchFromGitHub {
owner = "MercuryTechnologies";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-W3MeApvqO3hBaHWu6vyrR6pniEMMKiXTAQ0bhUPbpx8=";
+ sha256 = "sha256-MXshCRgGL2V51Pd1ms6D0Sn0mtRcxd0pWUz+zghBTdI=";
};
- cargoSha256 = "sha256-M6yj4jTTWnembVX51/Xz+JtKhWJsmQ7SpipH8pHzids=";
+ cargoSha256 = "sha256-f1igCSdv6iMUDeCDGSxDIecjVcJQN2jbdALGMpDVepQ=";
meta = with lib; {
description = "A `nix` and `nix-shell` wrapper for shells other than `bash`";
diff --git a/pkgs/tools/X11/paperview/default.nix b/pkgs/tools/X11/paperview/default.nix
new file mode 100644
index 000000000000..790eaed53ab5
--- /dev/null
+++ b/pkgs/tools/X11/paperview/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, libX11
+, SDL2
+}:
+
+stdenv.mkDerivation rec {
+ pname = "paperview";
+ version = "unstable-2020-09-22";
+
+ src = fetchFromGitHub {
+ owner = "glouw";
+ repo = "paperview";
+ rev = "40162fb76566fec8163c338c169c2fcd9df6ef42";
+ hash = "sha256-rvf89vMIT274+Hva+N4KFu1iT2XE6fq5Bi4kOQg2M0g=";
+ };
+
+ buildInputs = [
+ SDL2
+ libX11
+ ];
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ ];
+
+ meta = with lib; {
+ description = "A high performance X11 animated wallpaper setter";
+ homepage = "https://github.com/glouw/paperview";
+ platforms = platforms.linux;
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ _3JlOy-PYCCKUi ];
+ };
+}
diff --git a/pkgs/tools/misc/boxxy/default.nix b/pkgs/tools/misc/boxxy/default.nix
index faadff736577..6c42e7131c86 100644
--- a/pkgs/tools/misc/boxxy/default.nix
+++ b/pkgs/tools/misc/boxxy/default.nix
@@ -1,26 +1,28 @@
{ lib
, rustPlatform
, fetchFromGitHub
+, stdenv
}:
rustPlatform.buildRustPackage rec {
pname = "boxxy";
- version = "0.2.7";
+ version = "0.3.4";
src = fetchFromGitHub {
owner = "queer";
repo = "boxxy";
rev = "v${version}";
- hash = "sha256-mvSarA0rZuOQvgf2NJXWIWoeZtvb+D/GofAHPKQDH6U=";
+ hash = "sha256-bFDGZhwawOPzXR0ODD61h/wVUibNVl7ayiV9jfvTI6c=";
};
- cargoHash = "sha256-Psc9qErqi3aangNowXxhkEXphFCR7pp+DKTKtk6tMo0=";
+ cargoHash = "sha256-oO0cb5PZ2BdJnB+Uyu5ZHpYR5znoeGa/RpyQAXLlrBQ=";
meta = with lib; {
description = "Puts bad Linux applications in a box with only their files";
homepage = "https://github.com/queer/boxxy";
license = licenses.mit;
- maintainers = with maintainers; [ dit7ya ];
+ maintainers = with maintainers; [ dit7ya figsoda ];
platforms = platforms.linux;
+ broken = stdenv.isAarch64;
};
}
diff --git a/pkgs/tools/misc/mpy-utils/default.nix b/pkgs/tools/misc/mpy-utils/default.nix
new file mode 100644
index 000000000000..ea816126858b
--- /dev/null
+++ b/pkgs/tools/misc/mpy-utils/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, lib, python3, buildPythonApplication, fetchPypi, fusepy, pyserial }:
+
+buildPythonApplication rec {
+ pname = "mpy-utils";
+ version = "0.1.13";
+
+ src = fetchPypi {
+ inherit pname version;
+ hash = "sha256-die8hseaidhs9X7mfFvV8C8zn0uyw08gcHNqmjl+2Z4=";
+ };
+
+ propagatedBuildInputs = [ fusepy pyserial ];
+
+ meta = with lib; {
+ description = "MicroPython development utility programs";
+ homepage = "https://github.com/nickzoic/mpy-utils";
+ license = licenses.mit;
+ maintainers = with maintainers; [ aciceri ];
+ broken = stdenv.isDarwin;
+ };
+}
diff --git a/pkgs/tools/misc/mutagen-compose/default.nix b/pkgs/tools/misc/mutagen-compose/default.nix
index 12bab29944b5..1cd914bec657 100644
--- a/pkgs/tools/misc/mutagen-compose/default.nix
+++ b/pkgs/tools/misc/mutagen-compose/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "mutagen-compose";
- version = "0.16.4";
+ version = "0.16.5";
src = fetchFromGitHub {
owner = "mutagen-io";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-V+9TSzCwBITpG7j3mOyPMQN1VwYSPRFgOBPiF3LZVmk=";
+ sha256 = "sha256-Rn3aXwez/WUGpuRvA6lkuECchpYek8KDMh6xzZOV9v0=";
};
- vendorHash = "sha256-m6XCXwns2if7Odhc2nFbXbGhif4vElrVjcBX0DULkCE=";
+ vendorHash = "sha256-EkLeB2zUJkKCWsJxMiYHSDgr0/8X24MT0Jp0nuYebds=";
doCheck = false;
diff --git a/pkgs/tools/misc/ntfy-sh/default.nix b/pkgs/tools/misc/ntfy-sh/default.nix
index 232c913d4a77..0909e0059c9a 100644
--- a/pkgs/tools/misc/ntfy-sh/default.nix
+++ b/pkgs/tools/misc/ntfy-sh/default.nix
@@ -10,16 +10,16 @@ let
in
buildGoModule rec {
pname = "ntfy-sh";
- version = "1.30.1";
+ version = "1.31.0";
src = fetchFromGitHub {
owner = "binwiederhier";
repo = "ntfy";
rev = "v${version}";
- sha256 = "sha256-MgjCfYYv4tBZHsoj9oXGKYOQb0Anp0zVD/vc+UpAiAc=";
+ sha256 = "sha256-SQOiVHhdwOmzWVPtr1hw9oz8G/xjz5HghYcNN/u3ITo=";
};
- vendorSha256 = "sha256-8TQVpJ02EPve1OUP6RHbvwBug8larSO3BgBiCfL2614=";
+ vendorSha256 = "sha256-Ffmz7c/FMtXjmanZYp8vquxUu+eSTqtR5nesNdN/F0c=";
doCheck = false;
diff --git a/pkgs/tools/misc/turbo/default.nix b/pkgs/tools/misc/turbo/default.nix
new file mode 100644
index 000000000000..5aca983252df
--- /dev/null
+++ b/pkgs/tools/misc/turbo/default.nix
@@ -0,0 +1,91 @@
+{ lib
+, fetchFromGitHub
+, buildGoModule
+, git
+, nodejs
+, protobuf
+, protoc-gen-go
+, protoc-gen-go-grpc
+, rustPlatform
+, pkg-config
+, openssl
+, extra-cmake-modules
+, fontconfig
+, go
+}:
+let
+ version = "1.7.0";
+ src = fetchFromGitHub {
+ owner = "vercel";
+ repo = "turbo";
+ rev = "v${version}";
+ sha256 = "YTuEv2S3jNV2o7HJML+P6OMazgwgRhUPnd/zaTWfDWs=";
+ };
+
+ go-turbo = buildGoModule rec {
+ inherit src version;
+ pname = "go-turbo";
+ modRoot = "cli";
+
+ vendorSha256 = "Kx/CLFv23h2TmGe8Jwu+S3QcONfqeHk2fCW1na75c0s=";
+
+ nativeBuildInputs = [
+ git
+ nodejs
+ protobuf
+ protoc-gen-go
+ protoc-gen-go-grpc
+ ];
+
+ preBuild = ''
+ make compile-protos
+ '';
+
+ preCheck = ''
+ # Some tests try to run mkdir $HOME
+ HOME=$TMP
+
+ # Test_getTraversePath requires that source is a git repo
+ # pwd: /build/source/cli
+ pushd ..
+ git config --global init.defaultBranch main
+ git init
+ popd
+ '';
+
+ };
+in
+rustPlatform.buildRustPackage rec {
+ pname = "turbo";
+ inherit src version;
+ cargoBuildFlags = [
+ "--package"
+ "turbo"
+ ];
+ RELEASE_TURBO_CLI = "true";
+
+ cargoSha256 = "ENw6NU3Fedd+OJEEWgL8A54aowNqjn3iv7rxlr+/4ZE=";
+ RUSTC_BOOTSTRAP = 1;
+ nativeBuildInputs = [
+ pkg-config
+ extra-cmake-modules
+ ];
+ buildInputs = [
+ openssl
+ fontconfig
+ ];
+
+ postInstall = ''
+ ln -s ${go-turbo}/bin/turbo $out/bin/go-turbo
+ '';
+
+ # Browser tests time out with chromium and google-chrome
+ doCheck = false;
+
+ meta = with lib; {
+ description = "High-performance build system for JavaScript and TypeScript codebases";
+ homepage = "https://turbo.build/";
+ maintainers = with maintainers; [ dlip ];
+ license = licenses.mpl20;
+ };
+}
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 ];
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')
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[-1].container_tag}>")
- self._headings.pop()
+ heading = self._headings.pop()
+ if heading.container_tag == 'part' and not heading.partintro_closed:
+ result.append("")
+ result.append(f"{heading.container_tag}>")
else:
break
return "\n".join(result)
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 95091d3cdd28..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
@@ -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)
@@ -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 += [
'