Merge master into haskell-updates
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
generated
|
||||
manual-combined.xml
|
||||
@@ -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
|
||||
@@ -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}
|
||||
<xi:include href="imperative-containers.section.xml" />
|
||||
<xi:include href="declarative-containers.section.xml" />
|
||||
<xi:include href="container-networking.section.xml" />
|
||||
```{=include=} sections
|
||||
imperative-containers.section.md
|
||||
declarative-containers.section.md
|
||||
container-networking.section.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
|
||||
```
|
||||
@@ -1,21 +0,0 @@
|
||||
<part xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
version="5.0"
|
||||
xml:id="ch-running">
|
||||
<title>Administration</title>
|
||||
<partintro xml:id="ch-running-intro">
|
||||
<para>
|
||||
This chapter describes various aspects of managing a running NixOS system,
|
||||
such as how to use the <command>systemd</command> service manager.
|
||||
</para>
|
||||
</partintro>
|
||||
<xi:include href="../from_md/administration/service-mgmt.chapter.xml" />
|
||||
<xi:include href="../from_md/administration/rebooting.chapter.xml" />
|
||||
<xi:include href="../from_md/administration/user-sessions.chapter.xml" />
|
||||
<xi:include href="../from_md/administration/control-groups.chapter.xml" />
|
||||
<xi:include href="../from_md/administration/logging.chapter.xml" />
|
||||
<xi:include href="../from_md/administration/cleaning-store.chapter.xml" />
|
||||
<xi:include href="../from_md/administration/containers.chapter.xml" />
|
||||
<xi:include href="../from_md/administration/troubleshooting.chapter.xml" />
|
||||
</part>
|
||||
@@ -3,10 +3,10 @@
|
||||
This chapter describes solutions to common problems you might encounter
|
||||
when you manage your NixOS system.
|
||||
|
||||
```{=docbook}
|
||||
<xi:include href="boot-problems.section.xml" />
|
||||
<xi:include href="maintenance-mode.section.xml" />
|
||||
<xi:include href="rollback.section.xml" />
|
||||
<xi:include href="store-corruption.section.xml" />
|
||||
<xi:include href="network-problems.section.xml" />
|
||||
```{=include=} sections
|
||||
boot-problems.section.md
|
||||
maintenance-mode.section.md
|
||||
rollback.section.md
|
||||
store-corruption.section.md
|
||||
network-problems.section.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}
|
||||
<xi:include href="config-file.section.xml" />
|
||||
<xi:include href="abstractions.section.xml" />
|
||||
<xi:include href="modularity.section.xml" />
|
||||
```{=include=} sections
|
||||
config-file.section.md
|
||||
abstractions.section.md
|
||||
modularity.section.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
|
||||
```
|
||||
<!-- Apache; libvirtd virtualisation -->
|
||||
@@ -1,31 +0,0 @@
|
||||
<part xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
version="5.0"
|
||||
xml:id="ch-configuration">
|
||||
<title>Configuration</title>
|
||||
<partintro xml:id="ch-configuration-intro">
|
||||
<para>
|
||||
This chapter describes how to configure various aspects of a NixOS machine
|
||||
through the configuration file
|
||||
<filename>/etc/nixos/configuration.nix</filename>. As described in
|
||||
<xref linkend="sec-changing-config" />, changes to this file only take
|
||||
effect after you run <command>nixos-rebuild</command>.
|
||||
</para>
|
||||
</partintro>
|
||||
<xi:include href="../from_md/configuration/config-syntax.chapter.xml" />
|
||||
<xi:include href="../from_md/configuration/package-mgmt.chapter.xml" />
|
||||
<xi:include href="../from_md/configuration/user-mgmt.chapter.xml" />
|
||||
<xi:include href="../from_md/configuration/file-systems.chapter.xml" />
|
||||
<xi:include href="../from_md/configuration/x-windows.chapter.xml" />
|
||||
<xi:include href="../from_md/configuration/wayland.chapter.xml" />
|
||||
<xi:include href="../from_md/configuration/gpu-accel.chapter.xml" />
|
||||
<xi:include href="../from_md/configuration/xfce.chapter.xml" />
|
||||
<xi:include href="../from_md/configuration/networking.chapter.xml" />
|
||||
<xi:include href="../from_md/configuration/linux-kernel.chapter.xml" />
|
||||
<xi:include href="../from_md/configuration/subversion.chapter.xml" />
|
||||
<xi:include href="../generated/modules.xml" xpointer="xpointer(//section[@id='modules']/*)" />
|
||||
<xi:include href="../from_md/configuration/profiles.chapter.xml" />
|
||||
<xi:include href="../from_md/configuration/kubernetes.chapter.xml" />
|
||||
<!-- Apache; libvirtd virtualisation -->
|
||||
</part>
|
||||
@@ -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}
|
||||
<xi:include href="customizing-packages.section.xml" />
|
||||
<xi:include href="adding-custom-packages.section.xml" />
|
||||
```{=include=} sections
|
||||
customizing-packages.section.md
|
||||
adding-custom-packages.section.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}
|
||||
<xi:include href="luks-file-systems.section.xml" />
|
||||
<xi:include href="sshfs-file-systems.section.xml" />
|
||||
```{=include=} sections
|
||||
luks-file-systems.section.md
|
||||
sshfs-file-systems.section.md
|
||||
```
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
This section describes how to configure networking components
|
||||
on your NixOS machine.
|
||||
|
||||
```{=docbook}
|
||||
<xi:include href="network-manager.section.xml" />
|
||||
<xi:include href="ssh.section.xml" />
|
||||
<xi:include href="ipv4-config.section.xml" />
|
||||
<xi:include href="ipv6-config.section.xml" />
|
||||
<xi:include href="firewall.section.xml" />
|
||||
<xi:include href="wireless.section.xml" />
|
||||
<xi:include href="ad-hoc-network-config.section.xml" />
|
||||
<xi:include href="renaming-interfaces.section.xml" />
|
||||
```{=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
|
||||
```
|
||||
<!-- TODO: OpenVPN, NAT -->
|
||||
|
||||
@@ -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}
|
||||
<xi:include href="declarative-packages.section.xml" />
|
||||
<xi:include href="ad-hoc-packages.section.xml" />
|
||||
```{=include=} sections
|
||||
declarative-packages.section.md
|
||||
ad-hoc-packages.section.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}
|
||||
<xi:include href="profiles/all-hardware.section.xml" />
|
||||
<xi:include href="profiles/base.section.xml" />
|
||||
<xi:include href="profiles/clone-config.section.xml" />
|
||||
<xi:include href="profiles/demo.section.xml" />
|
||||
<xi:include href="profiles/docker-container.section.xml" />
|
||||
<xi:include href="profiles/graphical.section.xml" />
|
||||
<xi:include href="profiles/hardened.section.xml" />
|
||||
<xi:include href="profiles/headless.section.xml" />
|
||||
<xi:include href="profiles/installation-device.section.xml" />
|
||||
<xi:include href="profiles/minimal.section.xml" />
|
||||
<xi:include href="profiles/qemu-guest.section.xml" />
|
||||
```{=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
|
||||
```
|
||||
|
||||
@@ -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"
|
||||
''
|
||||
<toc role="chunk-toc">
|
||||
@@ -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
|
||||
|
||||
@@ -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 `<previous>`)
|
||||
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=<previous>`. 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.
|
||||
@@ -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
|
||||
```
|
||||
@@ -1,20 +0,0 @@
|
||||
<part xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
version="5.0"
|
||||
xml:id="ch-development">
|
||||
<title>Development</title>
|
||||
<partintro xml:id="ch-development-intro">
|
||||
<para>
|
||||
This chapter describes how you can modify and extend NixOS.
|
||||
</para>
|
||||
</partintro>
|
||||
<xi:include href="../from_md/development/sources.chapter.xml" />
|
||||
<xi:include href="../from_md/development/writing-modules.chapter.xml" />
|
||||
<xi:include href="../from_md/development/building-parts.chapter.xml" />
|
||||
<xi:include href="../from_md/development/bootspec.chapter.xml" />
|
||||
<xi:include href="../from_md/development/what-happens-during-a-system-switch.chapter.xml" />
|
||||
<xi:include href="../from_md/development/writing-documentation.chapter.xml" />
|
||||
<xi:include href="../from_md/development/nixos-tests.chapter.xml" />
|
||||
<xi:include href="../from_md/development/testing-installer.chapter.xml" />
|
||||
</part>
|
||||
@@ -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}
|
||||
<xi:include href="writing-nixos-tests.section.xml" />
|
||||
<xi:include href="running-nixos-tests.section.xml" />
|
||||
<xi:include href="running-nixos-tests-interactively.section.xml" />
|
||||
<xi:include href="linking-nixos-tests-to-packages.section.xml" />
|
||||
```{=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
|
||||
```
|
||||
|
||||
@@ -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}
|
||||
<xi:include href="unit-handling.section.xml" />
|
||||
<xi:include href="activation-script.section.xml" />
|
||||
```{=include=} sections
|
||||
unit-handling.section.md
|
||||
activation-script.section.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.
|
||||
|
||||
@@ -189,14 +189,14 @@ in {
|
||||
```
|
||||
:::
|
||||
|
||||
```{=docbook}
|
||||
<xi:include href="option-declarations.section.xml" />
|
||||
<xi:include href="option-types.section.xml" />
|
||||
<xi:include href="option-def.section.xml" />
|
||||
<xi:include href="assertions.section.xml" />
|
||||
<xi:include href="meta-attributes.section.xml" />
|
||||
<xi:include href="importing-modules.section.xml" />
|
||||
<xi:include href="replace-modules.section.xml" />
|
||||
<xi:include href="freeform-modules.section.xml" />
|
||||
<xi:include href="settings-options.section.xml" />
|
||||
```{=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
|
||||
```
|
||||
|
||||
@@ -470,6 +470,8 @@ In that case, `numpy` is chosen from the generic `python3Packages`.
|
||||
|
||||
The following options can be used when writing tests.
|
||||
|
||||
```{=docbook}
|
||||
<xi:include href="../../generated/test-options-db.xml" xpointer="test-options-list"/>
|
||||
```{=include=} options
|
||||
id-prefix: test-opt-
|
||||
list-id: test-options-list
|
||||
source: @NIXOS_TEST_OPTIONS_JSON@
|
||||
```
|
||||
|
||||
@@ -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
|
||||
```
|
||||
@@ -1,18 +0,0 @@
|
||||
<part xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
version="5.0"
|
||||
xml:id="ch-installation">
|
||||
<title>Installation</title>
|
||||
<partintro xml:id="ch-installation-intro">
|
||||
<para>
|
||||
This section describes how to obtain, install, and configure NixOS for
|
||||
first-time use.
|
||||
</para>
|
||||
</partintro>
|
||||
<xi:include href="../from_md/installation/obtaining.chapter.xml" />
|
||||
<xi:include href="../from_md/installation/installing.chapter.xml" />
|
||||
<xi:include href="../from_md/installation/changing-config.chapter.xml" />
|
||||
<xi:include href="../from_md/installation/upgrading.chapter.xml" />
|
||||
<xi:include href="../from_md/installation/building-nixos.chapter.xml" />
|
||||
</part>
|
||||
@@ -602,11 +602,11 @@ With a partitioned disk.
|
||||
|
||||
## Additional installation notes {#sec-installation-additional-notes}
|
||||
|
||||
```{=docbook}
|
||||
<xi:include href="installing-usb.section.xml" />
|
||||
<xi:include href="installing-pxe.section.xml" />
|
||||
<xi:include href="installing-kexec.section.xml" />
|
||||
<xi:include href="installing-virtualbox-guest.section.xml" />
|
||||
<xi:include href="installing-from-other-distro.section.xml" />
|
||||
<xi:include href="installing-behind-a-proxy.section.xml" />
|
||||
```{=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
|
||||
```
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
<refentry xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<refmeta>
|
||||
<refentrytitle><filename>configuration.nix</filename>
|
||||
</refentrytitle><manvolnum>5</manvolnum>
|
||||
<refmiscinfo class="source">NixOS</refmiscinfo>
|
||||
<!-- <refmiscinfo class="version"><xi:include href="version.txt" parse="text"/></refmiscinfo> -->
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname><filename>configuration.nix</filename></refname>
|
||||
<refpurpose>NixOS system configuration specification</refpurpose>
|
||||
</refnamediv>
|
||||
<refsection>
|
||||
<title>Description</title>
|
||||
<para>
|
||||
The file <filename>/etc/nixos/configuration.nix</filename> contains the
|
||||
declarative specification of your NixOS system configuration. The command
|
||||
<command>nixos-rebuild</command> takes this file and realises the system
|
||||
configuration specified therein.
|
||||
</para>
|
||||
</refsection>
|
||||
<refsection>
|
||||
<title>Options</title>
|
||||
<para>
|
||||
You can use the following options in <filename>configuration.nix</filename>.
|
||||
</para>
|
||||
<xi:include href="./generated/options-db.xml"
|
||||
xpointer="configuration-variable-list" />
|
||||
</refsection>
|
||||
</refentry>
|
||||
@@ -14,5 +14,33 @@
|
||||
<copyright><year>2007-2022</year><holder>Eelco Dolstra and the Nixpkgs/NixOS contributors</holder>
|
||||
</copyright>
|
||||
</info>
|
||||
<xi:include href="man-configuration.xml" />
|
||||
<refentry>
|
||||
<refmeta>
|
||||
<refentrytitle><filename>configuration.nix</filename>
|
||||
</refentrytitle><manvolnum>5</manvolnum>
|
||||
<refmiscinfo class="source">NixOS</refmiscinfo>
|
||||
<!-- <refmiscinfo class="version"><xi:include href="version.txt" parse="text"/></refmiscinfo> -->
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname><filename>configuration.nix</filename></refname>
|
||||
<refpurpose>NixOS system configuration specification</refpurpose>
|
||||
</refnamediv>
|
||||
<refsection>
|
||||
<title>Description</title>
|
||||
<para>
|
||||
The file <filename>/etc/nixos/configuration.nix</filename> contains the
|
||||
declarative specification of your NixOS system configuration. The command
|
||||
<command>nixos-rebuild</command> takes this file and realises the system
|
||||
configuration specified therein.
|
||||
</para>
|
||||
</refsection>
|
||||
<refsection>
|
||||
<title>Options</title>
|
||||
<para>
|
||||
You can use the following options in <filename>configuration.nix</filename>.
|
||||
</para>
|
||||
<xi:include href="./generated/options-db.xml"
|
||||
xpointer="configuration-variable-list" />
|
||||
</refsection>
|
||||
</refentry>
|
||||
</reference>
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
# NixOS Manual {#book-nixos-manual}
|
||||
## Version @NIXOS_VERSION@
|
||||
|
||||
<!--
|
||||
this is the top-level structure file for the nixos manual.
|
||||
|
||||
the manual structure extends the nixpkgs commonmark further with include
|
||||
blocks to allow better organization of input text. there are six types of
|
||||
include blocks: preface, parts, chapters, sections, appendix, and options.
|
||||
each type except `options`` corresponds to the docbook elements of (roughly)
|
||||
the same name, and can itself can further include blocks to denote its
|
||||
substructure.
|
||||
|
||||
non-`options`` include blocks are fenced code blocks that list a number of
|
||||
files to include, in the form
|
||||
|
||||
```{=include=} <type>
|
||||
<file-name-1>
|
||||
<file-name-2>
|
||||
<...>
|
||||
```
|
||||
|
||||
`options` include blocks do not list file names but contain a list of key-value
|
||||
pairs that describe the options to be included and how to convert them into
|
||||
elements of the manual output type:
|
||||
|
||||
```{=include=} options
|
||||
id-prefix: <options id prefix>
|
||||
list-id: <variable list element id>
|
||||
source: <path to options.json>
|
||||
```
|
||||
|
||||
-->
|
||||
|
||||
```{=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
|
||||
```
|
||||
@@ -1,23 +0,0 @@
|
||||
<book xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
version="5.0"
|
||||
xml:id="book-nixos-manual">
|
||||
<info>
|
||||
<title>NixOS Manual</title>
|
||||
<subtitle>Version <xi:include href="./generated/version" parse="text" />
|
||||
</subtitle>
|
||||
</info>
|
||||
<xi:include href="preface.xml" />
|
||||
<xi:include href="installation/installation.xml" />
|
||||
<xi:include href="configuration/configuration.xml" />
|
||||
<xi:include href="administration/running.xml" />
|
||||
<xi:include href="development/development.xml" />
|
||||
<xi:include href="./from_md/contributing-to-this-manual.chapter.xml" />
|
||||
<appendix xml:id="ch-options">
|
||||
<title>Configuration Options</title>
|
||||
<xi:include href="./generated/options-db.xml"
|
||||
xpointer="configuration-variable-list" />
|
||||
</appendix>
|
||||
<xi:include href="release-notes/release-notes.xml" />
|
||||
</book>
|
||||
@@ -0,0 +1,7 @@
|
||||
# Configuration Options {#ch-options}
|
||||
|
||||
```{=include=} options
|
||||
id-prefix: opt-
|
||||
list-id: configuration-variable-list
|
||||
source: @NIXOS_OPTIONS_JSON@
|
||||
```
|
||||
@@ -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.
|
||||
:::
|
||||
@@ -1,42 +0,0 @@
|
||||
<preface xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xml:id="preface">
|
||||
<title>Preface</title>
|
||||
<para>
|
||||
This manual describes how to install, use and extend NixOS, a Linux
|
||||
distribution based on the purely functional package management system
|
||||
<link xlink:href="https://nixos.org/nix">Nix</link>, that is composed
|
||||
using modules and packages defined in the
|
||||
<link xlink:href="https://nixos.org/nixpkgs">Nixpkgs</link> project.
|
||||
</para>
|
||||
<para>
|
||||
Additional information regarding the Nix package manager and the Nixpkgs
|
||||
project can be found in respectively the
|
||||
<link xlink:href="https://nixos.org/nix/manual">Nix manual</link> and the
|
||||
<link xlink:href="https://nixos.org/nixpkgs/manual">Nixpkgs manual</link>.
|
||||
</para>
|
||||
<para>
|
||||
If you encounter problems, please report them on the
|
||||
<literal
|
||||
xlink:href="https://discourse.nixos.org">Discourse</literal>,
|
||||
the <link
|
||||
xlink:href="https://matrix.to/#nix:nixos.org">Matrix room</link>,
|
||||
or on the <link
|
||||
xlink:href="irc://irc.libera.chat/#nixos">
|
||||
<literal>#nixos</literal> channel on Libera.Chat</link>.
|
||||
Alternatively, consider <link
|
||||
xlink:href="#chap-contributing">
|
||||
contributing to this manual</link>. Bugs should be
|
||||
reported in
|
||||
<link
|
||||
xlink:href="https://github.com/NixOS/nixpkgs/issues">NixOS’
|
||||
GitHub issue tracker</link>.
|
||||
</para>
|
||||
<note>
|
||||
<para>
|
||||
Commands prefixed with <literal>#</literal> have to be run as root, either
|
||||
requiring to login as root user or temporarily switching to it using
|
||||
<literal>sudo</literal> for example.
|
||||
</para>
|
||||
</note>
|
||||
</preface>
|
||||
@@ -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
|
||||
```
|
||||
@@ -1,30 +0,0 @@
|
||||
<appendix xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
version="5.0"
|
||||
xml:id="ch-release-notes">
|
||||
<title>Release Notes</title>
|
||||
<para>
|
||||
This section lists the release notes for each stable version of NixOS and
|
||||
current unstable revision.
|
||||
</para>
|
||||
<xi:include href="../from_md/release-notes/rl-2305.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-2211.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-2205.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-2111.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-2105.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-2009.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-2003.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-1909.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-1903.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-1809.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-1803.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-1709.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-1703.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-1609.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-1603.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-1509.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-1412.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-1404.section.xml" />
|
||||
<xi:include href="../from_md/release-notes/rl-1310.section.xml" />
|
||||
</appendix>
|
||||
@@ -1,8 +0,0 @@
|
||||
let
|
||||
pkgs = import ../../.. { };
|
||||
in
|
||||
pkgs.mkShell {
|
||||
name = "nixos-manual";
|
||||
|
||||
packages = with pkgs; [ xmlformat jing xmloscopy ruby ];
|
||||
}
|
||||
@@ -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.
|
||||
#
|
||||
# <varlistentry>
|
||||
# <term><varname>types.separatedString</varname><replaceable>sep</replaceable> <----
|
||||
# </term>
|
||||
# ...
|
||||
#
|
||||
# Generates: types.separatedStringsep
|
||||
# ^^^^
|
||||
#
|
||||
# <varlistentry xml:id='fun-makeWrapper'>
|
||||
# <term>
|
||||
# <function>makeWrapper</function><replaceable>executable</replaceable><replaceable>wrapperfile</replaceable><replaceable>args</replaceable> <----
|
||||
# </term>
|
||||
#
|
||||
# Generates: makeWrapperexecutablewrapperfileargs
|
||||
# ^^^^ ^^^^ ^^ ^^
|
||||
#
|
||||
# <term>
|
||||
# <option>--option</option><replaceable>name</replaceable><replaceable>value</replaceable> <-----
|
||||
# </term>
|
||||
#
|
||||
# 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
|
||||
|
||||
|
||||
|
||||
# <cmdsynopsis>
|
||||
# <command>nixos-option</command>
|
||||
# <arg>
|
||||
# <option>-I</option><replaceable>path</replaceable> <------
|
||||
# </arg>
|
||||
#
|
||||
# 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
|
||||
|
||||
# <cmdsynopsis>
|
||||
# <arg>
|
||||
# <group choice='req'>
|
||||
# <arg choice='plain'>
|
||||
# <option>--profile-name</option>
|
||||
# </arg>
|
||||
#
|
||||
# <arg choice='plain'>
|
||||
# <option>-p</option>
|
||||
# </arg>
|
||||
# </group><replaceable>name</replaceable> <----
|
||||
# </arg>
|
||||
#
|
||||
# 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
|
||||
@@ -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.
|
||||
'';
|
||||
|
||||
@@ -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; };
|
||||
}));
|
||||
};
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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" = {
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 <link
|
||||
xlink:href="https://www.freedesktop.org/software/systemd/man/repart.d.html"/>
|
||||
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 <link
|
||||
xlink:href="https://www.freedesktop.org/software/systemd/man/repart.d.html"/>
|
||||
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"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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, ... }:
|
||||
{
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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; [
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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=",
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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"' \
|
||||
|
||||
+23
@@ -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 <cstdint>
|
||||
#include <limits>
|
||||
|
||||
#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 <stdint.h>
|
||||
+
|
||||
namespace rtc {
|
||||
class BitBuffer;
|
||||
}
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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"
|
||||
];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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}
|
||||
''
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
];
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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},
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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; {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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 [
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
@@ -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 ];
|
||||
};
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
@@ -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 = ''
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user