Merge branch 'staging-next' into staging

; Conflicts:
;	nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
;	nixos/doc/manual/release-notes/rl-2205.section.md
;	pkgs/build-support/libredirect/default.nix
This commit is contained in:
Jan Tojnar
2022-01-10 01:26:05 +01:00
215 changed files with 15475 additions and 10491 deletions
+27
View File
@@ -141,6 +141,15 @@
/pkgs/development/tools/build-managers/rebar3 @gleber
/pkgs/development/tools/erlang @gleber
# Audio
/nixos/modules/services/audio/botamusique.nix @mweinelt
/nixos/modules/services/audio/snapserver.nix @mweinelt
/nixos/tests/modules/services/audio/botamusique.nix @mweinelt
/nixos/tests/snapcast.nix @mweinelt
# Browsers
/pkgs/applications/networking/browsers/firefox @mweinelt
# Jetbrains
/pkgs/applications/editors/jetbrains @edwtjo
@@ -167,12 +176,30 @@
/nixos/tests/hardened.nix @joachifm
/pkgs/os-specific/linux/kernel/hardened-config.nix @joachifm
# Home Automation
/nixos/modules/services/misc/home-assistant.nix @mweinelt
/nixos/modules/services/misc/zigbee2mqtt.nix @mweinelt
/nixos/tests/home-assistant.nix @mweinelt
/nixos/tests/zigbee2mqtt.nix @mweinelt
/pkgs/servers/home-assistant @mweinelt
/pkgs/tools/misc/esphome @mweinelt
# Network Time Daemons
/pkgs/tools/networking/chrony @thoughtpolice
/pkgs/tools/networking/ntp @thoughtpolice
/pkgs/tools/networking/openntpd @thoughtpolice
/nixos/modules/services/networking/ntp @thoughtpolice
# Network
/pkgs/tools/networking/kea/default.nix @mweinelt
/pkgs/tools/networking/babeld/default.nix @mweinelt
/nixos/modules/services/networking/babeld.nix @mweinelt
/nixos/modules/services/networking/kea.nix @mweinelt
/nixos/modules/services/networking/knot.nix @mweinelt
/nixos/tests/babeld.nix @mweinelt
/nixos/tests/kea.nix @mweinelt
/nixos/tests/knot.nix @mweinelt
# Dhall
/pkgs/development/dhall-modules @Gabriel439 @Profpatsch @ehmry
/pkgs/development/interpreters/dhall @Gabriel439 @Profpatsch @ehmry
+102
View File
@@ -47,6 +47,88 @@ These functions write `text` to the Nix store. This is useful for creating scrip
Many more commands wrap `writeTextFile` including `writeText`, `writeTextDir`, `writeScript`, and `writeScriptBin`. These are convenience functions over `writeTextFile`.
Here are a few examples:
```nix
# Writes my-file to /nix/store/<store path>
writeTextFile {
name = "my-file";
text = ''
Contents of File
'';
}
# See also the `writeText` helper function below.
# Writes executable my-file to /nix/store/<store path>/bin/my-file
writeTextFile {
name = "my-file";
text = ''
Contents of File
'';
executable = true;
destination = "/bin/my-file";
}
# Writes contents of file to /nix/store/<store path>
writeText "my-file"
''
Contents of File
'';
# Writes contents of file to /nix/store/<store path>/share/my-file
writeTextDir "share/my-file"
''
Contents of File
'';
# Writes my-file to /nix/store/<store path> and makes executable
writeScript "my-file"
''
Contents of File
'';
# Writes my-file to /nix/store/<store path>/bin/my-file and makes executable.
writeScriptBin "my-file"
''
Contents of File
'';
# Writes my-file to /nix/store/<store path> and makes executable.
writeShellScript "my-file"
''
Contents of File
'';
# Writes my-file to /nix/store/<store path>/bin/my-file and makes executable.
writeShellScriptBin "my-file"
''
Contents of File
'';
```
## `concatTextFile`, `concatText`, `concatScript` {#trivial-builder-concatText}
These functions concatenate `files` to the Nix store in a single file. This is useful for configuration files structured in lines of text. `concatTextFile` takes an attribute set and expects two arguments, `name` and `files`. `name` corresponds to the name used in the Nix store path. `files` will be the files to be concatenated. You can also set `executable` to true to make this file have the executable bit set.
`concatText` and`concatScript` are simple wrappers over `concatTextFile`.
Here are a few examples:
```nix
# Writes my-file to /nix/store/<store path>
concatTextFile {
name = "my-file";
files = [ drv1 "${drv2}/path/to/file" ];
}
# See also the `concatText` helper function below.
# Writes executable my-file to /nix/store/<store path>/bin/my-file
concatTextFile {
name = "my-file";
files = [ drv1 "${drv2}/path/to/file" ];
executable = true;
destination = "/bin/my-file";
}
# Writes contents of files to /nix/store/<store path>
concatText "my-file" [ file1 file2 ]
# Writes contents of files to /nix/store/<store path>
concatScript "my-file" [ file1 file2 ]
```
## `writeShellApplication` {#trivial-builder-writeShellApplication}
This can be used to easily produce a shell script that has some dependencies (`runtimeInputs`). It automatically sets the `PATH` of the script to contain all of the listed inputs, sets some sanity shellopts (`errexit`, `nounset`, `pipefail`), and checks the resulting script with [`shellcheck`](https://github.com/koalaman/shellcheck).
@@ -72,6 +154,26 @@ validation.
## `symlinkJoin` {#trivial-builder-symlinkJoin}
This can be used to put many derivations into the same directory structure. It works by creating a new derivation and adding symlinks to each of the paths listed. It expects two arguments, `name`, and `paths`. `name` is the name used in the Nix store path for the created derivation. `paths` is a list of paths that will be symlinked. These paths can be to Nix store derivations or any other subdirectory contained within.
Here is an example:
```nix
# adds symlinks of hello and stack to current build and prints "links added"
symlinkJoin { name = "myexample"; paths = [ pkgs.hello pkgs.stack ]; postBuild = "echo links added"; }
```
This creates a derivation with a directory structure like the following:
```
/nix/store/sglsr5g079a5235hy29da3mq3hv8sjmm-myexample
|-- bin
| |-- hello -> /nix/store/qy93dp4a3rqyn2mz63fbxjg228hffwyw-hello-2.10/bin/hello
| `-- stack -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1/bin/stack
`-- share
|-- bash-completion
| `-- completions
| `-- stack -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1/share/bash-completion/completions/stack
|-- fish
| `-- vendor_completions.d
| `-- stack.fish -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1/share/fish/vendor_completions.d/stack.fish
...
```
## `writeReferencesToFile` {#trivial-builder-writeReferencesToFile}
+11
View File
@@ -13589,4 +13589,15 @@
github = "PhilippWoelfel";
githubId = 19400064;
};
qbit = {
name = "Aaron Bieber";
email = "aaron@bolddaemon.com";
github = "qbit";
githubId = 68368;
matrix = "@qbit:tapenet.org";
keys = [{
longkeyid = "rsa4096/0x1F81112D62A9ADCE";
fingerprint = "3586 3350 BFEA C101 DB1A 4AF0 1F81 112D 62A9 ADCE";
}];
};
}
+1 -1
View File
@@ -305,7 +305,7 @@ class CleanEnvironment(object):
def get_current_plugins(editor: Editor) -> List[Plugin]:
with CleanEnvironment():
cmd = ["nix", "eval", "--impure", "--json", "--expr", editor.get_plugins]
cmd = ["nix", "eval", "--extra-experimental-features", "nix-command", "--impure", "--json", "--expr", editor.get_plugins]
log.debug("Running command %s", cmd)
out = subprocess.check_output(cmd)
data = json.loads(out)
+1 -1
View File
@@ -214,7 +214,7 @@ in rec {
manualEpub = runCommand "nixos-manual-epub"
{ inherit sources;
buildInputs = [ libxml2.bin libxslt.bin zip ];
nativeBuildInputs = [ buildPackages.libxml2.bin buildPackages.libxslt.bin buildPackages.zip ];
}
''
# Generate the epub manual.
@@ -88,6 +88,8 @@ starting them in parallel:
start_all()
```
## Machine objects {#ssec-machine-objects}
The following methods are available on machine objects:
`start`
@@ -313,3 +315,52 @@ repository):
# fmt: on
'';
```
## Failing tests early {#ssec-failing-tests-early}
To fail tests early when certain invariables are no longer met (instead of waiting for the build to time out), the decorator `polling_condition` is provided. For example, if we are testing a program `foo` that should not quit after being started, we might write the following:
```py
@polling_condition
def foo_running():
machine.succeed("pgrep -x foo")
machine.succeed("foo --start")
machine.wait_until_succeeds("pgrep -x foo")
with foo_running:
... # Put `foo` through its paces
```
`polling_condition` takes the following (optional) arguments:
`seconds_interval`
:
specifies how often the condition should be polled:
```py
@polling_condition(seconds_interval=10)
def foo_running():
machine.succeed("pgrep -x foo")
```
`description`
:
is used in the log when the condition is checked. If this is not provided, the description is pulled from the docstring of the function. These two are therefore equivalent:
```py
@polling_condition
def foo_running():
"check that foo is running"
machine.succeed("pgrep -x foo")
```
```py
@polling_condition(description="check that foo is running")
def foo_running():
machine.succeed("pgrep -x foo")
```
@@ -117,407 +117,413 @@ if not &quot;Linux&quot; in machine.succeed(&quot;uname&quot;):
<programlisting language="python">
start_all()
</programlisting>
<para>
The following methods are available on machine objects:
</para>
<variablelist>
<varlistentry>
<term>
<literal>start</literal>
</term>
<listitem>
<para>
Start the virtual machine. This method is asynchronous — it
does not wait for the machine to finish booting.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>shutdown</literal>
</term>
<listitem>
<para>
Shut down the machine, waiting for the VM to exit.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>crash</literal>
</term>
<listitem>
<para>
Simulate a sudden power failure, by telling the VM to exit
immediately.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>block</literal>
</term>
<listitem>
<para>
Simulate unplugging the Ethernet cable that connects the
machine to the other machines.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>unblock</literal>
</term>
<listitem>
<para>
Undo the effect of <literal>block</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>screenshot</literal>
</term>
<listitem>
<para>
Take a picture of the display of the virtual machine, in PNG
format. The screenshot is linked from the HTML log.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>get_screen_text_variants</literal>
</term>
<listitem>
<para>
Return a list of different interpretations of what is
currently visible on the machine's screen using optical
character recognition. The number and order of the
interpretations is not specified and is subject to change, but
if no exception is raised at least one will be returned.
</para>
<note>
<section xml:id="ssec-machine-objects">
<title>Machine objects</title>
<para>
The following methods are available on machine objects:
</para>
<variablelist>
<varlistentry>
<term>
<literal>start</literal>
</term>
<listitem>
<para>
This requires passing <literal>enableOCR</literal> to the
test attribute set.
Start the virtual machine. This method is asynchronous — it
does not wait for the machine to finish booting.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>get_screen_text</literal>
</term>
<listitem>
<para>
Return a textual representation of what is currently visible
on the machine's screen using optical character recognition.
</para>
<note>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>shutdown</literal>
</term>
<listitem>
<para>
This requires passing <literal>enableOCR</literal> to the
test attribute set.
Shut down the machine, waiting for the VM to exit.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>send_monitor_command</literal>
</term>
<listitem>
<para>
Send a command to the QEMU monitor. This is rarely used, but
allows doing stuff such as attaching virtual USB disks to a
running machine.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>send_key</literal>
</term>
<listitem>
<para>
Simulate pressing keys on the virtual keyboard, e.g.,
<literal>send_key(&quot;ctrl-alt-delete&quot;)</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>send_chars</literal>
</term>
<listitem>
<para>
Simulate typing a sequence of characters on the virtual
keyboard, e.g.,
<literal>send_chars(&quot;foobar\n&quot;)</literal> will type
the string <literal>foobar</literal> followed by the Enter
key.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>execute</literal>
</term>
<listitem>
<para>
Execute a shell command, returning a list
<literal>(status, stdout)</literal>. If the command detaches,
it must close stdout, as <literal>execute</literal> will wait
for this to consume all output reliably. This can be achieved
by redirecting stdout to stderr <literal>&gt;&amp;2</literal>,
to <literal>/dev/console</literal>,
<literal>/dev/null</literal> or a file. Examples of detaching
commands are <literal>sleep 365d &amp;</literal>, where the
shell forks a new process that can write to stdout and
<literal>xclip -i</literal>, where the
<literal>xclip</literal> command itself forks without closing
stdout. Takes an optional parameter
<literal>check_return</literal> that defaults to
<literal>True</literal>. Setting this parameter to
<literal>False</literal> will not check for the return code
and return -1 instead. This can be used for commands that shut
down the VM and would therefore break the pipe that would be
used for retrieving the return code.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>succeed</literal>
</term>
<listitem>
<para>
Execute a shell command, raising an exception if the exit
status is not zero, otherwise returning the standard output.
Commands are run with <literal>set -euo pipefail</literal>
set:
</para>
<itemizedlist>
<listitem>
<para>
If several commands are separated by <literal>;</literal>
and one fails, the command as a whole will fail.
</para>
</listitem>
<listitem>
<para>
For pipelines, the last non-zero exit status will be
returned (if there is one, zero will be returned
otherwise).
</para>
</listitem>
<listitem>
<para>
Dereferencing unset variables fail the command.
</para>
</listitem>
<listitem>
<para>
It will wait for stdout to be closed. See
<literal>execute</literal> for the implications.
</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>fail</literal>
</term>
<listitem>
<para>
Like <literal>succeed</literal>, but raising an exception if
the command returns a zero status.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_until_succeeds</literal>
</term>
<listitem>
<para>
Repeat a shell command with 1-second intervals until it
succeeds.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_until_fails</literal>
</term>
<listitem>
<para>
Repeat a shell command with 1-second intervals until it fails.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_unit</literal>
</term>
<listitem>
<para>
Wait until the specified systemd unit has reached the
<quote>active</quote> state.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_file</literal>
</term>
<listitem>
<para>
Wait until the specified file exists.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_open_port</literal>
</term>
<listitem>
<para>
Wait until a process is listening on the given TCP port (on
<literal>localhost</literal>, at least).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_closed_port</literal>
</term>
<listitem>
<para>
Wait until nobody is listening on the given TCP port.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_x</literal>
</term>
<listitem>
<para>
Wait until the X11 server is accepting connections.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_text</literal>
</term>
<listitem>
<para>
Wait until the supplied regular expressions matches the
textual contents of the screen by using optical character
recognition (see <literal>get_screen_text</literal> and
<literal>get_screen_text_variants</literal>).
</para>
<note>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>crash</literal>
</term>
<listitem>
<para>
This requires passing <literal>enableOCR</literal> to the
test attribute set.
Simulate a sudden power failure, by telling the VM to exit
immediately.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_console_text</literal>
</term>
<listitem>
<para>
Wait until the supplied regular expressions match a line of
the serial console output. This method is useful when OCR is
not possibile or accurate enough.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_window</literal>
</term>
<listitem>
<para>
Wait until an X11 window has appeared whose name matches the
given regular expression, e.g.,
<literal>wait_for_window(&quot;Terminal&quot;)</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>copy_from_host</literal>
</term>
<listitem>
<para>
Copies a file from host to machine, e.g.,
<literal>copy_from_host(&quot;myfile&quot;, &quot;/etc/my/important/file&quot;)</literal>.
</para>
<para>
The first argument is the file on the host. The file needs to
be accessible while building the nix derivation. The second
argument is the location of the file on the machine.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>systemctl</literal>
</term>
<listitem>
<para>
Runs <literal>systemctl</literal> commands with optional
support for <literal>systemctl --user</literal>
</para>
<programlisting language="python">
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>block</literal>
</term>
<listitem>
<para>
Simulate unplugging the Ethernet cable that connects the
machine to the other machines.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>unblock</literal>
</term>
<listitem>
<para>
Undo the effect of <literal>block</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>screenshot</literal>
</term>
<listitem>
<para>
Take a picture of the display of the virtual machine, in PNG
format. The screenshot is linked from the HTML log.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>get_screen_text_variants</literal>
</term>
<listitem>
<para>
Return a list of different interpretations of what is
currently visible on the machine's screen using optical
character recognition. The number and order of the
interpretations is not specified and is subject to change,
but if no exception is raised at least one will be returned.
</para>
<note>
<para>
This requires passing <literal>enableOCR</literal> to the
test attribute set.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>get_screen_text</literal>
</term>
<listitem>
<para>
Return a textual representation of what is currently visible
on the machine's screen using optical character recognition.
</para>
<note>
<para>
This requires passing <literal>enableOCR</literal> to the
test attribute set.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>send_monitor_command</literal>
</term>
<listitem>
<para>
Send a command to the QEMU monitor. This is rarely used, but
allows doing stuff such as attaching virtual USB disks to a
running machine.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>send_key</literal>
</term>
<listitem>
<para>
Simulate pressing keys on the virtual keyboard, e.g.,
<literal>send_key(&quot;ctrl-alt-delete&quot;)</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>send_chars</literal>
</term>
<listitem>
<para>
Simulate typing a sequence of characters on the virtual
keyboard, e.g.,
<literal>send_chars(&quot;foobar\n&quot;)</literal> will
type the string <literal>foobar</literal> followed by the
Enter key.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>execute</literal>
</term>
<listitem>
<para>
Execute a shell command, returning a list
<literal>(status, stdout)</literal>. If the command
detaches, it must close stdout, as
<literal>execute</literal> will wait for this to consume all
output reliably. This can be achieved by redirecting stdout
to stderr <literal>&gt;&amp;2</literal>, to
<literal>/dev/console</literal>,
<literal>/dev/null</literal> or a file. Examples of
detaching commands are <literal>sleep 365d &amp;</literal>,
where the shell forks a new process that can write to stdout
and <literal>xclip -i</literal>, where the
<literal>xclip</literal> command itself forks without
closing stdout. Takes an optional parameter
<literal>check_return</literal> that defaults to
<literal>True</literal>. Setting this parameter to
<literal>False</literal> will not check for the return code
and return -1 instead. This can be used for commands that
shut down the VM and would therefore break the pipe that
would be used for retrieving the return code.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>succeed</literal>
</term>
<listitem>
<para>
Execute a shell command, raising an exception if the exit
status is not zero, otherwise returning the standard output.
Commands are run with <literal>set -euo pipefail</literal>
set:
</para>
<itemizedlist>
<listitem>
<para>
If several commands are separated by
<literal>;</literal> and one fails, the command as a
whole will fail.
</para>
</listitem>
<listitem>
<para>
For pipelines, the last non-zero exit status will be
returned (if there is one, zero will be returned
otherwise).
</para>
</listitem>
<listitem>
<para>
Dereferencing unset variables fail the command.
</para>
</listitem>
<listitem>
<para>
It will wait for stdout to be closed. See
<literal>execute</literal> for the implications.
</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>fail</literal>
</term>
<listitem>
<para>
Like <literal>succeed</literal>, but raising an exception if
the command returns a zero status.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_until_succeeds</literal>
</term>
<listitem>
<para>
Repeat a shell command with 1-second intervals until it
succeeds.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_until_fails</literal>
</term>
<listitem>
<para>
Repeat a shell command with 1-second intervals until it
fails.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_unit</literal>
</term>
<listitem>
<para>
Wait until the specified systemd unit has reached the
<quote>active</quote> state.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_file</literal>
</term>
<listitem>
<para>
Wait until the specified file exists.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_open_port</literal>
</term>
<listitem>
<para>
Wait until a process is listening on the given TCP port (on
<literal>localhost</literal>, at least).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_closed_port</literal>
</term>
<listitem>
<para>
Wait until nobody is listening on the given TCP port.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_x</literal>
</term>
<listitem>
<para>
Wait until the X11 server is accepting connections.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_text</literal>
</term>
<listitem>
<para>
Wait until the supplied regular expressions matches the
textual contents of the screen by using optical character
recognition (see <literal>get_screen_text</literal> and
<literal>get_screen_text_variants</literal>).
</para>
<note>
<para>
This requires passing <literal>enableOCR</literal> to the
test attribute set.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_console_text</literal>
</term>
<listitem>
<para>
Wait until the supplied regular expressions match a line of
the serial console output. This method is useful when OCR is
not possibile or accurate enough.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>wait_for_window</literal>
</term>
<listitem>
<para>
Wait until an X11 window has appeared whose name matches the
given regular expression, e.g.,
<literal>wait_for_window(&quot;Terminal&quot;)</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>copy_from_host</literal>
</term>
<listitem>
<para>
Copies a file from host to machine, e.g.,
<literal>copy_from_host(&quot;myfile&quot;, &quot;/etc/my/important/file&quot;)</literal>.
</para>
<para>
The first argument is the file on the host. The file needs
to be accessible while building the nix derivation. The
second argument is the location of the file on the machine.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>systemctl</literal>
</term>
<listitem>
<para>
Runs <literal>systemctl</literal> commands with optional
support for <literal>systemctl --user</literal>
</para>
<programlisting language="python">
machine.systemctl(&quot;list-jobs --no-pager&quot;) # runs `systemctl list-jobs --no-pager`
machine.systemctl(&quot;list-jobs --no-pager&quot;, &quot;any-user&quot;) # spawns a shell for `any-user` and runs `systemctl --user list-jobs --no-pager`
</programlisting>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>shell_interact</literal>
</term>
<listitem>
<para>
Allows you to directly interact with the guest shell. This
should only be used during test development, not in production
tests. Killing the interactive session with
<literal>Ctrl-d</literal> or <literal>Ctrl-c</literal> also
ends the guest session.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
To test user units declared by
<literal>systemd.user.services</literal> the optional
<literal>user</literal> argument can be used:
</para>
<programlisting language="python">
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>shell_interact</literal>
</term>
<listitem>
<para>
Allows you to directly interact with the guest shell. This
should only be used during test development, not in
production tests. Killing the interactive session with
<literal>Ctrl-d</literal> or <literal>Ctrl-c</literal> also
ends the guest session.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
To test user units declared by
<literal>systemd.user.services</literal> the optional
<literal>user</literal> argument can be used:
</para>
<programlisting language="python">
machine.start()
machine.wait_for_x()
machine.wait_for_unit(&quot;xautolock.service&quot;, &quot;x-session-user&quot;)
</programlisting>
<para>
This applies to <literal>systemctl</literal>,
<literal>get_unit_info</literal>, <literal>wait_for_unit</literal>,
<literal>start_job</literal> and <literal>stop_job</literal>.
</para>
<para>
For faster dev cycles it's also possible to disable the code-linters
(this shouldn't be commited though):
</para>
<programlisting language="bash">
<para>
This applies to <literal>systemctl</literal>,
<literal>get_unit_info</literal>,
<literal>wait_for_unit</literal>, <literal>start_job</literal> and
<literal>stop_job</literal>.
</para>
<para>
For faster dev cycles it's also possible to disable the
code-linters (this shouldn't be commited though):
</para>
<programlisting language="bash">
import ./make-test-python.nix {
skipLint = true;
machine =
@@ -531,13 +537,13 @@ import ./make-test-python.nix {
'';
}
</programlisting>
<para>
This will produce a Nix warning at evaluation time. To fully disable
the linter, wrap the test script in comment directives to disable
the Black linter directly (again, don't commit this within the
Nixpkgs repository):
</para>
<programlisting language="bash">
<para>
This will produce a Nix warning at evaluation time. To fully
disable the linter, wrap the test script in comment directives to
disable the Black linter directly (again, don't commit this within
the Nixpkgs repository):
</para>
<programlisting language="bash">
testScript =
''
# fmt: off
@@ -545,4 +551,66 @@ import ./make-test-python.nix {
# fmt: on
'';
</programlisting>
</section>
<section xml:id="ssec-failing-tests-early">
<title>Failing tests early</title>
<para>
To fail tests early when certain invariables are no longer met
(instead of waiting for the build to time out), the decorator
<literal>polling_condition</literal> is provided. For example, if
we are testing a program <literal>foo</literal> that should not
quit after being started, we might write the following:
</para>
<programlisting language="python">
@polling_condition
def foo_running():
machine.succeed(&quot;pgrep -x foo&quot;)
machine.succeed(&quot;foo --start&quot;)
machine.wait_until_succeeds(&quot;pgrep -x foo&quot;)
with foo_running:
... # Put `foo` through its paces
</programlisting>
<para>
<literal>polling_condition</literal> takes the following
(optional) arguments:
</para>
<para>
<literal>seconds_interval</literal>
</para>
<para>
: specifies how often the condition should be polled:
</para>
<programlisting>
```py
@polling_condition(seconds_interval=10)
def foo_running():
machine.succeed(&quot;pgrep -x foo&quot;)
```
</programlisting>
<para>
<literal>description</literal>
</para>
<para>
: is used in the log when the condition is checked. If this is not
provided, the description is pulled from the docstring of the
function. These two are therefore equivalent:
</para>
<programlisting>
```py
@polling_condition
def foo_running():
&quot;check that foo is running&quot;
machine.succeed(&quot;pgrep -x foo&quot;)
```
```py
@polling_condition(description=&quot;check that foo is running&quot;)
def foo_running():
machine.succeed(&quot;pgrep -x foo&quot;)
```
</programlisting>
</section>
</section>
@@ -228,6 +228,15 @@
to your configuration.
</para>
</listitem>
<listitem>
<para>
Normal users (with <literal>isNormalUser = true</literal>)
which have non-empty <literal>subUidRanges</literal> or
<literal>subGidRanges</literal> set no longer have additional
implicit ranges allocated. To enable automatic allocation back
set <literal>autoSubUidGidRange = true</literal>.
</para>
</listitem>
<listitem>
<para>
The iputils package, which is installed by default, no longer
@@ -347,6 +356,15 @@
<literal>true</literal>.
</para>
</listitem>
<listitem>
<para>
The option <literal>services.thelounge.plugins</literal> has
been added to allow installing plugins for The Lounge. Plugins
can be found in
<literal>pkgs.theLoungePlugins.plugins</literal> and
<literal>pkgs.theLoungePlugins.themes</literal>.
</para>
</listitem>
</itemizedlist>
</section>
</section>
@@ -77,6 +77,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `documentation.man` has been refactored to support choosing a man implementation other than GNU's `man-db`. For this, `documentation.man.manualPages` has been renamed to `documentation.man.man-db.manualPages`. If you want to use the new alternative man implementation `mandoc`, add `documentation.man = { enable = true; man-db.enable = false; mandoc.enable = true; }` to your configuration.
- Normal users (with `isNormalUser = true`) which have non-empty `subUidRanges` or `subGidRanges` set no longer have additional implicit ranges allocated. To enable automatic allocation back set `autoSubUidGidRange = true`.
- The iputils package, which is installed by default, no longer provides the
legacy tools `tftpd` and `traceroute6`. More tools (`ninfod`, `rarpd`, and
`rdisc`) are going to be removed in the next release. See
@@ -130,3 +132,5 @@ In addition to numerous new and upgraded packages, this release has the followin
- `fetchFromSourcehut` now allows fetching repositories recursively
using `fetchgit` or `fetchhg` if the argument `fetchSubmodules`
is set to `true`.
- The option `services.thelounge.plugins` has been added to allow installing plugins for The Lounge. Plugins can be found in `pkgs.theLoungePlugins.plugins` and `pkgs.theLoungePlugins.themes`.
+2 -2
View File
@@ -14,7 +14,7 @@
python3Packages.buildPythonApplication rec {
pname = "nixos-test-driver";
version = "1.0";
version = "1.1";
src = ./.;
propagatedBuildInputs = [ coreutils netpbm python3Packages.colorama python3Packages.ptpython qemu_pkg socat vde2 ]
@@ -26,7 +26,7 @@ python3Packages.buildPythonApplication rec {
mypy --disallow-untyped-defs \
--no-implicit-optional \
--ignore-missing-imports ${src}/test_driver
pylint --errors-only ${src}/test_driver
pylint --errors-only --enable=unused-import ${src}/test_driver
black --check --diff ${src}/test_driver
'';
}
+1 -1
View File
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
setup(
name="nixos-test-driver",
version='1.0',
version='1.1',
packages=find_packages(),
entry_points={
"console_scripts": [
+40 -1
View File
@@ -1,12 +1,13 @@
from contextlib import contextmanager
from pathlib import Path
from typing import Any, Dict, Iterator, List
from typing import Any, Dict, Iterator, List, Union, Optional, Callable, ContextManager
import os
import tempfile
from test_driver.logger import rootlog
from test_driver.machine import Machine, NixStartScript, retry
from test_driver.vlan import VLan
from test_driver.polling_condition import PollingCondition
class Driver:
@@ -16,6 +17,7 @@ class Driver:
tests: str
vlans: List[VLan]
machines: List[Machine]
polling_conditions: List[PollingCondition]
def __init__(
self,
@@ -36,12 +38,15 @@ class Driver:
for s in scripts:
yield NixStartScript(s)
self.polling_conditions = []
self.machines = [
Machine(
start_command=cmd,
keep_vm_state=keep_vm_state,
name=cmd.machine_name,
tmp_dir=tmp_dir,
callbacks=[self.check_polling_conditions],
)
for cmd in cmd(start_scripts)
]
@@ -84,6 +89,7 @@ class Driver:
retry=retry,
serial_stdout_off=self.serial_stdout_off,
serial_stdout_on=self.serial_stdout_on,
polling_condition=self.polling_condition,
Machine=Machine, # for typing
)
machine_symbols = {m.name: m for m in self.machines}
@@ -159,3 +165,36 @@ class Driver:
def serial_stdout_off(self) -> None:
rootlog._print_serial_logs = False
def check_polling_conditions(self) -> None:
for condition in self.polling_conditions:
condition.maybe_raise()
def polling_condition(
self,
fun_: Optional[Callable] = None,
*,
seconds_interval: float = 2.0,
description: Optional[str] = None,
) -> Union[Callable[[Callable], ContextManager], ContextManager]:
driver = self
class Poll:
def __init__(self, fun: Callable):
self.condition = PollingCondition(
fun,
seconds_interval,
description,
)
def __enter__(self) -> None:
driver.polling_conditions.append(self.condition)
def __exit__(self, a, b, c) -> None: # type: ignore
res = driver.polling_conditions.pop()
assert res is self.condition
if fun_ is None:
return Poll
else:
return Poll(fun_)
@@ -318,6 +318,7 @@ class Machine:
# Store last serial console lines for use
# of wait_for_console_text
last_lines: Queue = Queue()
callbacks: List[Callable]
def __repr__(self) -> str:
return f"<Machine '{self.name}'>"
@@ -329,12 +330,14 @@ class Machine:
name: str = "machine",
keep_vm_state: bool = False,
allow_reboot: bool = False,
callbacks: Optional[List[Callable]] = None,
) -> None:
self.tmp_dir = tmp_dir
self.keep_vm_state = keep_vm_state
self.allow_reboot = allow_reboot
self.name = name
self.start_command = start_command
self.callbacks = callbacks if callbacks is not None else []
# set up directories
self.shared_dir = self.tmp_dir / "shared-xchg"
@@ -406,6 +409,7 @@ class Machine:
return answer
def send_monitor_command(self, command: str) -> str:
self.run_callbacks()
with self.nested("sending monitor command: {}".format(command)):
message = ("{}\n".format(command)).encode()
assert self.monitor is not None
@@ -509,6 +513,7 @@ class Machine:
def execute(
self, command: str, check_return: bool = True, timeout: Optional[int] = 900
) -> Tuple[int, str]:
self.run_callbacks()
self.connect()
if timeout is not None:
@@ -969,3 +974,7 @@ class Machine:
self.shell.close()
self.monitor.close()
self.serial_thread.join()
def run_callbacks(self) -> None:
for callback in self.callbacks:
callback()
@@ -0,0 +1,77 @@
from typing import Callable, Optional
import time
from .logger import rootlog
class PollingConditionFailed(Exception):
pass
class PollingCondition:
condition: Callable[[], bool]
seconds_interval: float
description: Optional[str]
last_called: float
entered: bool
def __init__(
self,
condition: Callable[[], Optional[bool]],
seconds_interval: float = 2.0,
description: Optional[str] = None,
):
self.condition = condition # type: ignore
self.seconds_interval = seconds_interval
if description is None:
if condition.__doc__:
self.description = condition.__doc__
else:
self.description = condition.__name__
else:
self.description = str(description)
self.last_called = float("-inf")
self.entered = False
def check(self) -> bool:
if self.entered or not self.overdue:
return True
with self, rootlog.nested(self.nested_message):
rootlog.info(f"Time since last: {time.monotonic() - self.last_called:.2f}s")
try:
res = self.condition() # type: ignore
except Exception:
res = False
res = res is None or res
rootlog.info(self.status_message(res))
return res
def maybe_raise(self) -> None:
if not self.check():
raise PollingConditionFailed(self.status_message(False))
def status_message(self, status: bool) -> str:
return f"Polling condition {'succeeded' if status else 'failed'}: {self.description}"
@property
def nested_message(self) -> str:
nested_message = ["Checking polling condition"]
if self.description is not None:
nested_message.append(repr(self.description))
return " ".join(nested_message)
@property
def overdue(self) -> bool:
return self.last_called + self.seconds_interval < time.monotonic()
def __enter__(self) -> None:
self.entered = True
def __exit__(self, exc_type, exc_value, traceback) -> None: # type: ignore
self.entered = False
self.last_called = time.monotonic()
+1 -3
View File
@@ -196,9 +196,7 @@ in
protocols.source = pkgs.iana-etc + "/etc/protocols";
# /etc/hosts: Hostname-to-IP mappings.
hosts.source = pkgs.runCommand "hosts" {} ''
cat ${escapeShellArgs cfg.hostFiles} > $out
'';
hosts.source = pkgs.concatText "hosts" cfg.hostFiles;
# /etc/netgroup: Network-wide groups.
netgroup.text = mkDefault "";
+1 -1
View File
@@ -351,7 +351,7 @@ foreach my $u (values %usersOut) {
push @subGids, $value;
}
if($u->{isNormalUser}) {
if($u->{autoSubUidGidRange}) {
my $subordinate = allocSubUid($name);
$subUidMap->{$name} = $subordinate;
my $value = join(":", ($name, $subordinate, 65536));
+14 -1
View File
@@ -204,6 +204,16 @@ let
'';
};
autoSubUidGidRange = mkOption {
type = types.bool;
default = false;
example = true;
description = ''
Automatically allocate subordinate user and group ids for this user.
Allocated range is currently always of size 65536.
'';
};
createHome = mkOption {
type = types.bool;
default = false;
@@ -320,6 +330,9 @@ let
(mkIf (!cfg.mutableUsers && config.initialHashedPassword != null) {
hashedPassword = mkDefault config.initialHashedPassword;
})
(mkIf (config.isNormalUser && config.subUidRanges == [] && config.subGidRanges == []) {
autoSubUidGidRange = mkDefault true;
})
];
};
@@ -419,7 +432,7 @@ let
{ inherit (u)
name uid group description home createHome isSystemUser
password passwordFile hashedPassword
isNormalUser subUidRanges subGidRanges
autoSubUidGidRange subUidRanges subGidRanges
initialPassword initialHashedPassword;
shell = utils.toShellPath u.shell;
}) cfg.users;
+24 -22
View File
@@ -11,23 +11,17 @@ let
enabled = elem "amdgpu-pro" drivers;
package = config.boot.kernelPackages.amdgpu-pro;
package32 = pkgs.pkgsi686Linux.linuxPackages.amdgpu-pro.override { libsOnly = true; kernel = null; };
package32 = pkgs.pkgsi686Linux.linuxPackages.amdgpu-pro.override { kernel = null; };
opengl = config.hardware.opengl;
kernel = pkgs.linux_4_9.override {
extraConfig = ''
KALLSYMS_ALL y
'';
};
in
{
config = mkIf enabled {
nixpkgs.config.xorg.abiCompat = "1.19";
nixpkgs.config.xorg.abiCompat = "1.20";
services.xserver.drivers = singleton
{ name = "amdgpu"; modules = [ package ]; display = true; };
@@ -36,31 +30,39 @@ in
hardware.opengl.package32 = package32;
hardware.opengl.setLdLibraryPath = true;
boot.extraModulePackages = [ package ];
boot.extraModulePackages = [ package.kmod ];
boot.kernelPackages =
pkgs.recurseIntoAttrs (pkgs.linuxPackagesFor kernel);
boot.kernelPackages = pkgs.linuxKernel.packagesFor
(pkgs.linuxKernel.kernels.linux_5_10.override {
structuredExtraConfig = {
DEVICE_PRIVATE = kernel.yes;
KALLSYMS_ALL = kernel.yes;
};
});
boot.blacklistedKernelModules = [ "radeon" ];
hardware.firmware = [ package ];
hardware.firmware = [ package.fw ];
system.activationScripts.setup-amdgpu-pro = ''
mkdir -p /run/lib
ln -sfn ${package}/lib ${package.libCompatDir}
ln -sfn ${package} /run/amdgpu-pro
'' + optionalString opengl.driSupport32Bit ''
ln -sfn ${package32}/lib ${package32.libCompatDir}
ln -sfn ${package}/opt/amdgpu{,-pro} /run
'';
system.requiredKernelConfig = with config.lib.kernelConfig; [
(isYes "DEVICE_PRIVATE")
(isYes "KALLSYMS_ALL")
];
boot.initrd.extraUdevRulesCommands = ''
cp -v ${package}/etc/udev/rules.d/*.rules $out/
'';
environment.systemPackages =
[ package.vulkan ] ++
# this isn't really DRI, but we'll reuse this option for now
optional config.hardware.opengl.driSupport32Bit package32.vulkan;
environment.etc = {
"amd/amdrc".source = package + "/etc/amd/amdrc";
"amd/amdapfxx.blb".source = package + "/etc/amd/amdapfxx.blb";
"gbm/gbm.conf".source = package + "/etc/gbm/gbm.conf";
"modprobe.d/blacklist-radeon.conf".source = package + "/etc/modprobe.d/blacklist-radeon.conf";
amd.source = package + "/etc/amd";
};
};
+1 -1
View File
@@ -76,7 +76,7 @@ let
} ''
export NIX_STORE_DIR=$TMPDIR/store
export NIX_STATE_DIR=$TMPDIR/state
${pkgs.nix}/bin/nix-instantiate \
${pkgs.buildPackages.nix}/bin/nix-instantiate \
--show-trace \
--eval --json --strict \
--argstr libPath "$libPath" \
@@ -47,6 +47,8 @@ with lib;
systemd.packages = [ pkgs.tracker-miners ];
services.gnome.tracker.subcommandPackages = [ pkgs.tracker-miners ];
};
}
@@ -4,6 +4,9 @@
with lib;
let
cfg = config.services.gnome.tracker;
in
{
meta = {
@@ -33,6 +36,15 @@ with lib;
'';
};
subcommandPackages = mkOption {
type = types.listOf types.package;
default = [ ];
internal = true;
description = ''
List of packages containing tracker3 subcommands.
'';
};
};
};
@@ -40,7 +52,7 @@ with lib;
###### implementation
config = mkIf config.services.gnome.tracker.enable {
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.tracker ];
@@ -48,6 +60,17 @@ with lib;
systemd.packages = [ pkgs.tracker ];
environment.variables = {
TRACKER_CLI_SUBCOMMANDS_DIR =
let
subcommandPackagesTree = pkgs.symlinkJoin {
name = "tracker-with-subcommands-${pkgs.tracker.version}";
paths = [ pkgs.tracker ] ++ cfg.subcommandPackages;
};
in
"${subcommandPackagesTree}/libexec/tracker3";
};
};
}
@@ -252,8 +252,8 @@ let
promTypes.scrape_config = types.submodule {
options = {
authorization = mkOption {
type = types.attrs;
default = {};
type = types.nullOr types.attrs;
default = null;
description = ''
Sets the `Authorization` header on every scrape request with the configured credentials.
'';
@@ -13,7 +13,7 @@ let
foreground=YES
use=${cfg.use}
login=${cfg.username}
password=
password=${lib.optionalString (cfg.protocol == "nsupdate") "/run/${RuntimeDirectory}/ddclient.key"}
protocol=${cfg.protocol}
${lib.optionalString (cfg.script != "") "script=${cfg.script}"}
${lib.optionalString (cfg.server != "") "server=${cfg.server}"}
@@ -29,8 +29,10 @@ let
configFile = if (cfg.configFile != null) then cfg.configFile else configFile';
preStart = ''
install ${configFile} /run/${RuntimeDirectory}/ddclient.conf
${lib.optionalString (cfg.configFile == null) (if (cfg.passwordFile != null) then ''
install --owner ddclient -m600 ${configFile} /run/${RuntimeDirectory}/ddclient.conf
${lib.optionalString (cfg.configFile == null) (if (cfg.protocol == "nsupdate") then ''
install --owner ddclient -m600 ${cfg.passwordFile} /run/${RuntimeDirectory}/ddclient.key
'' else if (cfg.passwordFile != null) then ''
password=$(printf "%q" "$(head -n 1 "${cfg.passwordFile}")")
sed -i "s|^password=$|password=$password|" /run/${RuntimeDirectory}/ddclient.conf
'' else ''
@@ -85,7 +87,9 @@ with lib;
};
username = mkOption {
default = "";
# For `nsupdate` username contains the path to the nsupdate executable
default = lib.optionalString (config.services.ddclient.protocol == "nsupdate") "${pkgs.bind.dnsutils}/bin/nsupdate";
defaultText = "";
type = str;
description = ''
User name.
@@ -96,7 +100,7 @@ with lib;
default = null;
type = nullOr str;
description = ''
A file containing the password.
A file containing the password or a TSIG key in named format when using the nsupdate protocol.
'';
};
+4 -15
View File
@@ -14,6 +14,8 @@ let
in
{
imports = [ (mkRemovedOptionModule [ "services" "sniproxy" "logDir" ] "Now done by LogsDirectory=. Set to a custom path if you log to a different folder in your config.") ];
options = {
services.sniproxy = {
enable = mkEnableOption "sniproxy server";
@@ -50,13 +52,6 @@ in
}
'';
};
logDir = mkOption {
type = types.str;
default = "/var/log/sniproxy/";
description = "Location of the log directory for sniproxy.";
};
};
};
@@ -66,18 +61,12 @@ in
description = "sniproxy server";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
preStart = ''
test -d ${cfg.logDir} || {
echo "Creating initial log directory for sniproxy in ${cfg.logDir}"
mkdir -p ${cfg.logDir}
chmod 640 ${cfg.logDir}
}
chown -R ${cfg.user}:${cfg.group} ${cfg.logDir}
'';
serviceConfig = {
Type = "forking";
ExecStart = "${pkgs.sniproxy}/bin/sniproxy -c ${configFile}";
LogsDirectory = "sniproxy";
LogsDirectoryMode = "0640";
Restart = "always";
};
};
@@ -480,6 +480,8 @@ in
else
cfg.ports;
socketConfig.Accept = true;
# Prevent brute-force attacks from shutting down socket
socketConfig.TriggerLimitIntervalSec = 0;
};
services."sshd@" = service;
@@ -25,8 +25,8 @@ let
};
connect = mkOption {
type = types.int;
description = "To which port the decrypted connection should be forwarded.";
type = types.either types.str types.int;
description = "Port or IP:Port to which the decrypted connection should be forwarded.";
};
cert = mkOption {
@@ -8,7 +8,18 @@ let
configJsData = "module.exports = " + builtins.toJSON (
{ private = cfg.private; port = cfg.port; } // cfg.extraConfig
);
in {
pluginManifest = {
dependencies = builtins.listToAttrs (builtins.map (pkg: { name = getName pkg; value = getVersion pkg; }) cfg.plugins);
};
plugins = pkgs.runCommandLocal "thelounge-plugins" { } ''
mkdir -p $out/node_modules
echo ${escapeShellArg (builtins.toJSON pluginManifest)} >> $out/package.json
${concatMapStringsSep "\n" (pkg: ''
ln -s ${pkg}/lib/node_modules/${getName pkg} $out/node_modules/${getName pkg}
'') cfg.plugins}
'';
in
{
options.services.thelounge = {
enable = mkEnableOption "The Lounge web IRC client";
@@ -30,7 +41,7 @@ in {
};
extraConfig = mkOption {
default = {};
default = { };
type = types.attrs;
example = literalExpression ''{
reverseProxy = true;
@@ -50,19 +61,30 @@ in {
Documentation: <link xlink:href="https://thelounge.chat/docs/server/configuration" />
'';
};
plugins = mkOption {
default = [ ];
type = types.listOf types.package;
example = literalExpression "[ pkgs.theLoungePlugins.themes.solarized ]";
description = ''
The Lounge plugins to install. Plugins can be found in
<literal>pkgs.theLoungePlugins.plugins</literal> and <literal>pkgs.theLoungePlugins.themes</literal>.
'';
};
};
config = mkIf cfg.enable {
users.users.thelounge = {
description = "thelounge service user";
description = "The Lounge service user";
group = "thelounge";
isSystemUser = true;
};
users.groups.thelounge = {};
users.groups.thelounge = { };
systemd.services.thelounge = {
description = "The Lounge web IRC client";
wantedBy = [ "multi-user.target" ];
preStart = "ln -sf ${pkgs.writeText "config.js" configJsData} ${dataDir}/config.js";
environment.THELOUNGE_PACKAGES = mkIf (cfg.plugins != [ ]) "${plugins}";
serviceConfig = {
User = "thelounge";
StateDirectory = baseNameOf dataDir;
@@ -72,4 +94,8 @@ in {
environment.systemPackages = [ pkgs.thelounge ];
};
meta = {
maintainers = with lib.maintainers; [ winter ];
};
}
+7 -9
View File
@@ -20,10 +20,11 @@ let
buildCfg = name: c:
let
plugins =
plugins' =
if any (n: !any (m: m == n) cfg.plugins) (c.plugins or [])
then throw "`plugins` attribute in uWSGI configuration contains plugins not in config.services.uwsgi.plugins"
else c.plugins or cfg.plugins;
plugins = unique plugins';
hasPython = v: filter (n: n == "python${v}") plugins != [];
hasPython2 = hasPython "2";
@@ -48,13 +49,10 @@ let
pyhome = "${pythonEnv}";
env =
# Argh, uwsgi expects list of key-values there instead of a dictionary.
let env' = c.env or [];
getPath =
x: if hasPrefix "PATH=" x
then substring (stringLength "PATH=") (stringLength x) x
else null;
oldPaths = filter (x: x != null) (map getPath env');
in env' ++ [ "PATH=${optionalString (oldPaths != []) "${last oldPaths}:"}${pythonEnv}/bin" ];
let envs = partition (hasPrefix "PATH=") (c.env or []);
oldPaths = map (x: substring (stringLength "PATH=") (stringLength x) x) envs.right;
paths = oldPaths ++ [ "${pythonEnv}/bin" ];
in [ "PATH=${concatStringsSep ":" paths}" ] ++ envs.wrong;
}
else if isEmperor
then {
@@ -225,7 +223,7 @@ in {
};
services.uwsgi.package = pkgs.uwsgi.override {
inherit (cfg) plugins;
plugins = unique cfg.plugins;
};
};
}
+1 -1
View File
@@ -703,7 +703,7 @@ in
environment =
optionalAttrs config.hardware.opengl.setLdLibraryPath
{ LD_LIBRARY_PATH = pkgs.addOpenGLRunpath.driverLink; }
{ LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.addOpenGLRunpath.driverLink ]; }
// cfg.displayManager.job.environment;
preStart =
+30 -20
View File
@@ -34,36 +34,46 @@ let
};
enableOCR = true;
testScript = ''
@polling_condition
def codium_running():
machine.succeed('pgrep -x codium')
start_all()
machine.wait_for_unit('graphical.target')
machine.wait_until_succeeds('pgrep -x codium')
# Wait until vscodium is visible. "File" is in the menu bar.
machine.wait_for_text('File')
machine.screenshot('start_screen')
with codium_running:
# Wait until vscodium is visible. "File" is in the menu bar.
machine.wait_for_text('Get Started')
machine.screenshot('start_screen')
test_string = 'testfile'
test_string = 'testfile'
# Create a new file
machine.send_key('ctrl-n')
machine.wait_for_text('Untitled')
machine.screenshot('empty_editor')
# Create a new file
machine.send_key('ctrl-n')
machine.wait_for_text('Untitled')
machine.screenshot('empty_editor')
# Type a string
machine.send_chars(test_string)
machine.wait_for_text(test_string)
machine.screenshot('editor')
# Type a string
machine.send_chars(test_string)
machine.wait_for_text(test_string)
machine.screenshot('editor')
# Save the file
machine.send_key('ctrl-s')
machine.wait_for_text('Save')
machine.screenshot('save_window')
machine.send_key('ret')
# Save the file
machine.send_key('ctrl-s')
machine.wait_for_text('Save')
machine.screenshot('save_window')
machine.send_key('ret')
# (the default filename is the first line of the file)
machine.wait_for_file(f'/home/alice/{test_string}')
# (the default filename is the first line of the file)
machine.wait_for_file(f'/home/alice/{test_string}')
machine.send_key('ctrl-q')
machine.wait_until_fails('pgrep -x codium')
'';
});
in builtins.mapAttrs (k: v: mkTest k v { }) tests
in
builtins.mapAttrs (k: v: mkTest k v { }) tests
@@ -45,6 +45,10 @@ stdenv.mkDerivation rec {
patchelf --set-rpath "$(patchelf --print-rpath $out/bin/espeak-ng)" $out/bin/speak-ng
'';
passthru = {
inherit mbrolaSupport;
};
meta = with lib; {
description = "Open source speech synthesizer that supports over 70 languages, based on eSpeak";
homepage = "https://github.com/espeak-ng/espeak-ng";
@@ -7,13 +7,13 @@
trivialBuild rec {
pname = "apheleia";
version = "1.1.2+unstable=2021-10-03";
version = "1.2";
src = fetchFromGitHub {
owner = "raxod502";
repo = pname;
rev = "8b9d576f2fda10d0c9051fc03c1eb1d9791e32fd";
hash = "sha256-QwGlCdHBll16mbfQxGw1EORZFUxYCZSt8ThYTTGjRpo=";
rev = "v${version}";
hash = "sha256-yd9yhQOs0+RB8RKaXnV/kClDm8cO97RkC8yw5b8IKRo=";
};
buildInputs = [
@@ -23,8 +23,12 @@ trivialBuild rec {
meta = with lib; {
homepage = "https://github.com/raxod502/apheleia";
description = "Asynchronous buffer reformat";
longDescription = ''
Run code formatter on buffer contents without moving point, using RCS
patches and dynamic programming.
'';
license = licenses.mit;
maintainers = with maintainers; [ AndersonTorres leungbk ];
platforms = emacs.meta.platforms;
inherit (emacs.meta) platforms;
};
}
@@ -5,13 +5,13 @@
trivialBuild {
pname = "bqn-mode";
version = "0.pre+date=2021-12-03";
version = "0.pre+date=2022-01-07";
src = fetchFromGitHub {
owner = "museoa";
repo = "bqn-mode";
rev = "38fba1193e0d1101f3b90bd76e419c011651ad6f";
sha256 = "0fdfz3kmrdgmx2i6fgrrj1cvapvrgnc3ahnwx3aayrpl1f091439";
rev = "86ef8b4d32d272b2765cd4a6e6e0b70a4f3e99a2";
hash = "sha256-6ygV/iNzzpZ77w+Dh/snHAzUxrbfaU9TxuNOtJK6pNQ=";
};
meta = with lib; {
@@ -234,10 +234,10 @@
elpaBuild {
pname = "auctex";
ename = "auctex";
version = "13.0.14";
version = "13.0.15";
src = fetchurl {
url = "https://elpa.gnu.org/packages/auctex-13.0.14.tar";
sha256 = "1gmqdcg9s6xf8kvzh1j27nbimakd5cy8pwsn0il19l026kxjimr8";
url = "https://elpa.gnu.org/packages/auctex-13.0.15.tar";
sha256 = "1rm8s02d1mx5sw7yj65zlr07xhimnmvqav7f45nz2h8bwka02c3c";
};
packageRequires = [ emacs ];
meta = {
@@ -335,14 +335,29 @@
license = lib.licenses.free;
};
}) {};
blist = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "blist";
ename = "blist";
version = "0.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/blist-0.1.tar";
sha256 = "0p9jx7m05ynfi3bnd91jghw7101ym8qzm5r42rb1vy85pcf9lbad";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/blist.html";
license = lib.licenses.free;
};
}) {};
bluetooth = callPackage ({ dash, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "bluetooth";
ename = "bluetooth";
version = "0.2";
version = "0.3";
src = fetchurl {
url = "https://elpa.gnu.org/packages/bluetooth-0.2.el";
sha256 = "1dq04p6ms0zx4awlypp4crkz7dzal4xg8ac7p8fqacz196rczssp";
url = "https://elpa.gnu.org/packages/bluetooth-0.3.tar";
sha256 = "1q27hk4j7k0q9vqgn9nq7q0vhn9jdqbygs7d9lv5gwfhdzdnl4az";
};
packageRequires = [ dash emacs ];
meta = {
@@ -681,10 +696,10 @@
elpaBuild {
pname = "consult";
ename = "consult";
version = "0.13";
version = "0.14";
src = fetchurl {
url = "https://elpa.gnu.org/packages/consult-0.13.tar";
sha256 = "08hwvyj9sif9r92nhd09prwlryyqgnifjfqj51xgx98m0rg7ks3p";
url = "https://elpa.gnu.org/packages/consult-0.14.tar";
sha256 = "0lb72j4nxvaar2vip6jlyn62b9z2p2vsmijk3m9nsrshbqnlf0rc";
};
packageRequires = [ emacs ];
meta = {
@@ -711,10 +726,10 @@
elpaBuild {
pname = "corfu";
ename = "corfu";
version = "0.16";
version = "0.17";
src = fetchurl {
url = "https://elpa.gnu.org/packages/corfu-0.16.tar";
sha256 = "04xgq5rkz8a0lykcyjsxq76yapbzz8vfw8gxqvdx0y58bhcw82y6";
url = "https://elpa.gnu.org/packages/corfu-0.17.tar";
sha256 = "13nmbyrsvglzv57n9srl0kz75y07v8imr6c99nbf1mssli3h6n7y";
};
packageRequires = [ emacs ];
meta = {
@@ -816,10 +831,10 @@
elpaBuild {
pname = "csv-mode";
ename = "csv-mode";
version = "1.17";
version = "1.18";
src = fetchurl {
url = "https://elpa.gnu.org/packages/csv-mode-1.17.tar";
sha256 = "16kv3n70pl4h3jfmmqy9bzflsm4nv7cwvrj7g4mgy8yb76nbyka2";
url = "https://elpa.gnu.org/packages/csv-mode-1.18.tar";
sha256 = "0fv7hvsfbc9n4hsgg3ywk8qf4ig5a986zfq0lwnjj8pcz1bpmrxj";
};
packageRequires = [ cl-lib emacs ];
meta = {
@@ -921,10 +936,10 @@
elpaBuild {
pname = "devdocs";
ename = "devdocs";
version = "0.2";
version = "0.3";
src = fetchurl {
url = "https://elpa.gnu.org/packages/devdocs-0.2.tar";
sha256 = "1npc7yra7pvf86ahmz1h7hnjxrz15ar1vjcalg4ilizypycpgrwj";
url = "https://elpa.gnu.org/packages/devdocs-0.3.tar";
sha256 = "03asw26nsnnx7hmyqhksq165vpii0h8y6qjjn0x4sdkyyns16yp7";
};
packageRequires = [ emacs ];
meta = {
@@ -1176,10 +1191,10 @@
elpaBuild {
pname = "eev";
ename = "eev";
version = "20211205";
version = "20211226";
src = fetchurl {
url = "https://elpa.gnu.org/packages/eev-20211205.tar";
sha256 = "0qicm3ym9n6iamlj0xyzn8729gfwjp5lwq6lj8r3ydgs4ggsr4jy";
url = "https://elpa.gnu.org/packages/eev-20211226.tar";
sha256 = "15ggg7sv4m5yc8ldyyffz7vgaj00xbw15zga0x2lpdfmahh6y2as";
};
packageRequires = [ emacs ];
meta = {
@@ -1294,10 +1309,10 @@
elpaBuild {
pname = "embark";
ename = "embark";
version = "0.13";
version = "0.14";
src = fetchurl {
url = "https://elpa.gnu.org/packages/embark-0.13.tar";
sha256 = "04x3cfikfvzr2xl1zh6kj0q31160kmh1vrzyrla3n6f8z5qch63x";
url = "https://elpa.gnu.org/packages/embark-0.14.tar";
sha256 = "12d4lza54sf493z9hx1fqlrhrx19girrdh560syi4gg03kg8s7nr";
};
packageRequires = [ emacs ];
meta = {
@@ -1314,10 +1329,10 @@
elpaBuild {
pname = "embark-consult";
ename = "embark-consult";
version = "0.2";
version = "0.3";
src = fetchurl {
url = "https://elpa.gnu.org/packages/embark-consult-0.2.tar";
sha256 = "0f1022yk6d88glrrawa8cl6yd5n44p8wnbfwn0f8z6j1n8wxq37z";
url = "https://elpa.gnu.org/packages/embark-consult-0.3.tar";
sha256 = "1l38bnphfq65r2fjy8zi7a8l4h361bfz756sswa3r7446jhd48rv";
};
packageRequires = [ consult emacs embark ];
meta = {
@@ -1334,10 +1349,10 @@
elpaBuild {
pname = "emms";
ename = "emms";
version = "7.8";
version = "8";
src = fetchurl {
url = "https://elpa.gnu.org/packages/emms-7.8.tar";
sha256 = "1nlb9rrdlbcqghph30r9i9m1brbdha818czbms0zhzdisxb0smi0";
url = "https://elpa.gnu.org/packages/emms-8.tar";
sha256 = "1iffh6n8q9xag25m9bgnpywa27bkdvvz2gr500hdgwwddgdm4pq8";
};
packageRequires = [ cl-lib nadvice seq ];
meta = {
@@ -1699,10 +1714,10 @@
elpaBuild {
pname = "gnorb";
ename = "gnorb";
version = "1.6.9";
version = "1.6.10";
src = fetchurl {
url = "https://elpa.gnu.org/packages/gnorb-1.6.9.tar";
sha256 = "027qqcxd3531f0j6frwlnw542lis4xgsx0ss1mdwb6hqc5f0vaxm";
url = "https://elpa.gnu.org/packages/gnorb-1.6.10.tar";
sha256 = "0kwgpyydnzphlw8rwyw9rim3j1awd0njxssm47db76nwwyxl1ry3";
};
packageRequires = [ cl-lib ];
meta = {
@@ -1751,10 +1766,10 @@
elpaBuild {
pname = "gnugo";
ename = "gnugo";
version = "3.1.1";
version = "3.1.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/gnugo-3.1.1.tar";
sha256 = "035rgiz42q042h41l4cvf0hr8igy2vyn3s1hsl2pgh2dq2jjylv6";
url = "https://elpa.gnu.org/packages/gnugo-3.1.2.tar";
sha256 = "138gzdyi8scqimvs49da66j8f5a43bhgpasn1bxzdj2zffwlwp6g";
};
packageRequires = [ ascii-art-to-unicode cl-lib xpm ];
meta = {
@@ -1949,14 +1964,29 @@
license = lib.licenses.free;
};
}) {};
ilist = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "ilist";
ename = "ilist";
version = "0.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/ilist-0.1.tar";
sha256 = "1ihh44276ivgykva805540nkkrqmc61lydv20l99si3amg07q9bh";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/ilist.html";
license = lib.licenses.free;
};
}) {};
ioccur = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "ioccur";
ename = "ioccur";
version = "2.5";
version = "2.6";
src = fetchurl {
url = "https://elpa.gnu.org/packages/ioccur-2.5.tar";
sha256 = "06a6djln2rry3qnb063yarji3p18hcpp5zrw7q43a45k7qaiaji8";
url = "https://elpa.gnu.org/packages/ioccur-2.6.tar";
sha256 = "0k7nr73gmd0z5zqkwdacvfsmyflri3f15a15zpr7va28pnxqzsdk";
};
packageRequires = [ cl-lib emacs ];
meta = {
@@ -2108,10 +2138,10 @@
elpaBuild {
pname = "js2-mode";
ename = "js2-mode";
version = "20201220";
version = "20211229";
src = fetchurl {
url = "https://elpa.gnu.org/packages/js2-mode-20201220.tar";
sha256 = "0zdrp8lap1ijrmsn9jsnvm44b6vxlgh9vcla5ysh1ga95zkjxrwm";
url = "https://elpa.gnu.org/packages/js2-mode-20211229.tar";
sha256 = "0qf7z0mmrvlncf1ac6yiza5wmcaf588d53ma41vhj58adaahimz6";
};
packageRequires = [ cl-lib emacs ];
meta = {
@@ -2168,10 +2198,10 @@
elpaBuild {
pname = "kind-icon";
ename = "kind-icon";
version = "0.1.3";
version = "0.1.4";
src = fetchurl {
url = "https://elpa.gnu.org/packages/kind-icon-0.1.3.tar";
sha256 = "0iqbjlqna5n8dx78350macs129wnri7kgmxk2qf3w9bj6qp760sn";
url = "https://elpa.gnu.org/packages/kind-icon-0.1.4.tar";
sha256 = "00pyvnq4dx51l2wbhvm6k6cx5xmy32j4h1lkr5kr8s3j5w83ip25";
};
packageRequires = [ emacs svg-lib ];
meta = {
@@ -2183,10 +2213,10 @@
elpaBuild {
pname = "kiwix";
ename = "kiwix";
version = "1.1.4";
version = "1.1.5";
src = fetchurl {
url = "https://elpa.gnu.org/packages/kiwix-1.1.4.tar";
sha256 = "1ls11a7fc6d4gj85g8m09r95fvc4ppc0k0fs28d1hzybmgl89rgl";
url = "https://elpa.gnu.org/packages/kiwix-1.1.5.tar";
sha256 = "17k4aa8s9m24c572qvl5a481iw9ny6wmd5yrg47iv4d2lb2i13h2";
};
packageRequires = [ emacs request ];
meta = {
@@ -2363,10 +2393,10 @@
elpaBuild {
pname = "marginalia";
ename = "marginalia";
version = "0.10";
version = "0.11";
src = fetchurl {
url = "https://elpa.gnu.org/packages/marginalia-0.10.tar";
sha256 = "0sw4kfqda3z9bph4vgzqvg045li64ww2gdc2cgddi2m5p7anq20g";
url = "https://elpa.gnu.org/packages/marginalia-0.11.tar";
sha256 = "0mri8awary11hwg6lib903q5jcv2isnf8mi62mgndiki5s9cgrbs";
};
packageRequires = [ emacs ];
meta = {
@@ -2547,10 +2577,10 @@
elpaBuild {
pname = "modus-themes";
ename = "modus-themes";
version = "1.7.0";
version = "2.0.0";
src = fetchurl {
url = "https://elpa.gnu.org/packages/modus-themes-1.7.0.tar";
sha256 = "1ncpgya5lbwr5z7gbq59prfqqnjxhqgaylcjr23mwrhbvvfrj5ff";
url = "https://elpa.gnu.org/packages/modus-themes-2.0.0.tar";
sha256 = "16kvkm7hsdk6jfdjkzafwdkwwri7cqki29qxqqhzkpwwghqlissl";
};
packageRequires = [ emacs ];
meta = {
@@ -2706,10 +2736,10 @@
elpaBuild {
pname = "nano-modeline";
ename = "nano-modeline";
version = "0.2";
version = "0.5";
src = fetchurl {
url = "https://elpa.gnu.org/packages/nano-modeline-0.2.tar";
sha256 = "13m8j8jnd33wwv1siv6frzdbs7bhspg859sflq58vimv444zjzac";
url = "https://elpa.gnu.org/packages/nano-modeline-0.5.tar";
sha256 = "0f6xgrxykd5jmlzf9xmywh0jc2jfq698m4nqk60h40dm6pi0gfi2";
};
packageRequires = [ emacs ];
meta = {
@@ -2890,10 +2920,10 @@
elpaBuild {
pname = "org";
ename = "org";
version = "9.5.1";
version = "9.5.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/org-9.5.1.tar";
sha256 = "033q5rpk8kfp43qymll339dybk4ig3gc6jz7av6zwjjcz2iawpj1";
url = "https://elpa.gnu.org/packages/org-9.5.2.tar";
sha256 = "12pvr47b11pq5rncpb3x8y11fhnakk5bi73j9l9w4d4ss3swcrnh";
};
packageRequires = [ emacs ];
meta = {
@@ -2935,10 +2965,10 @@
elpaBuild {
pname = "org-transclusion";
ename = "org-transclusion";
version = "1.0.1";
version = "1.1.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/org-transclusion-1.0.1.tar";
sha256 = "1mn66a82nk3daf2vjw6pg9zgff48inik04ffizgm6cdlgn6ymrcs";
url = "https://elpa.gnu.org/packages/org-transclusion-1.1.1.tar";
sha256 = "12dp5fc7iw78qx2f501ch8mvhvw90bxg8hhvx0kz3y24gf2h8d4d";
};
packageRequires = [ emacs org ];
meta = {
@@ -3160,10 +3190,10 @@
elpaBuild {
pname = "posframe";
ename = "posframe";
version = "1.1.2";
version = "1.1.5";
src = fetchurl {
url = "https://elpa.gnu.org/packages/posframe-1.1.2.tar";
sha256 = "0vrv46v7qwmax5m1i6b7lwdh789dfr18ggxjl4bk05qn7waway6j";
url = "https://elpa.gnu.org/packages/posframe-1.1.5.tar";
sha256 = "1kyd3r926hhs03mmpyvbjjyqcbvqrxk62rrscgfyl7rqi9ar56i0";
};
packageRequires = [ emacs ];
meta = {
@@ -3220,10 +3250,10 @@
elpaBuild {
pname = "pyim";
ename = "pyim";
version = "3.9.5";
version = "4.0.3";
src = fetchurl {
url = "https://elpa.gnu.org/packages/pyim-3.9.5.tar";
sha256 = "1dj46yprbl3l6n83aj0hsnd0rwjcp4ypyg2nhwig39wxirwlf9an";
url = "https://elpa.gnu.org/packages/pyim-4.0.3.tar";
sha256 = "110d9d8xglnyv0cn0slwk3msgqq8rs01xq2qmx5ya7i2v77gd5ql";
};
packageRequires = [ async emacs xr ];
meta = {
@@ -4016,10 +4046,10 @@
elpaBuild {
pname = "svg-lib";
ename = "svg-lib";
version = "0.2";
version = "0.2.4";
src = fetchurl {
url = "https://elpa.gnu.org/packages/svg-lib-0.2.tar";
sha256 = "0361w1paqrgqlv8wj5vf9ifssddrk2bwlarp2c2wzlxks3ahdf2x";
url = "https://elpa.gnu.org/packages/svg-lib-0.2.4.tar";
sha256 = "0vcf3vbrzhgwssf6mi4xyic32yzjsrllp2zaqdk3c0qjvq9w4wxa";
};
packageRequires = [ emacs ];
meta = {
@@ -4027,6 +4057,21 @@
license = lib.licenses.free;
};
}) {};
svg-tag-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib, svg-lib }:
elpaBuild {
pname = "svg-tag-mode";
ename = "svg-tag-mode";
version = "0.3.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/svg-tag-mode-0.3.2.tar";
sha256 = "1sg05dg0d9ai21l8rgpqywmwgw29sl21x2zkvlv04rl3hdvdq75y";
};
packageRequires = [ emacs svg-lib ];
meta = {
homepage = "https://elpa.gnu.org/packages/svg-tag-mode.html";
license = lib.licenses.free;
};
}) {};
swiper = callPackage ({ elpaBuild, emacs, fetchurl, ivy, lib }:
elpaBuild {
pname = "swiper";
@@ -4155,10 +4200,10 @@
elpaBuild {
pname = "tramp";
ename = "tramp";
version = "2.5.1.5";
version = "2.5.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/tramp-2.5.1.5.tar";
sha256 = "1g3xf97q5h6sr67w9bphcbbqx9jz2lbl8lij5rz1r0zbsnlcv7n8";
url = "https://elpa.gnu.org/packages/tramp-2.5.2.tar";
sha256 = "1j71x3q6x9xyf21capjxcp85b7z2x9khrqsd2sy2s3qwxz3jbg5n";
};
packageRequires = [ emacs ];
meta = {
@@ -4436,10 +4481,10 @@
elpaBuild {
pname = "vertico";
ename = "vertico";
version = "0.17";
version = "0.19";
src = fetchurl {
url = "https://elpa.gnu.org/packages/vertico-0.17.tar";
sha256 = "1zhrkdhnc32wsc5f958hwa7mgf2vcjh3x6ng1cpndds5yllxb7s9";
url = "https://elpa.gnu.org/packages/vertico-0.19.tar";
sha256 = "1i9aqxsplmzyy7nv4czspa66a6v33lnng1d8zsgjf1m9sz0kyzxp";
};
packageRequires = [ emacs ];
meta = {
@@ -4456,10 +4501,10 @@
elpaBuild {
pname = "vertico-posframe";
ename = "vertico-posframe";
version = "0.4.2";
version = "0.4.8";
src = fetchurl {
url = "https://elpa.gnu.org/packages/vertico-posframe-0.4.2.tar";
sha256 = "1kajkjnjlisws2zdahy3bym942f3zvf05qhbmw9i2lv54jiy07pz";
url = "https://elpa.gnu.org/packages/vertico-posframe-0.4.8.tar";
sha256 = "1cvihfj59qycd3kifxbg9ndrmiihc62si8q5b8fxc1p20acw4f69";
};
packageRequires = [ emacs posframe vertico ];
meta = {
@@ -4730,16 +4775,16 @@
license = lib.licenses.free;
};
}) {};
xpm = callPackage ({ elpaBuild, fetchurl, lib }:
xpm = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, queue }:
elpaBuild {
pname = "xpm";
ename = "xpm";
version = "1.0.4";
version = "1.0.5";
src = fetchurl {
url = "https://elpa.gnu.org/packages/xpm-1.0.4.tar";
sha256 = "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh";
url = "https://elpa.gnu.org/packages/xpm-1.0.5.tar";
sha256 = "13p6s6b2v7h4bnwdkkrd1qz84jd7g2s18w0czhpxv6hvj9sqf5hx";
};
packageRequires = [];
packageRequires = [ cl-lib queue ];
meta = {
homepage = "https://elpa.gnu.org/packages/xpm.html";
license = lib.licenses.free;
@@ -69,7 +69,10 @@ in {
melpaBuild {
inherit pname ename commit;
version = if isNull version then "" else
lib.concatStringsSep "." (map toString version);
lib.concatStringsSep "." (map toString
# Hack: Melpa archives contains versions with parse errors such as [ 4 4 -4 413 ] which should be 4.4-413
# This filter method is still technically wrong, but it's computationally cheap enough and tapers over the issue
(builtins.filter (n: n >= 0) version));
# TODO: Broken should not result in src being null (hack to avoid eval errors)
src = if (isNull sha256 || broken) then null else
lib.getAttr fetcher (fetcherGenerators args sourceArgs);
@@ -229,8 +229,6 @@
sv-kalender = callPackage ./sv-kalender { };
tramp = callPackage ./tramp { };
youtube-dl = callPackage ./youtube-dl { };
# From old emacsPackages (pre emacsPackagesNg)
@@ -60,6 +60,21 @@
license = lib.licenses.free;
};
}) {};
anzu = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "anzu";
ename = "anzu";
version = "0.64";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/anzu-0.64.tar";
sha256 = "1znw7wlpjb3d8wsijqziiq21j966x95q9g5j16wx48xyrrzr1mcs";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/anzu.html";
license = lib.licenses.free;
};
}) {};
apache-mode = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "apache-mode";
@@ -105,6 +120,26 @@
license = lib.licenses.free;
};
}) {};
autothemer = callPackage ({ cl-lib ? null
, dash
, elpaBuild
, emacs
, fetchurl
, lib }:
elpaBuild {
pname = "autothemer";
ename = "autothemer";
version = "0.2.3";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/autothemer-0.2.3.tar";
sha256 = "10r4lf3nl7mk6yzfcyld5k0njslw8ly2sd0iz1zkzywnv31lsxnd";
};
packageRequires = [ cl-lib dash emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/autothemer.html";
license = lib.licenses.free;
};
}) {};
bison-mode = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "bison-mode";
@@ -120,6 +155,36 @@
license = lib.licenses.free;
};
}) {};
boxquote = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "boxquote";
ename = "boxquote";
version = "2.2";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/boxquote-2.2.tar";
sha256 = "0vcqm78b5fsizkn2xalnzmdci5m02yxxypcr9q2sai04j7lhmwd9";
};
packageRequires = [ cl-lib ];
meta = {
homepage = "https://elpa.gnu.org/packages/boxquote.html";
license = lib.licenses.free;
};
}) {};
buttercup = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "buttercup";
ename = "buttercup";
version = "1.24";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/buttercup-1.24.tar";
sha256 = "1ch949xf03gw9r5v32akx7hqnq7zrp3qr3gcic5b52yl5nmy8mhn";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/buttercup.html";
license = lib.licenses.free;
};
}) {};
caml = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "caml";
@@ -135,6 +200,38 @@
license = lib.licenses.free;
};
}) {};
cider = callPackage ({ clojure-mode
, elpaBuild
, emacs
, fetchurl
, lib
, parseedn
, queue
, seq
, sesman
, spinner }:
elpaBuild {
pname = "cider";
ename = "cider";
version = "1.2.0";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/cider-1.2.0.tar";
sha256 = "1dkn5mcp4vyk6h4mqrn7fcqjs4h0dx1y1b1pcg2jpyx11mhdpjxf";
};
packageRequires = [
clojure-mode
emacs
parseedn
queue
seq
sesman
spinner
];
meta = {
homepage = "https://elpa.gnu.org/packages/cider.html";
license = lib.licenses.free;
};
}) {};
clojure-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "clojure-mode";
@@ -278,6 +375,139 @@
license = lib.licenses.free;
};
}) {};
evil-anzu = callPackage ({ anzu, elpaBuild, evil, fetchurl, lib }:
elpaBuild {
pname = "evil-anzu";
ename = "evil-anzu";
version = "0.2";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/evil-anzu-0.2.tar";
sha256 = "0fv7kan67g24imhbgggrg8r4pjhpmicpq3g8g1wnq8p9zkwxbm7s";
};
packageRequires = [ anzu evil ];
meta = {
homepage = "https://elpa.gnu.org/packages/evil-anzu.html";
license = lib.licenses.free;
};
}) {};
evil-exchange = callPackage ({ cl-lib ? null
, elpaBuild
, evil
, fetchurl
, lib }:
elpaBuild {
pname = "evil-exchange";
ename = "evil-exchange";
version = "0.41";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/evil-exchange-0.41.tar";
sha256 = "1i07c0zc75mbgb6hzj6py248gxzy0mk3xyaskvwlc371fyyn6v6c";
};
packageRequires = [ cl-lib evil ];
meta = {
homepage = "https://elpa.gnu.org/packages/evil-exchange.html";
license = lib.licenses.free;
};
}) {};
evil-indent-plus = callPackage ({ cl-lib ? null
, elpaBuild
, evil
, fetchurl
, lib }:
elpaBuild {
pname = "evil-indent-plus";
ename = "evil-indent-plus";
version = "1.0.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/evil-indent-plus-1.0.1.tar";
sha256 = "0wnn5xjdbc70cxwllz1gf6xf91ijlfhlps7gkb9c3v1kwpsfp3s3";
};
packageRequires = [ cl-lib evil ];
meta = {
homepage = "https://elpa.gnu.org/packages/evil-indent-plus.html";
license = lib.licenses.free;
};
}) {};
evil-lisp-state = callPackage ({ bind-map
, elpaBuild
, evil
, fetchurl
, lib
, smartparens }:
elpaBuild {
pname = "evil-lisp-state";
ename = "evil-lisp-state";
version = "8.2";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/evil-lisp-state-8.2.tar";
sha256 = "0hwv39rkwadm3jri84nf9mw48ybd5a0y02yzjp5cayy7alpf6zcn";
};
packageRequires = [ bind-map evil smartparens ];
meta = {
homepage = "https://elpa.gnu.org/packages/evil-lisp-state.html";
license = lib.licenses.free;
};
}) {};
evil-matchit = callPackage ({ elpaBuild, emacs, evil, fetchurl, lib }:
elpaBuild {
pname = "evil-matchit";
ename = "evil-matchit";
version = "2.4.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/evil-matchit-2.4.1.tar";
sha256 = "0ybw0jfjkwiz4ln3z5pizbw5d9d612crpk410czcyi8adyj018nc";
};
packageRequires = [ emacs evil ];
meta = {
homepage = "https://elpa.gnu.org/packages/evil-matchit.html";
license = lib.licenses.free;
};
}) {};
evil-nerd-commenter = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "evil-nerd-commenter";
ename = "evil-nerd-commenter";
version = "3.5.6";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/evil-nerd-commenter-3.5.6.tar";
sha256 = "0bv7s2jcgi3ma3dspczy7jrb55vqkhsz0rq0nz14qiay5j9dwghd";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/evil-nerd-commenter.html";
license = lib.licenses.free;
};
}) {};
evil-numbers = callPackage ({ elpaBuild, emacs, evil, fetchurl, lib }:
elpaBuild {
pname = "evil-numbers";
ename = "evil-numbers";
version = "0.6";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/evil-numbers-0.6.tar";
sha256 = "0zl16ljb64cawcj11f4ndz941sllj8nhgjcb4w0r1afxbvpn5rss";
};
packageRequires = [ emacs evil ];
meta = {
homepage = "https://elpa.gnu.org/packages/evil-numbers.html";
license = lib.licenses.free;
};
}) {};
evil-visualstar = callPackage ({ elpaBuild, evil, fetchurl, lib }:
elpaBuild {
pname = "evil-visualstar";
ename = "evil-visualstar";
version = "0.2.0";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/evil-visualstar-0.2.0.tar";
sha256 = "0vjhwdp2ms7k008mm68vzlkxrq0zyrsf4r10w57w77qg5a96151c";
};
packageRequires = [ evil ];
meta = {
homepage = "https://elpa.gnu.org/packages/evil-visualstar.html";
license = lib.licenses.free;
};
}) {};
flymake-kondor = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "flymake-kondor";
@@ -293,16 +523,16 @@
license = lib.licenses.free;
};
}) {};
geiser = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
geiser = callPackage ({ elpaBuild, emacs, fetchurl, lib, transient }:
elpaBuild {
pname = "geiser";
ename = "geiser";
version = "0.19";
version = "0.22";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/geiser-0.19.tar";
sha256 = "13w6gx6y8ilppcpfib5293600n0xy4xc4xa6idpmbcfd2pkmnw1x";
url = "https://elpa.nongnu.org/nongnu/geiser-0.22.tar";
sha256 = "0jcxjfn9d7cnsir2pva0axaz180d01sn0l9f175sj57ws8spj2h2";
};
packageRequires = [ emacs ];
packageRequires = [ emacs transient ];
meta = {
homepage = "https://elpa.gnu.org/packages/geiser.html";
license = lib.licenses.free;
@@ -312,10 +542,10 @@
elpaBuild {
pname = "geiser-chez";
ename = "geiser-chez";
version = "0.16";
version = "0.17";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/geiser-chez-0.16.tar";
sha256 = "016b7n5rv7fyrw4lqcprhhf2rai5vvmmc8a13l4w3a30rwcgm7cd";
url = "https://elpa.nongnu.org/nongnu/geiser-chez-0.17.tar";
sha256 = "139x7b3q5n04ig0m263jljm4bsjiiyvi3f84pcq3bgnj3dk5dlxh";
};
packageRequires = [ emacs geiser ];
meta = {
@@ -387,10 +617,10 @@
elpaBuild {
pname = "geiser-guile";
ename = "geiser-guile";
version = "0.19";
version = "0.20.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/geiser-guile-0.19.tar";
sha256 = "1rjml11gkl80x4hmh84m84r4qb3kxi36d7mwm25n791v5fs1cl32";
url = "https://elpa.nongnu.org/nongnu/geiser-guile-0.20.1.tar";
sha256 = "0psm53ryh1wica2730xcw4lc2jv06d08wnjfyd8f61952zzj57k7";
};
packageRequires = [ emacs geiser ];
meta = {
@@ -524,14 +754,29 @@
license = lib.licenses.free;
};
}) {};
gotham-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "gotham-theme";
ename = "gotham-theme";
version = "1.1.9";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/gotham-theme-1.1.9.tar";
sha256 = "0ikczh9crs02hlvnpdknxfbpqmpiicdbshjhi5pz3v7ynizj64vm";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/gotham-theme.html";
license = lib.licenses.free;
};
}) {};
goto-chg = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "goto-chg";
ename = "goto-chg";
version = "1.7.4";
version = "1.7.5";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/goto-chg-1.7.4.tar";
sha256 = "1sg2gp48b83gq0j821lk241lwyxkhqr6w5d1apbnkm3qf08qjwba";
url = "https://elpa.nongnu.org/nongnu/goto-chg-1.7.5.tar";
sha256 = "08wdrwmgy5hanir6py6wiq0pq4lbv9jiyz1m3h947kb35kxalmks";
};
packageRequires = [ emacs ];
meta = {
@@ -539,6 +784,21 @@
license = lib.licenses.free;
};
}) {};
gruvbox-theme = callPackage ({ autothemer, elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "gruvbox-theme";
ename = "gruvbox-theme";
version = "1.26.0";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/gruvbox-theme-1.26.0.tar";
sha256 = "19q5i0jz01hdn09wwg929yva6278fhyvk68id5p9dyi8h2n73djn";
};
packageRequires = [ autothemer ];
meta = {
homepage = "https://elpa.gnu.org/packages/gruvbox-theme.html";
license = lib.licenses.free;
};
}) {};
guru-mode = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "guru-mode";
@@ -641,10 +901,10 @@
elpaBuild {
pname = "idris-mode";
ename = "idris-mode";
version = "0.9.18";
version = "1.1.0";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/idris-mode-0.9.18.tar";
sha256 = "1z4wsqzxsmn1vdqp44b32m4wzs4bbnsyzv09v9ggr4l4h2j4c3x5";
url = "https://elpa.nongnu.org/nongnu/idris-mode-1.1.0.tar";
sha256 = "00xbb63kidkygs2zp334nw38gn5mrbky3ii0g8c9k9si4k1dn5gq";
};
packageRequires = [ cl-lib emacs prop-menu ];
meta = {
@@ -806,6 +1066,43 @@
license = lib.licenses.free;
};
}) {};
mentor = callPackage ({ async
, cl-lib ? null
, elpaBuild
, emacs
, fetchurl
, lib
, seq
, xml-rpc }:
elpaBuild {
pname = "mentor";
ename = "mentor";
version = "0.3.5";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/mentor-0.3.5.tar";
sha256 = "01zrvfk2njzyzjzkvp5hv5cjl1k1qjrila1ab4bv26gf6bkq5xh3";
};
packageRequires = [ async cl-lib emacs seq xml-rpc ];
meta = {
homepage = "https://elpa.gnu.org/packages/mentor.html";
license = lib.licenses.free;
};
}) {};
moe-theme = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "moe-theme";
ename = "moe-theme";
version = "1.0.2";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/moe-theme-1.0.2.tar";
sha256 = "1hdbm6hw94yyw5cdgfmc5fgnfc2glf0ba8a9ch2y33nzjawklb8x";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/moe-theme.html";
license = lib.licenses.free;
};
}) {};
monokai-theme = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "monokai-theme";
@@ -821,6 +1118,27 @@
license = lib.licenses.free;
};
}) {};
mpv = callPackage ({ cl-lib ? null
, elpaBuild
, emacs
, fetchurl
, json ? null
, lib
, org }:
elpaBuild {
pname = "mpv";
ename = "mpv";
version = "0.2.0";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/mpv-0.2.0.tar";
sha256 = "14d5376y9b3jxxhzjcscx03ss61yd129dkb0ki9gmp2sk7cns3n5";
};
packageRequires = [ cl-lib emacs json org ];
meta = {
homepage = "https://elpa.gnu.org/packages/mpv.html";
license = lib.licenses.free;
};
}) {};
multiple-cursors = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "multiple-cursors";
@@ -881,6 +1199,102 @@
license = lib.licenses.free;
};
}) {};
org-journal = callPackage ({ elpaBuild, emacs, fetchurl, lib, org }:
elpaBuild {
pname = "org-journal";
ename = "org-journal";
version = "2.1.2";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/org-journal-2.1.2.tar";
sha256 = "1s5hadcps283c5a1sy8fp1ih064l0hl97frj93jw3fkx6jwbqf0v";
};
packageRequires = [ emacs org ];
meta = {
homepage = "https://elpa.gnu.org/packages/org-journal.html";
license = lib.licenses.free;
};
}) {};
org-mime = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "org-mime";
ename = "org-mime";
version = "0.2.4";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/org-mime-0.2.4.tar";
sha256 = "048psi5h8ln83pra4f24iq794w00b8p8pk67cylbd8afjdhh2x1r";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/org-mime.html";
license = lib.licenses.free;
};
}) {};
org-superstar = callPackage ({ elpaBuild, emacs, fetchurl, lib, org }:
elpaBuild {
pname = "org-superstar";
ename = "org-superstar";
version = "1.5.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/org-superstar-1.5.1.tar";
sha256 = "0qwnjd6i3mzkvwdwpm3hn8hp3jwza43x1xq1hfi8d6fa9mwzw9nl";
};
packageRequires = [ emacs org ];
meta = {
homepage = "https://elpa.gnu.org/packages/org-superstar.html";
license = lib.licenses.free;
};
}) {};
pacmacs = callPackage ({ cl-lib ? null
, dash
, elpaBuild
, emacs
, f
, fetchurl
, lib }:
elpaBuild {
pname = "pacmacs";
ename = "pacmacs";
version = "0.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/pacmacs-0.1.tar";
sha256 = "0vhxxnk8n4h2klvr4xahsm845dwds895fxxgcs7dz2262g9myd93";
};
packageRequires = [ cl-lib dash emacs f ];
meta = {
homepage = "https://elpa.gnu.org/packages/pacmacs.html";
license = lib.licenses.free;
};
}) {};
parseclj = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "parseclj";
ename = "parseclj";
version = "1.0.6";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/parseclj-1.0.6.tar";
sha256 = "0cs6a394pll9sl8ybpsygg9mkznpz119f8hjgw3n7mgkwfc5a30k";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/parseclj.html";
license = lib.licenses.free;
};
}) {};
parseedn = callPackage ({ elpaBuild, emacs, fetchurl, lib, map, parseclj }:
elpaBuild {
pname = "parseedn";
ename = "parseedn";
version = "1.0.6";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/parseedn-1.0.6.tar";
sha256 = "1274pr91hcrvy4srdy2dw14hbcg2qy24z4klx6mashgzb1r42n3d";
};
packageRequires = [ emacs map parseclj ];
meta = {
homepage = "https://elpa.gnu.org/packages/parseedn.html";
license = lib.licenses.free;
};
}) {};
pdf-tools = callPackage ({ elpaBuild
, emacs
, fetchurl
@@ -920,10 +1334,10 @@
elpaBuild {
pname = "popup";
ename = "popup";
version = "0.5.8";
version = "0.5.9";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/popup-0.5.8.tar";
sha256 = "1amwxsymzvzmj8696fa6i0cqx4ac581rvr4dwkri7akkr7amh3yh";
url = "https://elpa.nongnu.org/nongnu/popup-0.5.9.tar";
sha256 = "0zyn6q3fwj20y7zdk49jbid2h3yf8l5x8y1kv9mj717kjbxiw063";
};
packageRequires = [ emacs ];
meta = {
@@ -961,6 +1375,21 @@
license = lib.licenses.free;
};
}) {};
rainbow-delimiters = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "rainbow-delimiters";
ename = "rainbow-delimiters";
version = "2.1.5";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/rainbow-delimiters-2.1.5.tar";
sha256 = "0bb7sqjgpm3041srr44l23p3mcjhvnpxl594ma25pbs11qqipz5w";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/rainbow-delimiters.html";
license = lib.licenses.free;
};
}) {};
request = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "request";
@@ -995,10 +1424,10 @@
elpaBuild {
pname = "rust-mode";
ename = "rust-mode";
version = "1.0.2";
version = "1.0.3";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/rust-mode-1.0.2.tar";
sha256 = "08zkq5md20ppqlvd5xxsbzargs6ffzmjr1b1pq9i937l3n9d4swl";
url = "https://elpa.nongnu.org/nongnu/rust-mode-1.0.3.tar";
sha256 = "1hg5hr5jma5v4rilchwyyw1fzm8lkfd3fxay0sb9dgzrgypvh5am";
};
packageRequires = [ emacs ];
meta = {
@@ -1040,6 +1469,36 @@
license = lib.licenses.free;
};
}) {};
sesman = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "sesman";
ename = "sesman";
version = "0.3.2";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/sesman-0.3.2.tar";
sha256 = "1nv0xh6dklpw1jq8b9biv70gzqa7par5jbqacx2lx0xhkyf0c7c1";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/sesman.html";
license = lib.licenses.free;
};
}) {};
shellcop = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "shellcop";
ename = "shellcop";
version = "0.0.7";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/shellcop-0.0.7.tar";
sha256 = "1zwj22bf37ffdbz5iqkwz5mzzsxffhj521dmwkgp5sh4r1fwip8a";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/shellcop.html";
license = lib.licenses.free;
};
}) {};
slime = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, macrostep }:
elpaBuild {
pname = "slime";
@@ -1119,10 +1578,10 @@
elpaBuild {
pname = "subed";
ename = "subed";
version = "0.0.2";
version = "0.0.3";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/subed-0.0.2.tar";
sha256 = "1q9sb8kn1g5hvmm5zl4hm90fvf5kb82da69y24x7yzgs6axy0dga";
url = "https://elpa.nongnu.org/nongnu/subed-0.0.3.tar";
sha256 = "1qwpzj9j5fbis6vlgnqyilc49gbnxf48wcrjl8kljwzna3hsk7bx";
};
packageRequires = [ emacs ];
meta = {
@@ -1175,6 +1634,57 @@
license = lib.licenses.free;
};
}) {};
tangotango-theme = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "tangotango-theme";
ename = "tangotango-theme";
version = "0.0.7";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/tangotango-theme-0.0.7.tar";
sha256 = "0xl90c7hzzd2wanz41mb5ikjgrfga28qb893yvdcy0pa6mgdmpmx";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/tangotango-theme.html";
license = lib.licenses.free;
};
}) {};
telephone-line = callPackage ({ cl-generic
, cl-lib ? null
, elpaBuild
, emacs
, fetchurl
, lib
, seq }:
elpaBuild {
pname = "telephone-line";
ename = "telephone-line";
version = "0.5";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/telephone-line-0.5.tar";
sha256 = "09glq2ljd10mqx54i3vflk7yjb1abhykzm9kng4wrw5156ssn6zs";
};
packageRequires = [ cl-generic cl-lib emacs seq ];
meta = {
homepage = "https://elpa.gnu.org/packages/telephone-line.html";
license = lib.licenses.free;
};
}) {};
toc-org = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "toc-org";
ename = "toc-org";
version = "1.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/toc-org-1.1.tar";
sha256 = "1wy48z4x756r7k6v9znn3f6bfxh867vy58wal7wmhxxig6sn9bk3";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/toc-org.html";
license = lib.licenses.free;
};
}) {};
tuareg = callPackage ({ caml, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "tuareg";
@@ -1220,6 +1730,21 @@
license = lib.licenses.free;
};
}) {};
visual-fill-column = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "visual-fill-column";
ename = "visual-fill-column";
version = "2.4";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/visual-fill-column-2.4.tar";
sha256 = "0100v17s9w9nqjpr7h3zianfy1i4i71idk2qrlzqzcd8qn1m3vjx";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/visual-fill-column.html";
license = lib.licenses.free;
};
}) {};
web-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "web-mode";
@@ -1274,10 +1799,10 @@
elpaBuild {
pname = "with-editor";
ename = "with-editor";
version = "3.0.5";
version = "3.1.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/with-editor-3.0.5.tar";
sha256 = "0bri6jr99133k9w0d754rw2f6hgjzndczngfw2lf2rvxks448krm";
url = "https://elpa.nongnu.org/nongnu/with-editor-3.1.1.tar";
sha256 = "175k68mr0n3v5l3gbv2fsdfznm9yjy32l3ay6hj0d4c53kw76hvn";
};
packageRequires = [ emacs ];
meta = {
@@ -1285,6 +1810,36 @@
license = lib.licenses.free;
};
}) {};
ws-butler = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "ws-butler";
ename = "ws-butler";
version = "0.6";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/ws-butler-0.6.tar";
sha256 = "1mm1c2awq2vs5fz773f1pa6ham29ws1agispxfjvj5nx15a0kqzl";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/ws-butler.html";
license = lib.licenses.free;
};
}) {};
xml-rpc = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "xml-rpc";
ename = "xml-rpc";
version = "1.6.15";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/xml-rpc-1.6.15.tar";
sha256 = "0z87rn7zbd8335iqfvk16zpvby66l0izzw438pxdr7kf60i5vgwl";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/xml-rpc.html";
license = lib.licenses.free;
};
}) {};
yaml-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "yaml-mode";
@@ -1,33 +0,0 @@
{ callPackage }:
{
org = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "org";
ename = "org";
version = "20210929";
src = fetchurl {
url = "https://orgmode.org/elpa/org-20210929.tar";
sha256 = "1fxhxjy48jxvs16x7270c4qj6n4lm952sn7q369c88gbf2jqxis4";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/org.html";
license = lib.licenses.free;
};
}) {};
org-plus-contrib = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "org-plus-contrib";
ename = "org-plus-contrib";
version = "20210929";
src = fetchurl {
url = "https://orgmode.org/elpa/org-plus-contrib-20210929.tar";
sha256 = "0bn80kji2h423d39c0am2r3p2hwvdxs9rm31xa4810dff27ihxb1";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/org-plus-contrib.html";
license = lib.licenses.free;
};
}) {};
}
File diff suppressed because it is too large Load Diff
@@ -1,29 +0,0 @@
{ lib
, stdenv
, fetchurl
, emacs
, texinfo
}:
stdenv.mkDerivation rec {
pname = "tramp";
version = "2.5.1";
src = fetchurl {
url = "mirror://gnu/tramp/${pname}-${version}.tar.gz";
hash = "sha256-+jjWBcj2dP9Xyj4dzpAX86KnajVa9eFDcjD9xTw6vks=";
};
buildInputs = [
emacs
texinfo
];
meta = with lib; {
homepage = "https://www.gnu.org/software/tramp";
description = "Transparently access remote files from Emacs (latest version)";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ AndersonTorres ];
inherit (emacs.meta) platforms;
};
}
@@ -78,7 +78,6 @@ stdenv.mkDerivation rec {
gfbgraph
glib
gnome-online-accounts
gnome.adwaita-icon-theme
grilo
grilo-plugins
gsettings-desktop-schemas
+1 -1
View File
@@ -1 +1 @@
WGET_ARGS=( https://download.kde.org/stable/release-service/21.12.0/src -A '*.tar.xz' )
WGET_ARGS=( https://download.kde.org/stable/release-service/21.12.1/src -A '*.tar.xz' )
File diff suppressed because it is too large Load Diff
@@ -108,6 +108,7 @@ mkDerivation rec {
python
regex
sip
setuptools
zeroconf
jeepney
# the following are distributed with calibre, but we use upstream instead
@@ -2,11 +2,11 @@
buildPythonApplication rec {
pname = "gallery_dl";
version = "1.19.3";
version = "1.20.1";
src = fetchPypi {
inherit pname version;
sha256 = "db3973a17f1074e4f4cb99b635b94c1926bdd549263e1df909498f3c6aa93484";
sha256 = "a1c06625381485f82aa14a038a622d40ab9cc2c8d150dd65c66df96dbf427f62";
};
propagatedBuildInputs = [ requests yt-dlp ];
+11 -2
View File
@@ -1,7 +1,9 @@
{ lib
, stdenv
, fetchurl
, nixos
, testVersion
, testEqualDerivation
, hello
}:
@@ -16,8 +18,15 @@ stdenv.mkDerivation rec {
doCheck = true;
passthru.tests.version =
testVersion { package = hello; };
passthru.tests = {
version = testVersion { package = hello; };
invariant-under-noXlibs =
testEqualDerivation
"hello must not be rebuilt when environment.noXlibs is set."
hello
(nixos { environment.noXlibs = true; }).pkgs.hello;
};
meta = with lib; {
description = "A program that produces a familiar, friendly greeting";
@@ -306,6 +306,7 @@ let
"colorlog"
"emoji"
"immutabledict"
"PyYAML"
"sarge"
"sentry-sdk"
"watchdog"
+2 -2
View File
@@ -123,13 +123,13 @@ rec {
gammastep = mkRedshift rec {
pname = "gammastep";
version = "2.0.7";
version = "2.0.8";
src = fetchFromGitLab {
owner = "chinstrap";
repo = pname;
rev = "v${version}";
sha256 = "sha256-78z2CQ+r7undbp+8E0mMDNWWl+RXeS5he/ax0VomRYY=";
sha256 = "071f3iqdbblb3awnx48j19kspk6l2g3658za80i2mf4gacgq9fm1";
};
meta = redshift.meta // {
@@ -0,0 +1,79 @@
{ lib, stdenv, fetchFromGitHub, perl, xterm, coreutils }:
stdenv.mkDerivation {
pname = "tagtime";
version = "2018-09-02";
src = fetchFromGitHub {
owner = "tagtime";
repo = "TagTime";
rev = "59343e2cbe451eb16109e782c194ccbd0ee4196d";
sha256 = "1xpmra3f9618b0gajfxqh061r4phkiklvcgpglsyx82bhmgf9n1f";
};
buildInputs = [
perl
];
installPhase = ''
runHook preInstall
mkdir -p $out/{libexec,bin}
# We dont support a config file for now,
# since its not entirely clear how to split nix-set paths
# from the actual config options.
for pl in *.pl; do
substituteInPlace "$pl" \
--replace 'require "$ENV{HOME}/.tagtimerc";' \
'require "${placeholder "out"}/libexec/settings.pl";'
done;
install tagtimed.pl $out/bin/tagtimed
substituteInPlace util.pl \
--replace '/usr/bin/touch' \
'${coreutils}/bin/touch' \
--replace '/bin/rm -f $lockf' \
'${coreutils}/bin/rm -f $lockf' \
--replace '$lockf = "''${path}tagtime.lock";' \
'mkdir "$ENV{HOME}/.cache/tagtime";
$lockf = "$ENV{HOME}/.cache/tagtime/tagtime.lock";'
mv *.pl $out/libexec/
mv template.tsk $out/libexec/
# set the default template arguments to sane defaults.
substitute settings.pl.template $out/libexec/settings.pl \
--replace '"__USER__"' \
'getlogin()' \
--replace '"__PATH__"' \
'"${placeholder "out"}/libexec/"' \
--replace '$logf = "$path$usr.log";' \
'mkdir "$ENV{HOME}/.local/share/tagtime";
$logf = "$ENV{HOME}/.local/share/tagtime/pings.log";' \
--replace '"__ED__ +"' \
'$ENV{"EDITOR"}' \
--replace '"__XT__"' \
'"${xterm}/bin/xterm"'
runHook postInstall
'';
meta = {
description = "Stochastic Time Tracking for Space Cadets";
longDescription = ''
To determine how you spend your time, TagTime literally randomly samples
you. At random times it pops up and asks what you're doing right at that
moment. You answer with tags.
See https://messymatters.com/tagtime for the whole story.
[maintainers note]: This is the original perl script implementation.
'';
homepage = "http://messymatters.com/tagtime/";
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.Profpatsch ];
};
}
@@ -93,11 +93,11 @@ in
stdenv.mkDerivation rec {
pname = "brave";
version = "1.33.106";
version = "1.34.80";
src = fetchurl {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
sha256 = "XSqlQyc6gJthchfmq29d5+OVVSaxYG7zpVZNFZpl67s=";
sha256 = "2N+dXQGVfm3GsaKKo3EBxLu+cu08OjlrqkgXX9knFys=";
};
dontConfigure = true;
@@ -174,7 +174,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://brave.com/";
description = "Privacy-oriented browser for Desktop and Laptop computers";
changelog = "https://github.com/brave/brave-browser/blob/master/CHANGELOG_DESKTOP.md";
changelog = "https://github.com/brave/brave-browser/blob/master/CHANGELOG_DESKTOP.md#" + lib.replaceStrings [ "." ] [ "" ] version;
longDescription = ''
Brave browser blocks the ads and trackers that slow you down,
chew up your bandwidth, and invade your privacy. Brave lets you
@@ -5,8 +5,8 @@ self: super: {
_: {
src = pkgs.fetchgit {
url = "https://github.com/NixOS/nixops.git";
rev = "7ebdd8ace8d6bcefc18ee9e3e590f8bfa3368771";
sha256 = "16pwxs5bca6cd83f0rs4sf5r8yf07wmha051waysmxs9xxl856yc";
rev = "0c989d79c9052ebf52f12964131f4fc31ac20a18";
sha256 = "07jz9grq3hjn1g9xybln5phbjhn2zsldcnan3lal6syzjggja6v1";
};
}
);
+53 -16
View File
@@ -38,14 +38,14 @@ python-versions = "*"
[[package]]
name = "boto3"
version = "1.20.8"
version = "1.20.20"
description = "The AWS SDK for Python"
category = "main"
optional = false
python-versions = ">= 3.6"
[package.dependencies]
botocore = ">=1.23.8,<1.24.0"
botocore = ">=1.23.20,<1.24.0"
jmespath = ">=0.7.1,<1.0.0"
s3transfer = ">=0.5.0,<0.6.0"
@@ -54,7 +54,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"]
[[package]]
name = "botocore"
version = "1.23.8"
version = "1.23.20"
description = "Low-level, data-driven core of boto 3."
category = "main"
optional = false
@@ -89,7 +89,7 @@ pycparser = "*"
[[package]]
name = "charset-normalizer"
version = "2.0.7"
version = "2.0.9"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
category = "main"
optional = false
@@ -194,7 +194,7 @@ testing = ["coverage (<5)", "pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3
[[package]]
name = "libvirt-python"
version = "7.9.0"
version = "7.10.0"
description = "The libvirt virtualization API python binding"
category = "main"
optional = false
@@ -227,7 +227,7 @@ typing-extensions = "^3.7.4"
type = "git"
url = "https://github.com/NixOS/nixops.git"
reference = "master"
resolved_reference = "7ebdd8ace8d6bcefc18ee9e3e590f8bfa3368771"
resolved_reference = "0c989d79c9052ebf52f12964131f4fc31ac20a18"
[[package]]
name = "nixops-aws"
@@ -643,7 +643,7 @@ test = ["pytest"]
[[package]]
name = "typeguard"
version = "2.13.0"
version = "2.13.2"
description = "Run-time type checker for Python"
category = "main"
optional = false
@@ -697,12 +697,12 @@ boto = [
{file = "boto-2.49.0.tar.gz", hash = "sha256:ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a"},
]
boto3 = [
{file = "boto3-1.20.8-py3-none-any.whl", hash = "sha256:c0ac23cc36dc484edd1edd28903b5712cb07507af1ae19b2e8d6db176416d9e2"},
{file = "boto3-1.20.8.tar.gz", hash = "sha256:81ebdcabc534a52e2b7a2bfcbe1a1d7f1e34f028f7fe1cb16ccd80e34cea867a"},
{file = "boto3-1.20.20-py3-none-any.whl", hash = "sha256:6c173ffaf0604e34d6865edf7a9a71e1b3e79bd441b8b465ca4b2d44f840806d"},
{file = "boto3-1.20.20.tar.gz", hash = "sha256:2c5377b6ab74eeccccd16f0f21537ede87b05c8322b0ccc852a68f36ea6c16c9"},
]
botocore = [
{file = "botocore-1.23.8-py3-none-any.whl", hash = "sha256:a0c7cfea155a0202ab197a016736dd4e6a26f9e416bdd9cdd2c9a3fb88ffa5a8"},
{file = "botocore-1.23.8.tar.gz", hash = "sha256:ae4ed9666199020a9e53c3d3efc0a7d417315cd2313b70cb013282afe70ac358"},
{file = "botocore-1.23.20-py3-none-any.whl", hash = "sha256:98275e47c941cada6507089ecfe91e420972209b1deeceaf55a89ea50d046347"},
{file = "botocore-1.23.20.tar.gz", hash = "sha256:22e1c7b4b2b8b11d7001ca5ef2b41bda9a8be46fb3cb994a2948462666ac5ef1"},
]
certifi = [
{file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"},
@@ -761,8 +761,8 @@ cffi = [
{file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"},
]
charset-normalizer = [
{file = "charset-normalizer-2.0.7.tar.gz", hash = "sha256:e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0"},
{file = "charset_normalizer-2.0.7-py3-none-any.whl", hash = "sha256:f7af805c321bfa1ce6714c51f254e0d5bb5e5834039bc17db7ebe3a4cec9492b"},
{file = "charset-normalizer-2.0.9.tar.gz", hash = "sha256:b0b883e8e874edfdece9c28f314e3dd5badf067342e42fb162203335ae61aa2c"},
{file = "charset_normalizer-2.0.9-py3-none-any.whl", hash = "sha256:1eecaa09422db5be9e29d7fc65664e6c33bd06f9ced7838578ba40d58bdf3721"},
]
colorama = [
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
@@ -775,6 +775,8 @@ cryptography = [
{file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34dae04a0dce5730d8eb7894eab617d8a70d0c97da76b905de9efb7128ad7085"},
{file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1eb7bb0df6f6f583dd8e054689def236255161ebbcf62b226454ab9ec663746b"},
{file = "cryptography-3.4.8-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:9965c46c674ba8cc572bc09a03f4c649292ee73e1b683adb1ce81e82e9a6a0fb"},
{file = "cryptography-3.4.8-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:3c4129fc3fdc0fa8e40861b5ac0c673315b3c902bbdc05fc176764815b43dd1d"},
{file = "cryptography-3.4.8-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:695104a9223a7239d155d7627ad912953b540929ef97ae0c34c7b8bf30857e89"},
{file = "cryptography-3.4.8-cp36-abi3-win32.whl", hash = "sha256:21ca464b3a4b8d8e86ba0ee5045e103a1fcfac3b39319727bc0fc58c09c6aff7"},
{file = "cryptography-3.4.8-cp36-abi3-win_amd64.whl", hash = "sha256:3520667fda779eb788ea00080124875be18f2d8f0848ec00733c0ec3bb8219fc"},
{file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d2a6e5ef66503da51d2110edf6c403dc6b494cc0082f85db12f54e9c5d4c3ec5"},
@@ -815,15 +817,31 @@ jsonpickle = [
{file = "jsonpickle-2.0.0.tar.gz", hash = "sha256:0be49cba80ea6f87a168aa8168d717d00c6ca07ba83df3cec32d3b30bfe6fb9a"},
]
libvirt-python = [
{file = "libvirt-python-7.9.0.tar.gz", hash = "sha256:8535cffa5fbf05185648f9f57a2f71899c3bc12c897d320351c53725a48e5359"},
{file = "libvirt-python-7.10.0.tar.gz", hash = "sha256:267774bbdf99d47515274542880499437dc94ae291771f5663c62020a62da975"},
]
markupsafe = [
{file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"},
{file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"},
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"},
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"},
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"},
{file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"},
{file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"},
{file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"},
{file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"},
{file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"},
@@ -832,14 +850,27 @@ markupsafe = [
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"},
{file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"},
{file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"},
{file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"},
{file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"},
{file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"},
{file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"},
{file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"},
{file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"},
@@ -849,6 +880,12 @@ markupsafe = [
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"},
{file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"},
{file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"},
{file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"},
{file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"},
{file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"},
{file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"},
@@ -945,8 +982,8 @@ sphinxcontrib-serializinghtml = [
{file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"},
]
typeguard = [
{file = "typeguard-2.13.0-py3-none-any.whl", hash = "sha256:0bc44d1ff865b522eda969627868b0e001c8329296ce50aededbea03febc79ee"},
{file = "typeguard-2.13.0.tar.gz", hash = "sha256:04e38f92eb59410c9375d3be23df65e0a7643f2e8bcbd421423d808d2f9e99df"},
{file = "typeguard-2.13.2-py3-none-any.whl", hash = "sha256:4f7da3d80dda5e42d6973f11f33da3542b8bf86edc12ba926b2dbad62adf3fcf"},
{file = "typeguard-2.13.2.tar.gz", hash = "sha256:7e50071590ab997509aa0977609eb5cf9d73d84c1f416cb4fab78b77a9d15326"},
]
typing-extensions = [
{file = "typing_extensions-3.10.0.2-py2-none-any.whl", hash = "sha256:d8226d10bc02a29bcc81df19a26e56a9647f8b0a6d4a83924139f4a8b01f17b7"},
@@ -0,0 +1,12 @@
{ callPackage
, buildGoModule
, nvidia_x11
, nvidiaGpuSupport
}:
callPackage ./genericModule.nix {
inherit buildGoModule nvidia_x11 nvidiaGpuSupport;
version = "1.2.3";
sha256 = "0qjj1pnq2yv4r8dv03m08ii4118drjnswf4n1r95dqh8j3bymv5i";
vendorSha256 = "0djh2184yg4b656wbhzxg1q1hsdnbrwsk79vc0426d0mqbzyy7dx";
}
@@ -44,6 +44,6 @@ buildGoPackage rec {
description = "A Distributed, Highly Available, Datacenter-Aware Scheduler";
platforms = platforms.unix;
license = licenses.mpl20;
maintainers = with maintainers; [ rushmorem pradeepchhetri endocrimes maxeaubrey ];
maintainers = with maintainers; [ rushmorem pradeepchhetri endocrimes maxeaubrey techknowlogick ];
};
}
@@ -94,28 +94,28 @@
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/aws",
"repo": "terraform-provider-aws",
"rev": "v3.70.0",
"sha256": "0133f1ngwa7x8w9zicfwmkj14rav9cvwk7qf7hdz0cfmyl4pj4x2",
"vendorSha256": "03k8xijzfawbdzc1wavw9k2z2zyffi1ysnqls412nzdyvxyl8xw4",
"version": "3.70.0"
"rev": "v3.71.0",
"sha256": "0jr9mk6gvimh8picpcc47pcan323k4rml438743ma53g8jhcvn2a",
"vendorSha256": "02ax2717xci8qia3k7q19yknazn67idb64hf5mwahfnx1fjmdc22",
"version": "3.71.0"
},
"azuread": {
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/azuread",
"repo": "terraform-provider-azuread",
"rev": "v2.13.0",
"sha256": "13337m20yxamdjpiw4kfi2ik4i5ivvr1fryygixpsj34lr21zxgk",
"rev": "v2.14.0",
"sha256": "0sjpwhywc165gkxd1ybkwi1aww4xivry82wh0mbh4bgs607mn8lg",
"vendorSha256": null,
"version": "2.13.0"
"version": "2.14.0"
},
"azurerm": {
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/azurerm",
"repo": "terraform-provider-azurerm",
"rev": "v2.90.0",
"sha256": "04bll0ygjgrqq18va97xi42p55fvlbgdc24m2i9amjhjbly5m7wn",
"rev": "v2.91.0",
"sha256": "0db23ch46wi5mjmwibp7n98y0j3cl06mq2pzmvw1scbzvgh0gcqp",
"vendorSha256": null,
"version": "2.90.0"
"version": "2.91.0"
},
"azurestack": {
"owner": "hashicorp",
@@ -157,10 +157,10 @@
"owner": "checkly",
"provider-source-address": "registry.terraform.io/checkly/checkly",
"repo": "terraform-provider-checkly",
"rev": "v1.3.0",
"sha256": "11vwl983lh983c1x3f7zc8b7i9f4pymk4j1ikf04vz2kgxry49yr",
"vendorSha256": "14wp5sa2fm3hlmyacfy4aacx2cz5bxf24r4fjwd6f2hskzjz6825",
"version": "1.3.0"
"rev": "v1.4.0-rc1",
"sha256": "125ng4yzsmnbzgvwn3d2070cxnp3jvzpp8m9sc95q9x7dprbxzvl",
"vendorSha256": "1dkij2anw0cy8h2pv8h9a0cr0r9skpcc0j26bggspigk8qa4nzsx",
"version": "1.4.0-rc1"
},
"checkpoint": {
"deleteVendor": true,
@@ -187,7 +187,7 @@
"repo": "terraform-provider-cloudflare",
"rev": "v3.6.0",
"sha256": "1adpzk9vjllr18dq8kggxfabm3ax59m55ls98mkqh8lmgq96bh7d",
"vendorSha256": "0qby6fa1x5fapgcy5i35dwwlkb2ggws9sxcssshzssy0fzpb3k87",
"vendorSha256": "1rdgjb1gfz5fs6s3c15nj92rm8ifb23n25wpxl16mz4aifkjgqam",
"version": "3.6.0"
},
"cloudfoundry": {
@@ -196,7 +196,7 @@
"repo": "terraform-provider-cloudfoundry",
"rev": "v0.15.0",
"sha256": "0kg9aivxlbkqgrwv0j02hfsaky5q4f0bmqihn589dsdk7jds66i7",
"vendorSha256": "19jnaazhdqagfx5wkpvrf0amf7d22kg6hzk0nsg888d0l4x93hna",
"vendorSha256": "19h526ag7p2jkdp0610slbpsz8q3njvj9d4xmsfdsv3r8pz7xzls",
"version": "0.15.0"
},
"cloudinit": {
@@ -241,7 +241,7 @@
"repo": "terraform-provider-ct",
"rev": "v0.9.1",
"sha256": "1d8q6ffh64v46r80vmbpsgmjw1vg6y26hpq3nz2h5mvqm0fqya9r",
"vendorSha256": "sha256-e/r59hnVRxrSqmQUwYZiN+YCCz+LbxUHGV2MFGcmJn4=",
"vendorSha256": "0zi64rki932x343iavwb7w5h5ripca3c2534mb91liym37vgkykv",
"version": "0.9.1"
},
"datadog": {
@@ -286,7 +286,7 @@
"repo": "terraform-provider-dns",
"rev": "v3.2.1",
"sha256": "1zynfwm7hl7pnldjr2nxj0a06j209r62g8zpkasj6zdjscy62rc8",
"vendorSha256": "sha256-D/CD3O/EHIa2GTwmIAZM3e3bFSLMXy4KhAGWeD4i7kI=",
"vendorSha256": "0hpf48z7i5h1hh52wpyc48axpvfx9h3209iw36v8c764xzf87w0g",
"version": "3.2.1"
},
"dnsimple": {
@@ -320,10 +320,10 @@
"owner": "phillbaker",
"provider-source-address": "registry.terraform.io/phillbaker/elasticsearch",
"repo": "terraform-provider-elasticsearch",
"rev": "v2.0.0-beta.2",
"sha256": "1pr0vaag0b0i83381pcpxnq5bpjfj80bm6m483rivbaqbxr0dakw",
"rev": "v2.0.0-beta.3",
"sha256": "1a3jrj93yr22srs4rwk4j1kydhpmkic0aqxrklg7v9ri7rdwx36s",
"vendorSha256": "1w92k895ikrqm9n1hf36wlh9nq278vifl3r14v0rxa8g9awizfdr",
"version": "2.0.0-beta.2"
"version": "2.0.0-beta.3"
},
"exoscale": {
"owner": "exoscale",
@@ -338,10 +338,10 @@
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/external",
"repo": "terraform-provider-external",
"rev": "v2.1.1",
"sha256": "1f92cg2fjwy2n5380fx9j6j2bnsnkcy18kq0bjbkwkh8kmshqjn8",
"vendorSha256": "031knr4axrcwisbhzs39faykzc1jgm9hx4rhqk46wim950gifl7g",
"version": "2.1.1"
"rev": "v2.2.0",
"sha256": "0s7zxz9dni1p93di1ddx595d0mmizq7zrvkbbx1m4c5f208m262x",
"vendorSha256": "1f5gh110rylb1cw4dlwdzsj8sb0myj7xcj7ix966l5qa9x05p9pn",
"version": "2.2.0"
},
"fastly": {
"owner": "fastly",
@@ -374,10 +374,10 @@
"owner": "integrations",
"provider-source-address": "registry.terraform.io/integrations/github",
"repo": "terraform-provider-github",
"rev": "v4.19.0",
"sha256": "17xpkcrklzbim91rxw4g4n8izk9qiw9q0vfivr467i32dv5mzc2d",
"rev": "v4.19.1",
"sha256": "0dixdw0215ksa76871mac60k7y0vm111f3jay9njsa1ljz8rwhnd",
"vendorSha256": null,
"version": "4.19.0"
"version": "4.19.1"
},
"gitlab": {
"owner": "gitlabhq",
@@ -385,7 +385,7 @@
"repo": "terraform-provider-gitlab",
"rev": "v3.8.0",
"sha256": "0ha6lp0z3lqdk05fhggdgdz50dm7z6ksn648khp44n7in0c0c5pj",
"vendorSha256": "sha256-tkPenz+gkghIGMYF9iFj1TXUV3NGm/zYGQ3nP2hWdZA=",
"vendorSha256": "143marl3zrqd37cgr6s6fdbx8dfmcchzc1f63140i4m07ygxwhxn",
"version": "3.8.0"
},
"google": {
@@ -395,7 +395,7 @@
"repo": "terraform-provider-google",
"rev": "v4.5.0",
"sha256": "173aqwrzqdb3y57wiq1dbgb74ksr063qqq1k178n4wrab4s1h3px",
"vendorSha256": "0f18fh0qi1v1hkq3j8nrc8x2rah7vk6njjgdakxr1g1xxv8f0nhx",
"vendorSha256": "17rlq86zl83cav8pinr8am3wkmva4slab2izmxddhiw3na60a4la",
"version": "4.5.0"
},
"google-beta": {
@@ -405,7 +405,7 @@
"repo": "terraform-provider-google-beta",
"rev": "v4.5.0",
"sha256": "17z2jy8b9gk0id8q0318a6k60fhcqps0p36s7d7kkqmr44shgzs4",
"vendorSha256": "0f18fh0qi1v1hkq3j8nrc8x2rah7vk6njjgdakxr1g1xxv8f0nhx",
"vendorSha256": "17rlq86zl83cav8pinr8am3wkmva4slab2izmxddhiw3na60a4la",
"version": "4.5.0"
},
"grafana": {
@@ -432,7 +432,7 @@
"repo": "terraform-provider-hcloud",
"rev": "v1.32.2",
"sha256": "0rr65bxd0w5r0zqgj975rzxw7j3wrav4dw9gl3ispfhkb9v1302f",
"vendorSha256": "0g8cbkg5kcddd1x3p6d8mb6mqwsayqby0mrrifkw5icf7rlaa0sl",
"vendorSha256": "0rc4pznb16fm5dhi54fwka44zvngy3hp0cfwlrh84ifmzqgx0mlv",
"version": "1.32.2"
},
"helm": {
@@ -520,19 +520,19 @@
"owner": "Mongey",
"provider-source-address": "registry.terraform.io/Mongey/kafka",
"repo": "terraform-provider-kafka",
"rev": "v0.4.1",
"sha256": "0k1vrd2h7d01ypyhs2q1x83nnmiivglwsbrmwrj4k750x2wniygq",
"vendorSha256": "06n2xpic0lmb81rbkx39avz6zgnspmi6xv69kfzdvx7q3zpf7w4s",
"version": "0.4.1"
"rev": "v0.4.2",
"sha256": "1qgcjcdkhxh2r2c12zd3b5cjn8zf4rdmw91a9h4izy52fsmc2x3q",
"vendorSha256": "1y6q5q84a6hin1h86gbm7c5glmfjc4im0w6cjaznmj9gmrkjh8qg",
"version": "0.4.2"
},
"kafka-connect": {
"owner": "Mongey",
"provider-source-address": "registry.terraform.io/Mongey/kafka-connect",
"repo": "terraform-provider-kafka-connect",
"rev": "v0.2.3",
"sha256": "0fn03l58lkrlinvnxld2ba7z1gx95vxklbhh2z7930pih0vhr0sr",
"vendorSha256": "17fwqhxh22szdys97dxh069z6s8xr3y9i3pi5ckdcr462j1dr95w",
"version": "0.2.3"
"rev": "v0.2.4",
"sha256": "17qslh2axvwiqmqzaxdl75zg3ww6hcpq7k2bfx026ca7bifqx13f",
"vendorSha256": "0acl8ijai4awgxhps17bwnwd9aks0qbjvv4ad6pj8vbf496dc411",
"version": "0.2.4"
},
"keycloak": {
"owner": "mrparkers",
@@ -574,10 +574,10 @@
"owner": "launchdarkly",
"provider-source-address": "registry.terraform.io/launchdarkly/launchdarkly",
"repo": "terraform-provider-launchdarkly",
"rev": "v2.2.0",
"sha256": "06lhcimk368ll73vhs09d6lsmphbm2mvlxhiajc190db492nnjnl",
"vendorSha256": "05gx87dwh49zc5mlqnzcqn46pjf9q4wsv9l15pjr3spczzi11cnz",
"version": "2.2.0"
"rev": "v2.3.0",
"sha256": "1yvxzhwx5nm53gjaqxzsfkc8khgyi2va1a9kjwmkhzqghzl4w5nw",
"vendorSha256": "0pmnhlfmi9i6xblz62ysnw02p4i8iz6naqpna99gbgyllnj5asdg",
"version": "2.3.0"
},
"libvirt": {
"owner": "dmacvicar",
@@ -592,10 +592,10 @@
"owner": "linode",
"provider-source-address": "registry.terraform.io/linode/linode",
"repo": "terraform-provider-linode",
"rev": "v1.25.0",
"sha256": "11ybl1ny90y7w999hwjnwnmmdkqak5q8gbg1qqimhjvw69j0dr81",
"vendorSha256": "01146ds79clf2hn8ph4hx0g8chwhfawdy5cpslnppsm1w8v5arrm",
"version": "1.25.0"
"rev": "v1.25.1",
"sha256": "1sy3hg9scfidrn3z9ip6ryxghv1s9zlhwccl8k2s2b05xkx43j23",
"vendorSha256": "0c882yafydhdhnp5awb8llzbmiljfdbamqlx740347ywpliy0ga2",
"version": "1.25.1"
},
"linuxbox": {
"owner": "numtide",
@@ -667,7 +667,7 @@
"repo": "terraform-provider-minio",
"rev": "v1.2.0",
"sha256": "07f7kflmy0n8vbcxs2f62iqwm8fw8r97vgwwp38hmz3f1bix42qn",
"vendorSha256": "sha256-fBn0AfgdiFQ065SwqwMQeCuvJdkscc5QYsMMc/+p4V0=",
"vendorSha256": "0pg1m7zp6363c98cww9cv4jsyavq201spc4lxcs5920xz00z86bw",
"version": "1.2.0"
},
"mongodbatlas": {
@@ -720,10 +720,10 @@
"owner": "ns1-terraform",
"provider-source-address": "registry.terraform.io/ns1-terraform/ns1",
"repo": "terraform-provider-ns1",
"rev": "v1.12.1",
"sha256": "0l72z92k71z48ls1dwy6apwhgi9xbs4czmryc0k65krh4hgjhhwk",
"rev": "v1.12.2",
"sha256": "01cmfmg429vp7j8xb9fvfvwg9l3pwjrpv9a4jbdbhh8gaarpw8db",
"vendorSha256": "0nk8xs24hwsarr22h5m1qcpixg7ijdkah5686wkp51y8cp69v25r",
"version": "1.12.1"
"version": "1.12.2"
},
"nsxt": {
"owner": "vmware",
@@ -757,10 +757,10 @@
"owner": "terraform-providers",
"provider-source-address": "registry.terraform.io/hashicorp/oci",
"repo": "terraform-provider-oci",
"rev": "v4.57.0",
"sha256": "123k24pa5232j9yxhgn6ng36s46y3iv4xsqay9ry53g4pw6zcx9y",
"rev": "v4.58.0",
"sha256": "0cxzy9sj4n7yz7zbqhpkr92h7gqqfx7qxpr0a1jgh9a087j3752c",
"vendorSha256": null,
"version": "4.57.0"
"version": "4.58.0"
},
"okta": {
"owner": "okta",
@@ -768,7 +768,7 @@
"repo": "terraform-provider-okta",
"rev": "v3.20.2",
"sha256": "0qlm99m4dljnczsypn4gmw9n4vvxkfazi21hvkbkgy2v3wmhsms9",
"vendorSha256": "1dadvvkspb654pmxzb8vlp88vpnh2ssgfsvlcaiikyjqh2z7wbq4",
"vendorSha256": "0fyxm6wff5pz5g3rjnia23npar9qbwcv01pa3rsskxkl8jc3v13j",
"version": "3.20.2"
},
"oktaasa": {
@@ -805,7 +805,7 @@
"repo": "terraform-provider-openstack",
"rev": "v1.46.0",
"sha256": "1kkqfr0i33kw0qj3dp5knxm14p1ndy72n4chd36dhkydp4rm688f",
"vendorSha256": "1f77z6p8423gh8x7zbhn3pkd8a1nxd5pabc1043d66pbw9rxchax",
"vendorSha256": "10vcxqh77wqxwzsrq1y0rlyl7wazl5glmsqbz5wfvrq5b9q1r75x",
"version": "1.46.0"
},
"opentelekomcloud": {
@@ -821,10 +821,10 @@
"owner": "opsgenie",
"provider-source-address": "registry.terraform.io/opsgenie/opsgenie",
"repo": "terraform-provider-opsgenie",
"rev": "v0.6.7",
"sha256": "1dfp7s8zvnifnbka7azfxss42cj11s00mp92fj10bji4hkk0bvjq",
"rev": "v0.6.8",
"sha256": "10lq9gfmpwc56m6rihxjc5hkglmfh6sqsa0fwsypw6709488a7yq",
"vendorSha256": null,
"version": "0.6.7"
"version": "0.6.8"
},
"oraclepaas": {
"owner": "terraform-providers",
@@ -857,10 +857,10 @@
"owner": "PaloAltoNetworks",
"provider-source-address": "registry.terraform.io/PaloAltoNetworks/panos",
"repo": "terraform-provider-panos",
"rev": "v1.9.0",
"sha256": "0v2vydrljnaq47pkz6rfrhl7zsqa8lgjclpa6jy7nyc69c02d90c",
"rev": "v1.9.1",
"sha256": "05jsap80dcgmncxa8xbx1hnrbpi9bxjz2k9jnfnws1pmbjxl94hf",
"vendorSha256": null,
"version": "1.9.0"
"version": "1.9.1"
},
"pass": {
"owner": "camptocamp",
@@ -895,17 +895,17 @@
"repo": "terraform-provider-rabbitmq",
"rev": "v1.6.0",
"sha256": "0src4d032z3mpv10fgya2izqm8qfdgr87rfhpnld1r90yvxqgnl2",
"vendorSha256": "sha256-wbnjAM2PYocAtRuY4fjLPGFPJfzsKih6Q0YCvFyMulQ=",
"vendorSha256": "0m5siifbq0j68dx2hapczhjlyq9wrgwf360vnl08fqlgrl0f7ff1",
"version": "1.6.0"
},
"rancher2": {
"owner": "rancher",
"provider-source-address": "registry.terraform.io/rancher/rancher2",
"repo": "terraform-provider-rancher2",
"rev": "v1.22.1",
"sha256": "0sx24riks78ywxsrhvc18w3wppz676zv1bjmzvm7r4q94miplxgl",
"vendorSha256": "0qdd1sl9r6rpp9jmxy3r5a064f8agjmlkrn241p4sd7j5cncxdk3",
"version": "1.22.1"
"rev": "v1.22.2",
"sha256": "0k5ljyb55nw993vc3whhnyjgwy97qr1pp5mbi9g40dlm84myi9bm",
"vendorSha256": "1x7i69cyss5mkz82ii5pqvjprgvqyd41admfdm7hpci626i9dhsr",
"version": "1.22.2"
},
"random": {
"owner": "hashicorp",
@@ -931,7 +931,7 @@
"repo": "terraform-provider-scaleway",
"rev": "v2.2.0",
"sha256": "1l9cmdz46rhvbnlyxi3hyk8rszf44xphpz22w56mrbi91z1yr8c1",
"vendorSha256": "0f2nx0x6gpxw440s81mn7plg63zd0g4crnlbalmj6i2rjkpj48v5",
"vendorSha256": "0zbz0y3fg94c9794jgfcqngh1xcyqcdhcgmy74pdscrvydjhd5z8",
"version": "2.2.0"
},
"secret": {
@@ -958,7 +958,7 @@
"repo": "terraform-provider-sentry",
"rev": "v0.7.0",
"sha256": "09rxgq4m28nhwg6y51m5sq3d12lx7r1q3k76zrd5gpbxagqhvhkr",
"vendorSha256": "1cpwa8a3p6mixdgvbgim1pnhvqh72sask950w2bxsgrpgdbnys5m",
"vendorSha256": "1wh2nf5q69j1p568c0q5yhlkd8ij3r8jg2769qy51wsj3bbv0wcj",
"version": "0.7.0"
},
"shell": {
@@ -967,7 +967,7 @@
"repo": "terraform-provider-shell",
"rev": "v1.7.10",
"sha256": "15pw8i1j47ppwrrh1gpfdkba54zab50ziqfqsc17pmv2gisq8d9d",
"vendorSha256": "0d76xpzfba4xxxafgw0k2dkm22xpzgsa2bf53jwrgwyfvjgvj41c",
"vendorSha256": "1vgs7nvqa25c0qxhj7jpjfphshxsqhxvxnr9ny7x4ghzg9ab90rh",
"version": "1.7.10"
},
"signalfx": {
@@ -976,7 +976,7 @@
"repo": "terraform-provider-signalfx",
"rev": "v6.7.10",
"sha256": "113q9wwvz0lxn1l948g5mnwbpd76q8j2pm9q90nbkg1yvwsidsqi",
"vendorSha256": "124vw40rpnsmna6fkwb9qp8z31hlxn4dx7p7vgng32l1w7ddwmcp",
"vendorSha256": "1dd42a9kqsrvvllign6g9kzb0jvav71x7kg9n2w9rs9wvmmang4w",
"version": "6.7.10"
},
"skytap": {
@@ -1001,10 +1001,10 @@
"owner": "spotinst",
"provider-source-address": "registry.terraform.io/spotinst/spotinst",
"repo": "terraform-provider-spotinst",
"rev": "v1.64.1",
"sha256": "0a0v1ydickmnn5gsv5lr97yv4lvhxf3q9mhhkl38ksijzd2radlz",
"rev": "v1.64.2",
"sha256": "0h47ik93lhb9mjg3ai9n76ya918h1mk3fyp70yr26rwc3rihvjm6",
"vendorSha256": "1lv305kamb3xnw3a2q45ndn7a88ifnh8j8ngv7awc41028j539w4",
"version": "1.64.1"
"version": "1.64.2"
},
"stackpath": {
"owner": "stackpath",
@@ -1046,10 +1046,10 @@
"owner": "tencentcloudstack",
"provider-source-address": "registry.terraform.io/tencentcloudstack/tencentcloud",
"repo": "terraform-provider-tencentcloud",
"rev": "v1.60.25",
"sha256": "0ag0h9cxjzmzz3iqh6c9czmfqd6zxg82n13nahlcg7qg1b0c2rvv",
"rev": "v1.60.26",
"sha256": "1diwiyfswmgqm1iizj228s2ysrnx4z3lqlq82a7gp0z9p8rzd0vs",
"vendorSha256": null,
"version": "1.60.25"
"version": "1.60.26"
},
"tfe": {
"owner": "hashicorp",
@@ -1057,7 +1057,7 @@
"repo": "terraform-provider-tfe",
"rev": "v0.27.0",
"sha256": "00lra2d8dzczlmx74cblk7hglj2dvlkkgv30ndb85fbmaq2jqw0n",
"vendorSha256": "1g77ghz4928kfpidqd92cy6xkrqmz2y97x7g7lb55mw3mxg2bsx5",
"vendorSha256": "0p2kdf7l6k75c9ngfysj70fqf3my8fsm41gi8d1j1djfsxgzfpxs",
"version": "0.27.0"
},
"thunder": {
@@ -1075,7 +1075,7 @@
"repo": "terraform-provider-time",
"rev": "v0.7.2",
"sha256": "02b7l65civmphhdax05ajvbfm2ilqf421di1p3vj1zysz194wgl2",
"vendorSha256": "sha256-oBgHd0KTAdlnAZZZdT1FOzcfC0afdIKoDEIwx/rMxRk=",
"vendorSha256": "06f5rkxcfc221jl84x4z8q5iydrv8lypancn05kxj0ck89vhf650",
"version": "0.7.2"
},
"tls": {
@@ -1128,10 +1128,10 @@
"owner": "vmware",
"provider-source-address": "registry.terraform.io/vmware/vcd",
"repo": "terraform-provider-vcd",
"rev": "v3.4.0",
"sha256": "0lvpcw4d70888c0dssvpzbx8n67a52yb66kanqzp4is0clw4943g",
"vendorSha256": "19lwrr28fknv098s82cvczdb7xrcblsrh0jmzpn69gym5axcc2v9",
"version": "3.4.0"
"rev": "v3.5.0",
"sha256": "1sdcjizg0gip55042p0599wvjicibyx9kiymxq45af14yhnwqyv5",
"vendorSha256": "0bzp6807l4hspk1c1pmgnzk0axk0nir3v0lqmw9xvkij4c5rnz9s",
"version": "3.5.0"
},
"venafi": {
"deleteVendor": true,
@@ -184,7 +184,7 @@ rec {
terraform_0_14 = mkTerraform {
version = "0.14.11";
sha256 = "1yi1jj3n61g1kn8klw6l78shd23q79llb7qqwigqrx3ki2mp279j";
vendorSha256 = "1d93aqkjdrvabkvix6h1qaxpjzv7w1wa7xa44czdnjs2lapx4smm";
vendorSha256 = "sha256-tWrSr6JCS9s+I0T1o3jgZ395u8IBmh73XGrnJidWI7U=";
patches = [ ./provider-path.patch ];
passthru = { inherit plugins; };
};
@@ -192,7 +192,7 @@ rec {
terraform_0_15 = mkTerraform {
version = "0.15.5";
sha256 = "18f4a6l24s3cym7gk40agxikd90i56q84wziskw1spy9rgv2yx6d";
vendorSha256 = "12hrpxay6k3kz89ihyhl91c4lw4wp821ppa245w9977fq09fhnx0";
vendorSha256 = "sha256-oFvoEsDunJR4IULdGwS6nHBKWEgUehgT+nNM41W/GYo=";
patches = [ ./provider-path-0_15.patch ];
passthru = { inherit plugins; };
};
@@ -200,7 +200,7 @@ rec {
terraform_1 = mkTerraform {
version = "1.1.3";
sha256 = "sha256-dvAuzVmwnM2PQcILzw3xNacBwuRY7cZEU3nv4/DzOKE=";
vendorSha256 = "sha256-inPNvNUcil9X0VQ/pVgZdnnmn9UCfEz7qXiuKDj8RYM=";
vendorSha256 = "sha256-Rk2hHtJfaS553MJIea6n51irMas3qcBrWAD+adzTi1Y=";
patches = [ ./provider-path-0_15.patch ];
passthru = { inherit plugins; };
};
@@ -2,14 +2,14 @@
python3Packages.buildPythonApplication rec {
pname = "flexget";
version = "3.2.7";
version = "3.2.8";
# Fetch from GitHub in order to use `requirements.in`
src = fetchFromGitHub {
owner = "flexget";
repo = "flexget";
rev = "v${version}";
sha256 = "12nj1jcxbkpc0x59rg59fsryignpppsx0wiwncdv6fzr58pdhd3v";
sha256 = "0hr19f678pyd7mnzclfv7imh9s2m01k92dza1csyfacclvri8m07";
};
postPatch = ''
@@ -1,7 +1,7 @@
{ callPackage, libsForQt5 }:
let
stableVersion = "2.2.18";
stableVersion = "2.2.29";
previewVersion = stableVersion;
addVersion = args:
let version = if args.stable then stableVersion else previewVersion;
@@ -18,16 +18,16 @@ let
});
};
commonOverrides = [
(mkOverride "psutil" "5.6.7"
"1an5llivfkwpbcfaapbx78p8sfnvzyfypf60wfxihib1mjr8xbgz")
(mkOverride "psutil" "5.8.0"
"sha256-DJzLmat2Al8vC77PNB1GVunBNR24zIoDzNYuMYq0tcY=")
(mkOverride "jsonschema" "3.2.0"
"0ykr61yiiizgvm3bzipa3l73rvj49wmrybbfwhvpgk3pscl5pa68")
];
};
mkGui = args: libsForQt5.callPackage (import ./gui.nix (addVersion args // extraArgs)) { };
mkServer = args: callPackage (import ./server.nix (addVersion args // extraArgs)) { };
guiSrcHash = "118z6asl6hsv0777rld4plnrwzkbkh3gb9lg9i6bqrjs93p028fw";
serverSrcHash = "0gd37zpvibhlvqqpflpwlrgg8g9rpbxwi9w9fsym00mfwf7sdd3b";
guiSrcHash = "04yqh0kq5pkmadcxf090ilh9sqqxajcg65nf7ai1iikxi3x7z3r8";
serverSrcHash = "0p6q421rldmyqi0padssgrssf4d9mb5ifiqjm5y8vfhwfl5a2cqk";
in {
guiStable = mkGui {
stable = true;
@@ -32,6 +32,10 @@ in python.pkgs.buildPythonPackage rec {
postFixup = ''
wrapQtApp "$out/bin/gns3"
'';
postPatch = ''
substituteInPlace requirements.txt \
--replace "sentry-sdk==1.3.1" "sentry-sdk>=1.3.1" \
'';
meta = with lib; {
description = "Graphical Network Simulator 3 GUI (${branch} release)";
+6 -4
View File
@@ -8,12 +8,12 @@ let
(self: super: {
aiofiles = super.aiofiles.overridePythonAttrs (oldAttrs: rec {
pname = "aiofiles";
version = "0.5.0";
version = "0.7.0";
src = fetchFromGitHub {
owner = "Tinche";
repo = pname;
rev = "v${version}";
sha256 = "17bsg2x5r0q6jy74hajnbp717pvbf752w0wgih6pbb4hdvfg5lcf";
sha256 = "sha256-njQ7eRYJO+dUrwO5pZwKHXn9nVSGYcEhwhs3x5BMc28=";
};
doCheck = false;
});
@@ -36,8 +36,10 @@ in python.pkgs.buildPythonPackage {
postPatch = ''
substituteInPlace requirements.txt \
--replace "aiohttp==3.6.2" "aiohttp>=3.6.2" \
--replace "py-cpuinfo==7.0.0" "py-cpuinfo>=8.0.0"
--replace "aiohttp==3.7.4" "aiohttp>=3.7.4" \
--replace "Jinja2==3.0.1" "Jinja2>=3.0.1" \
--replace "sentry-sdk==1.3.1" "sentry-sdk>=1.3.1" \
--replace "async-timeout==3.0.1" "async-timeout>=3.0.1" \
'';
propagatedBuildInputs = with python.pkgs; [
@@ -11,11 +11,11 @@
stdenv.mkDerivation rec {
pname = "notmuch";
version = "0.34.1";
version = "0.34.2";
src = fetchurl {
url = "https://notmuchmail.org/releases/notmuch-${version}.tar.xz";
sha256 = "05nq64gp8vnrwrl22d60v7ixgdhm9339ajhcdfkq0ll1qiycyyj5";
sha256 = "wfLO7kf2iXESItcgWvKj/npKnYwy5OCyStZviN9qR9M=";
};
nativeBuildInputs = [
@@ -13,27 +13,13 @@
pythonPackages.buildPythonPackage rec {
pname = "deluge";
version = "2.0.3";
version = "2.0.5";
src = fetchurl {
url = "http://download.deluge-torrent.org/source/2.0/${pname}-${version}.tar.xz";
sha256 = "14d8kn2pvr1qv8mwqrxmj85jycr73vwfqz12hzag0ararbkfhyky";
sha256 = "sha256-xL0Eq/0hG2Uhi+A/PEbSb0QCSITeEOAYWfuFb91vJdg=";
};
patches = [
(fetchpatch {
url = "https://github.com/deluge-torrent/deluge/commit/d6c96d629183e8bab2167ef56457f994017e7c85.patch";
sha256 = "sha256-slGMt2bgp36pjDztJUXFeZNbzdJsus0s9ARRD6IpNUw=";
name = "fix_ngettext_warning.patch";
})
(fetchpatch {
url = "https://github.com/deluge-torrent/deluge/commit/351664ec071daa04161577c6a1c949ed0f2c3206.patch";
sha256 = "sha256-ry1LFgMe9lys66xAvATcPqIa3rzBPWVnsf8FL1dXkHo=";
name = "fix_logging_on_py38.patch";
})
];
propagatedBuildInputs = with pythonPackages; [
twisted
Mako
@@ -12,13 +12,13 @@ assert trackerSearch -> (python3 != null);
with lib;
mkDerivation rec {
pname = "qbittorrent";
version = "4.3.9";
version = "4.4.0";
src = fetchFromGitHub {
owner = "qbittorrent";
repo = "qBittorrent";
rev = "release-${version}";
sha256 = "sha256-pFHeozx72qVjA3cmW6GK058IIAOWmyNm1UQVCQ1v5EU=";
sha256 = "sha256-xxQ6NGRSwRP+7kTxUsDB00VItHRHuaFopEroETtnGSs=";
};
enableParallelBuilding = true;
@@ -14,13 +14,13 @@
stdenv.mkDerivation rec {
pname = "onedrive";
version = "2.4.14";
version = "2.4.15";
src = fetchFromGitHub {
owner = "abraunegg";
repo = pname;
rev = "v${version}";
sha256 = "sha256-zh9CSvuwZj9B8XPvV23xS0MqnsR+vhfdD8V+k6CjCxQ=";
sha256 = "sha256-nYko7htg16Sp/Fs+KuPflrpHn8WShM0OKozhr9BFH5U=";
};
nativeBuildInputs = [ autoreconfHook ldc installShellFiles pkg-config ];
@@ -0,0 +1,76 @@
{ stdenv,
lib,
fetchzip,
autoPatchelfHook,
makeWrapper,
copyDesktopItems,
makeDesktopItem,
gtk3,
openssl,
xdg-user-dirs
}:
stdenv.mkDerivation rec {
pname = "appflowy";
version = "0.0.2";
src = fetchzip {
url = "https://github.com/AppFlowy-IO/appflowy/releases/download/${version}/AppFlowy-linux-x86.tar.gz";
sha256 = "1fvv4mlgf0vqcq5zh0zl2xr44saz0sm47r8whcywwrmcm0l66iv6";
};
nativeBuildInputs = [
autoPatchelfHook
makeWrapper
copyDesktopItems
];
buildInputs = [
gtk3
openssl
];
dontBuild = true;
dontConfigure = true;
installPhase = ''
runHook preInstall
mkdir -p $out/opt/
mkdir -p $out/bin/
# Copy archive contents to the outpout directory
cp -r ./* $out/opt/
runHook postInstall
'';
preFixup = let
libPath = lib.makeLibraryPath [
xdg-user-dirs
];
in ''
# Add missing libraries to appflowy using the ones it comes with
makeWrapper $out/opt/app_flowy $out/bin/appflowy \
--set LD_LIBRARY_PATH "$out/opt/lib/:${libPath}"
'';
desktopItems = [
(makeDesktopItem {
name = pname;
desktopName = "AppFlowy";
comment = meta.description;
exec = "appflowy";
categories = "Office;";
})
];
meta = with lib; {
description = "An open-source alternative to Notion";
homepage = "https://www.appflowy.io/";
license = licenses.agpl3Only;
changelog = "https://github.com/AppFlowy-IO/appflowy/releases/tag/${version}";
maintainers = with maintainers; [ darkonion0 ];
platforms = [ "x86_64-linux" ];
};
}
@@ -1,4 +1,4 @@
{ lib, stdenv, fetchzip, fetchurl, xorg, gnused
{ lib, stdenv, fetchzip, fetchurl, xorg
, withBigAtlas ? true
, withEphemeris ? true
, withMoonsEphemeris ? true
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
};
patchPhase = ''
${gnused}/bin/sed -i "s:~/astrolog:$out/astrolog:g" astrolog.h
sed -i "s:~/astrolog:$out/astrolog:g" astrolog.h
substituteInPlace Makefile --replace cc "$CC" --replace strip "$STRIP"
'';
buildInputs = [ xorg.libX11 ];
@@ -0,0 +1,110 @@
{ stdenv
, lib
, fetchFromGitHub
, fetchpatch
, cmake
, llvmPackages_9
, clang_9
, python3
, zlib
, z3
, stp
, cryptominisat
, gperftools
, sqlite
, gtest
, lit
, debug ? false
}:
let
kleePython = python3.withPackages (ps: with ps; [ tabulate ]);
in
stdenv.mkDerivation rec {
pname = "klee";
version = "2.2";
src = fetchFromGitHub {
owner = "klee";
repo = "klee";
rev = "v${version}";
sha256 = "Ar3BKfADjJvvP0dI9+x/l3RDs8ncx4jmO7ol4MgOr4M=";
};
buildInputs = [
llvmPackages_9.llvm clang_9 z3 stp cryptominisat
gperftools sqlite
];
nativeBuildInputs = [
cmake
];
checkInputs = [
gtest
# Should appear BEFORE lit, since lit passes through python rather
# than the python environment we make.
kleePython
(lit.override { python3 = kleePython; })
];
cmakeFlags = let
buildType = if debug then "Debug" else "Release";
in
[
"-DCMAKE_BUILD_TYPE=${buildType}"
"-DKLEE_RUNTIME_BUILD_TYPE=${buildType}"
"-DENABLE_POSIX_RUNTIME=ON"
"-DENABLE_UNIT_TESTS=ON"
"-DENABLE_SYSTEM_TESTS=ON"
"-DGTEST_SRC_DIR=${gtest.src}"
"-DGTEST_INCLUDE_DIR=${gtest.src}/googletest/include"
"-Wno-dev"
];
# Silence various warnings during the compilation of fortified bitcode.
NIX_CFLAGS_COMPILE = ["-Wno-macro-redefined"];
prePatch = ''
patchShebangs .
'';
/* This patch is currently necessary for the unit test suite to run correctly.
* See https://www.mail-archive.com/klee-dev@imperial.ac.uk/msg03136.html
* and https://github.com/klee/klee/pull/1458 for more information.
*/
patches = map fetchpatch [
{
name = "fix-gtest";
sha256 = "F+/6videwJZz4sDF9lnV4B8lMx6W11KFJ0Q8t1qUDf4=";
url = "https://github.com/klee/klee/pull/1458.patch";
}
];
doCheck = true;
checkTarget = "check";
meta = with lib; {
description = "A symbolic virtual machine built on top of LLVM";
longDescription = ''
KLEE is a symbolic virtual machine built on top of the LLVM compiler
infrastructure. Currently, there are two primary components:
1. The core symbolic virtual machine engine; this is responsible for
executing LLVM bitcode modules with support for symbolic values. This
is comprised of the code in lib/.
2. A POSIX/Linux emulation layer oriented towards supporting uClibc, with
additional support for making parts of the operating system environment
symbolic.
Additionally, there is a simple library for replaying computed inputs on
native code (for closed programs). There is also a more complicated
infrastructure for replaying the inputs generated for the POSIX/Linux
emulation layer, which handles running native programs in an environment
that matches a computed test input, including setting up files, pipes,
environment variables, and passing command line arguments.
'';
homepage = "https://klee.github.io/";
license = licenses.ncsa;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ numinit ];
};
}
@@ -1,24 +1,44 @@
{ lib, fetchPypi, python3Packages }:
{ lib
, fetchFromGitHub
, python3
}:
python3Packages.buildPythonPackage rec {
python3.pkgs.buildPythonApplication rec {
pname = "nextinspace";
version = "1.0.6";
version = "2.0.3";
format = "pyproject";
src = fetchPypi {
inherit pname version;
sha256 = "1h3dksxyy5gq071fa7i2p73s50918y1bkk38hgfwr4226c3wipvg";
src = fetchFromGitHub {
owner = "not-stirred";
repo = pname;
rev = "v${version}";
hash = "sha256-Macx2pQglB95Bhc939TFVCHd1qvqJsco91EXKCIQLgg=";
};
pythonPath = with python3Packages; [
nativeBuildInputs = with python3.pkgs; [
poetry-core
];
pythonPath = with python3.pkgs; [
requests
tzlocal
colorama
];
checkInputs = with python3.pkgs; [
pytest-lazy-fixture
pytestCheckHook
requests-mock
];
pythonImportsCheck = [
"nextinspace"
];
meta = with lib; {
description = "Print upcoming space-related events in your terminal";
homepage = "https://github.com/The-Kid-Gid/nextinspace";
license = licenses.gpl3;
license = licenses.gpl3Only;
maintainers = with maintainers; [ penguwin ];
};
}
@@ -0,0 +1,22 @@
{ lib, fetchFromGitHub, rustPlatform }:
rustPlatform.buildRustPackage rec {
pname = "commit-formatter";
version = "0.2.1";
src = fetchFromGitHub {
owner = "Eliot00";
repo = pname;
rev = "v${version}";
sha256 = "EYzhb9jJ4MzHxIbaTb1MxeXUgoxTwcnq5JdxAv2uNcA=";
};
cargoSha256 = "AeHQCoP1HOftlOt/Yala3AXocMlwwIXIO2i1AsFSvGQ=";
meta = with lib; {
description = "A CLI tool to help you write git commit";
homepage = "https://github.com/Eliot00/commit-formatter";
license = with licenses; [ asl20 /* or */ mit ];
maintainers = with maintainers; [ elliot ];
};
}
@@ -7,6 +7,7 @@
, highlightSupport ? fullBuild
, ApplicationServices
# test dependencies
, runCommand
, unzip
, which
, sqlite
@@ -39,15 +40,6 @@ let
} else null;
cargoRoot = if rustSupport then "rust" else null;
postPatch = ''
patchShebangs .
for f in **/*.{py,c,t}; do
# not only used in shebangs
substituteAllInPlace "$f" '/bin/sh' '${stdenv.shell}'
done
'';
propagatedBuildInputs = lib.optional re2Support fb-re2
++ lib.optional gitSupport pygit2
++ lib.optional highlightSupport pygments;
@@ -63,27 +55,6 @@ let
makeFlags = [ "PREFIX=$(out)" ]
++ lib.optional rustSupport "PURE=--rust";
doCheck = stdenv.isLinux; # tests seem unstable on Darwin
checkInputs = [
unzip
which
sqlite
git
gnupg
];
SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; # needed for git
checkPhase = ''
cat << EOF > tests/blacklists/nix
# tests enforcing "/usr/bin/env" shebangs, which are patched for nix
test-run-tests.t
test-check-shbang.t
EOF
# extended timeout necessary for tests to pass on the busy CI workers
export HGTESTFLAGS="--blacklist blacklists/nix --timeout 1800"
make check
'';
postInstall = (lib.optionalString guiSupport ''
mkdir -p $out/etc/mercurial
cp contrib/hgk $out/bin
@@ -111,18 +82,81 @@ let
--zsh contrib/zsh_completion
'';
passthru.tests = {};
passthru.tests = {
mercurial-tests = makeTests { flags = "--with-hg=$MERCURIAL_BASE/bin/hg"; };
};
meta = with lib; {
description = "A fast, lightweight SCM system for very large distributed projects";
homepage = "https://www.mercurial-scm.org";
downloadPage = "https://www.mercurial-scm.org/release/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ eelco lukegb ];
maintainers = with maintainers; [ eelco lukegb pacien ];
updateWalker = true;
platforms = platforms.unix;
};
};
makeTests = { mercurial ? self, nameSuffix ? "", flags ? "" }: runCommand "${mercurial.pname}${nameSuffix}-tests" {
inherit (mercurial) src;
SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; # needed for git
MERCURIAL_BASE = mercurial;
nativeBuildInputs = [
python
unzip
which
sqlite
git
gnupg
];
postPatch = ''
patchShebangs .
for f in **/*.{py,c,t}; do
# not only used in shebangs
substituteAllInPlace "$f" '/bin/sh' '${stdenv.shell}'
done
for f in **/*.t; do
substituteInPlace 2>/dev/null "$f" \
--replace '*/hg:' '*/*hg*:' \${/* paths emitted by our wrapped hg look like ..hg-wrapped-wrapped */""}
--replace '"$PYTHON" "$BINDIR"/hg' '"$BINDIR"/hg' ${/* 'hg' is a wrapper; don't run using python directly */""}
done
'';
# This runs Mercurial _a lot_ of times.
requiredSystemFeatures = [ "big-parallel" ];
# Don't run tests if not-Linux or if cross-compiling.
meta.broken = !stdenv.hostPlatform.isLinux || stdenv.buildPlatform != stdenv.hostPlatform;
} ''
addToSearchPathWithCustomDelimiter : PYTHONPATH "${mercurial}/${python.sitePackages}"
unpackPhase
cd "$sourceRoot"
patchPhase
cat << EOF > tests/blacklists/nix
# tests enforcing "/usr/bin/env" shebangs, which are patched for nix
test-run-tests.t
test-check-shbang.t
# unstable experimental/unsupported features
# https://bz.mercurial-scm.org/show_bug.cgi?id=6633#c1
test-git-interop.t
# doesn't like the extra setlocale warnings emitted by our bash wrappers
test-locale.t
EOF
export HGTEST_REAL_HG="${mercurial}/bin/hg"
# extended timeout necessary for tests to pass on the busy CI workers
export HGTESTFLAGS="--blacklist blacklists/nix --timeout 1800 -j$NIX_BUILD_CORES ${flags}"
make check
touch $out
'';
in
self.overridePythonAttrs (origAttrs: {
passthru = origAttrs.passthru // rec {
+2 -2
View File
@@ -10,7 +10,7 @@
, libjpeg, libpng, libtiff
, libmpeg2, libsamplerate, libmad
, libogg, libvorbis, flac, libxslt
, lzo, libcdio, libmodplug, libass, libbluray
, lzo, libcdio, libmodplug, libass, libbluray, libudfread
, sqlite, libmysqlclient, nasm, gnutls, libva, libdrm
, curl, bzip2, zip, unzip, glxinfo
, libcec, libcec_platform, dcadec, libuuid
@@ -118,7 +118,7 @@ in stdenv.mkDerivation {
libjpeg libpng libtiff
libmpeg2 libsamplerate libmad
libogg libvorbis flac libxslt systemd
lzo libcdio libmodplug libass libbluray
lzo libcdio libmodplug libass libbluray libudfread
sqlite libmysqlclient avahi lame
curl bzip2 zip unzip glxinfo
libcec libcec_platform dcadec libuuid
@@ -40,24 +40,15 @@
stdenv.mkDerivation rec {
pname = "icewm";
version = "2.6.0";
version = "2.9.4";
src = fetchFromGitHub {
owner = "ice-wm";
repo = pname;
rev = version;
hash = "sha256-R06tiWS9z6K5Nbi+vvk7DyozpcFdrHleMeh7Iq/FfHQ=";
hash = "sha256-ne2lqo9CAhGgC8dd9R03zhFXy9nPBQR0NcfAY0DeVj4=";
};
patches = [
# https://github.com/ice-wm/icewm/pull/57
# Fix trailing -I that leads to "to generate dependencies you must specify either '-M' or '-MM'"
(fetchpatch {
url = "https://github.com/ice-wm/icewm/pull/57/commits/ebd2c45341cc31755758a423392a0f78a64d2d37.patch";
sha256 = "16m9znd3ijcfl7la3l27ac3clx8l9qng3fprkpxqcifd89ny1ml5";
})
];
nativeBuildInputs = [
asciidoc
cmake
@@ -33,6 +33,8 @@ stdenv.mkDerivation (args // {
nativeImageBuildArgs = nativeImageBuildArgs ++ extraNativeImageBuildArgs ++ [ graalvmXmx ];
buildPhase = args.buildPhase or ''
export LC_ALL="en_US.UTF-8"
runHook preBuild
native-image ''${nativeImageBuildArgs[@]}
+18 -1
View File
@@ -1,5 +1,22 @@
{ lib, stdenv, bintools-unwrapped, llvmPackages_13, coreutils }:
stdenv.mkDerivation rec {
if stdenv.hostPlatform.isStatic
then throw ''
libredirect is not available on static builds.
Please fix your derivation to not depend on libredirect on static
builds, using something like following:
nativeBuildInputs =
lib.optional (!stdenv.buildPlatform.isStatic) libredirect;
and disable tests as necessary, although fixing tests to work without
libredirect is even better.
libredirect uses LD_PRELOAD feature of dynamic loader and does not
work on static builds where dynamic loader is not used.
''
else stdenv.mkDerivation rec {
pname = "libredirect";
version = "0";
@@ -0,0 +1,43 @@
{ lib, runCommand, emptyFile, nix-diff }:
/*
Checks that two packages produce the exact same build instructions.
This can be used to make sure that a certain difference of configuration,
such as the presence of an overlay does not cause a cache miss.
When the derivations are equal, the return value is an empty file.
Otherwise, the build log explains the difference via `nix-diff`.
Example:
testEqualDerivation
"The hello package must stay the same when enabling checks."
hello
(hello.overrideAttrs(o: { doCheck = true; }))
*/
assertion: a: b:
let
drvA = builtins.unsafeDiscardOutputDependency a.drvPath or (throw "testEqualDerivation second argument must be a package");
drvB = builtins.unsafeDiscardOutputDependency b.drvPath or (throw "testEqualDerivation third argument must be a package");
name =
if a?name
then lib.strings.sanitizeDerivationName "testEqualDerivation-${a.name}"
else "testEqualDerivation";
in
if drvA == drvB then
emptyFile
else
runCommand name
{
inherit assertion drvA drvB;
nativeBuildInputs = [ nix-diff ];
} ''
echo "$assertion"
echo "However, the derivations differ:"
echo
echo nix-diff $drvA $drvB
nix-diff $drvA $drvB
exit 1
''
+61
View File
@@ -322,6 +322,67 @@ rec {
$CC -x c code.c -o "$n"
'';
/* concat a list of files to the nix store.
* The contents of files are added to the file in the store.
*
* Examples:
* # Writes my-file to /nix/store/<store path>
* concatTextFile {
* name = "my-file";
* files = [ drv1 "${drv2}/path/to/file" ];
* }
* # See also the `concatText` helper function below.
*
* # Writes executable my-file to /nix/store/<store path>/bin/my-file
* concatTextFile {
* name = "my-file";
* files = [ drv1 "${drv2}/path/to/file" ];
* executable = true;
* destination = "/bin/my-file";
* }
*/
concatTextFile =
{ name # the name of the derivation
, files
, executable ? false # run chmod +x ?
, destination ? "" # relative path appended to $out eg "/bin/foo"
, checkPhase ? "" # syntax checks, e.g. for scripts
, meta ? { }
}:
runCommandLocal name
{ inherit files executable checkPhase meta destination; }
''
file=$out$destination
mkdir -p "$(dirname "$file")"
cat $files > "$file"
(test -n "$executable" && chmod +x "$file") || true
eval "$checkPhase"
'';
/*
* Writes a text file to nix store with no optional parameters available.
*
* Example:
* # Writes contents of files to /nix/store/<store path>
* concatText "my-file" [ file1 file2 ]
*
*/
concatText = name: files: concatTextFile { inherit name files; };
/*
* Writes a text file to nix store with and mark it as executable.
*
* Example:
* # Writes contents of files to /nix/store/<store path>
* concatScript "my-file" [ file1 file2 ]
*
*/
concatScript = name: files: concatTextFile { inherit name files; executable = true; };
/*
* Create a forest of symlinks to the files in `paths'.
*
@@ -0,0 +1,12 @@
{ callPackage, lib, pkgs, runCommand, concatText, writeText, hello, emptyFile }:
let
stri = writeText "pathToTest";
txt1 = stri "abc";
txt2 = stri hello;
res = concatText "textToTest" [ txt1 txt2 ];
in
runCommand "test-concatPaths" { } ''
diff -U3 <(cat ${txt1} ${txt2}) ${res}
diff -U3 ${concatText "void" []} ${emptyFile}
touch $out
''
+3 -3
View File
@@ -2,13 +2,13 @@
stdenv.mkDerivation {
pname = "rime-data";
version = "0.38.20210628";
version = "0.38.20211002";
src = fetchFromGitHub {
owner = "rime";
repo = "plum";
rev = "0b835e347cad9c2d7038cfe82df5b5d1fe1c0327";
sha256 = "0mja4wyazxdc6fr7pzij5ah4rzwxv4s12s64vfn5ikx1ias1f8ib";
rev = "1730556e1da5a08bb8e0a656c4780a46851a2913";
sha256 = "sha256-D7rPUxcB3QkCtisfBLHPiqfgL5lqmxjSiuEcpE63elw=";
};
buildInputs = [ librime ];
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
# Add “org.gnome.crypto.pgp” GSettings schema to path
# to make it available for “gpgme-backend” test.
# It is used by Seahorses internal “common” library.
addToSearchPath XDG_DATA_DIRS "${glib.getSchemaPath gcr}/../.."
addToSearchPath XDG_DATA_DIRS "${glib.getSchemaDataDirPath gcr}"
# The same test also requires home directory so that it can store settings.
export HOME=$TMPDIR
'';
@@ -55,7 +55,7 @@
, gnome-clocks
, gnome-settings-daemon
, gnome-autoar
, asciidoc-full
, asciidoc
, bash-completion
, mesa
}:
@@ -119,7 +119,7 @@ stdenv.mkDerivation rec {
desktop-file-utils
libxslt.bin
python3
asciidoc-full
asciidoc
];
buildInputs = [
@@ -180,6 +180,9 @@ stdenv.mkDerivation rec {
chmod +x meson/postinstall.py
patchShebangs meson/postinstall.py
# We can generate it ourselves.
rm -f man/gnome-shell.1
substituteInPlace src/gnome-shell-extension-tool.in --replace "@PYTHON@" "${pythonEnv}/bin/python"
substituteInPlace src/gnome-shell-perf-tool.in --replace "@PYTHON@" "${pythonEnv}/bin/python"
'';
+1 -1
View File
@@ -1 +1 @@
WGET_ARGS=( https://download.kde.org/stable/plasma/5.23.4/ -A '*.tar.xz' )
WGET_ARGS=( https://download.kde.org/stable/plasma/5.23.5/ -A '*.tar.xz' )
+212 -212
View File
@@ -4,427 +4,427 @@
{
bluedevil = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/bluedevil-5.23.4.tar.xz";
sha256 = "13sxwsks7gnws13jhk8428npzdyhvv5yhczzayi5yd3856d3g4av";
name = "bluedevil-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/bluedevil-5.23.5.tar.xz";
sha256 = "1nbnmfdaisqngygyz1478fswsm1xp28v9l78xlw70yvvyjk2kc6v";
name = "bluedevil-5.23.5.tar.xz";
};
};
breeze = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/breeze-5.23.4.tar.xz";
sha256 = "1wbhir9g2gfwcvw0ib50qhqk0rgfji8wjipqqp7ddsm463ykp472";
name = "breeze-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/breeze-5.23.5.tar.xz";
sha256 = "1pyw7rhzkbd9kwsm8l7iz867jhwlbmkarc5iihg0bkbcg1ds18ic";
name = "breeze-5.23.5.tar.xz";
};
};
breeze-grub = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/breeze-grub-5.23.4.tar.xz";
sha256 = "1zkl8ddbdnckz4glaf0j6vkxf1z63d5q9nx0w64d17qydp1fwxjq";
name = "breeze-grub-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/breeze-grub-5.23.5.tar.xz";
sha256 = "12rm9a3vrmb3sm04l2c4vcj8psfyjxplp9wgh87q3k1rcyqz7fqk";
name = "breeze-grub-5.23.5.tar.xz";
};
};
breeze-gtk = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/breeze-gtk-5.23.4.tar.xz";
sha256 = "0jv064y7wlvglk0w2yx1zwnxjhczi9gq6cfnz004z18rlqwnz9pq";
name = "breeze-gtk-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/breeze-gtk-5.23.5.tar.xz";
sha256 = "1ynbvfgy2nlxg5svjqazj70m7py58ixxa7xyj13dcj6i2ikbcjld";
name = "breeze-gtk-5.23.5.tar.xz";
};
};
breeze-plymouth = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/breeze-plymouth-5.23.4.tar.xz";
sha256 = "1qc8pnhhl89bqwyh215cn92qahw8k8gx7zr14rwxqjn9hxf9jxxy";
name = "breeze-plymouth-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/breeze-plymouth-5.23.5.tar.xz";
sha256 = "1sllcrhz8hniqkgybk5bbb36fzjcdp5drjbf7v7jn4ih4wvybwmk";
name = "breeze-plymouth-5.23.5.tar.xz";
};
};
discover = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/discover-5.23.4.tar.xz";
sha256 = "0z5bp7p3f470i4x5796raawx7kjg1ca453y63wn9papdbiyl4iiz";
name = "discover-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/discover-5.23.5.tar.xz";
sha256 = "1kzp7jpw2kgml2yc3cx9n5syln3kyd9fxa5klh3sa1xn6bz9f8zr";
name = "discover-5.23.5.tar.xz";
};
};
drkonqi = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/drkonqi-5.23.4.tar.xz";
sha256 = "073vdclybx83dpvvqb3rc413k3nh50nil8rcig4kqm0gzjhp3qdb";
name = "drkonqi-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/drkonqi-5.23.5.tar.xz";
sha256 = "08jjh52r6dmgp7dyxjxvavb4cxhmvzirwdn7hnmfhdbwkm09fqm5";
name = "drkonqi-5.23.5.tar.xz";
};
};
kactivitymanagerd = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/kactivitymanagerd-5.23.4.tar.xz";
sha256 = "1m0rbv8pkswkzfvbf231vn2c8x507ymc07kd0dw03np8h8zs5vbz";
name = "kactivitymanagerd-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/kactivitymanagerd-5.23.5.tar.xz";
sha256 = "09v6pia34a694g0amj0miqi0j42yqvhfcv6yr9zfix4gf1qcdidn";
name = "kactivitymanagerd-5.23.5.tar.xz";
};
};
kde-cli-tools = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/kde-cli-tools-5.23.4.tar.xz";
sha256 = "0ay320b3ixlicd8d1rjngkbxspmpk7rd8g562dv0c54hk73q61gj";
name = "kde-cli-tools-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/kde-cli-tools-5.23.5.tar.xz";
sha256 = "1203z87i4dmhq1vlrfj4kiw157i5zkccd2bwc7p7qwhgbddaw5jd";
name = "kde-cli-tools-5.23.5.tar.xz";
};
};
kde-gtk-config = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/kde-gtk-config-5.23.4.tar.xz";
sha256 = "0537vk4wdvgz7jl0qkksf38bra5fdk6d0z6lnwm5v4fapdysbry9";
name = "kde-gtk-config-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/kde-gtk-config-5.23.5.tar.xz";
sha256 = "14qqxy2vz9004kfam9biv6q0601sn9yhrkx0i8y0958a58s5z3hp";
name = "kde-gtk-config-5.23.5.tar.xz";
};
};
kdecoration = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/kdecoration-5.23.4.tar.xz";
sha256 = "0s80dhbba458yr85m6yfv7m5jkkn0xqzp42nhhaj4m9hh36bbd9s";
name = "kdecoration-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/kdecoration-5.23.5.tar.xz";
sha256 = "1kqj8l95wy46kfsw3f1crxwba9zwdlbgi7345mamhyks74wj1628";
name = "kdecoration-5.23.5.tar.xz";
};
};
kdeplasma-addons = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/kdeplasma-addons-5.23.4.tar.xz";
sha256 = "1j7xd2p8a8xi69sh91hldyajqg77lx5bla1vjg65f7yqz903bp4h";
name = "kdeplasma-addons-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/kdeplasma-addons-5.23.5.tar.xz";
sha256 = "0cq0g8nqrkwv12010rsrmzqvxsa5arjpa87gvws8pah3v9k1xnkq";
name = "kdeplasma-addons-5.23.5.tar.xz";
};
};
kgamma5 = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/kgamma5-5.23.4.tar.xz";
sha256 = "1b3m812xxcya0gf665m8crpmwq91mkq28jkcjaavknr9dd22dkyk";
name = "kgamma5-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/kgamma5-5.23.5.tar.xz";
sha256 = "17j0kv00ibs2g9jxfvflk965221iznm0ydgj3i05i6j2bd8301zn";
name = "kgamma5-5.23.5.tar.xz";
};
};
khotkeys = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/khotkeys-5.23.4.tar.xz";
sha256 = "1fsll3cp6z763wp65iwqz244hzq0qlm4007jpxgd4gasbrd5zfg8";
name = "khotkeys-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/khotkeys-5.23.5.tar.xz";
sha256 = "13562p0bv0jkamx9q07wi5vs78bdrhd0h3qg5rxajc5s36gyh63a";
name = "khotkeys-5.23.5.tar.xz";
};
};
kinfocenter = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/kinfocenter-5.23.4.tar.xz";
sha256 = "0z3hwq5qjkrcxn0smgi7x49mcyixm1apjd4f16q0z40sn7sdybad";
name = "kinfocenter-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/kinfocenter-5.23.5.tar.xz";
sha256 = "0f7ik3gg1pimjlc94dp6psk0sha8k7pinx50nvmgsglap4k1xbk7";
name = "kinfocenter-5.23.5.tar.xz";
};
};
kmenuedit = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/kmenuedit-5.23.4.tar.xz";
sha256 = "1iildwnhkvg2i2yhp6zl7m77fpa8vs7hhv8wjma3vbr2gh808nck";
name = "kmenuedit-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/kmenuedit-5.23.5.tar.xz";
sha256 = "0k3dbip98zwia6m8nlgiw4mz09pkw7bik4cn3j73v2x3n7y3c542";
name = "kmenuedit-5.23.5.tar.xz";
};
};
kscreen = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/kscreen-5.23.4.tar.xz";
sha256 = "0sa9xvyz42c69aqnn2bm3j1hq87n2nk5yawppl7csxyz91iyv3n5";
name = "kscreen-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/kscreen-5.23.5.tar.xz";
sha256 = "0j5rgzj132j7qy1pgi12mhihf1a89a3xh8j5f7dp5s1f8kyjq0yi";
name = "kscreen-5.23.5.tar.xz";
};
};
kscreenlocker = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/kscreenlocker-5.23.4.tar.xz";
sha256 = "1n4gkcf74hk60fvbkb9940q5r89jbj4kwc4byi51523n038pvymf";
name = "kscreenlocker-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/kscreenlocker-5.23.5.tar.xz";
sha256 = "07vhwvcyz9ynjzh44zny1f6di2knzy3fkiji3bhrki8p3zc9vjpm";
name = "kscreenlocker-5.23.5.tar.xz";
};
};
ksshaskpass = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/ksshaskpass-5.23.4.tar.xz";
sha256 = "1s9wbfl867fgr5md51f63fc57626zw2b637xh7qy8sn563l8y1lk";
name = "ksshaskpass-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/ksshaskpass-5.23.5.tar.xz";
sha256 = "0p8aka60mc8p96v3bx954jy99n9lf0a4b09sig307clwinfr23if";
name = "ksshaskpass-5.23.5.tar.xz";
};
};
ksystemstats = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/ksystemstats-5.23.4.tar.xz";
sha256 = "00vs71jxqlv52absh16jyj1zryk2ib0bpd21c4qja11a3hw7j3gz";
name = "ksystemstats-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/ksystemstats-5.23.5.tar.xz";
sha256 = "1xmr0yk5xynja6z7xc6l1zd529q5si5qs71f72dba2zna22hb7hb";
name = "ksystemstats-5.23.5.tar.xz";
};
};
kwallet-pam = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/kwallet-pam-5.23.4.tar.xz";
sha256 = "08ycniyna3hzdgzi3m61iamwid32hajb1k1m27kw16abh3ds4vx7";
name = "kwallet-pam-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/kwallet-pam-5.23.5.tar.xz";
sha256 = "1cha41wiqsfgyrqb8di5qnnz0mnvmchprxay48czrn3r5mz49pw9";
name = "kwallet-pam-5.23.5.tar.xz";
};
};
kwayland-integration = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/kwayland-integration-5.23.4.tar.xz";
sha256 = "14j6iwakkmdyhf3796ap2dnfi0vdbrl3813x4ygzjyb8068a7k9g";
name = "kwayland-integration-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/kwayland-integration-5.23.5.tar.xz";
sha256 = "0gs68v4rriknn59fv0yjcgrmcryv7wxgskswdgi1xx18v0rlc4ag";
name = "kwayland-integration-5.23.5.tar.xz";
};
};
kwayland-server = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/kwayland-server-5.23.4.tar.xz";
sha256 = "13cvw4i1ysw4ncdnx7c4qw29zc350wbmc29dy06b574idm5rbnrm";
name = "kwayland-server-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/kwayland-server-5.23.5.tar.xz";
sha256 = "0b8c1mkh36cgxhx18v9j23n9gnvzy22x50gpiw3dbkjzsmr1n7by";
name = "kwayland-server-5.23.5.tar.xz";
};
};
kwin = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/kwin-5.23.4.tar.xz";
sha256 = "0rqim6p0r7k886mwvqy4zpz18scnah9zvjjbgx0p77f1086azvsc";
name = "kwin-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/kwin-5.23.5.tar.xz";
sha256 = "00azqmdgkh72bg4d8868cin984vxxk6s6pk5x4dfvlaknzlyfjgp";
name = "kwin-5.23.5.tar.xz";
};
};
kwrited = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/kwrited-5.23.4.tar.xz";
sha256 = "15sixbk5i5i1jv07hj820xi4fh0b6fmb4jkv2917911wpdkdnyik";
name = "kwrited-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/kwrited-5.23.5.tar.xz";
sha256 = "0aj911kfzd100jq1k1sg7i1nhiixnl7qiphc2bczn47f1jj64iqv";
name = "kwrited-5.23.5.tar.xz";
};
};
layer-shell-qt = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/layer-shell-qt-5.23.4.tar.xz";
sha256 = "0a74s7wx3jxxi1dp4j0a5dz7k45il4wjf7hf9j6cw2m5pdni1i2k";
name = "layer-shell-qt-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/layer-shell-qt-5.23.5.tar.xz";
sha256 = "1ah66z9hiricw6h3j7x2k7d49y7g4l2s9w2658wjrava2qng9bsr";
name = "layer-shell-qt-5.23.5.tar.xz";
};
};
libkscreen = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/libkscreen-5.23.4.tar.xz";
sha256 = "0n1xghmabhn7sb99k0zsyrbx05mbaf926hyyw9qp5rf07r8yzk2p";
name = "libkscreen-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/libkscreen-5.23.5.tar.xz";
sha256 = "08wgg96clp685fl5lflrfd4kmf5c2p5ms7n1q2izvg0n6qr37m1i";
name = "libkscreen-5.23.5.tar.xz";
};
};
libksysguard = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/libksysguard-5.23.4.tar.xz";
sha256 = "1xik5qaww9m26nkg804akaxbn7i7bd8ibc2v93h3p8ihkb5hh7lw";
name = "libksysguard-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/libksysguard-5.23.5.tar.xz";
sha256 = "1gy1grkkz7vwglby52vv4gr8zbzsv8rbvwbp6rqvvhmqg7ascc1h";
name = "libksysguard-5.23.5.tar.xz";
};
};
milou = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/milou-5.23.4.tar.xz";
sha256 = "15wniaj9zprhvly6krxl5847q8kh8m8z5sr2wj816n70hh1y58f8";
name = "milou-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/milou-5.23.5.tar.xz";
sha256 = "05bc6hc5pn5rz4zp6b2akjdbssv7xppvzsw3pidkqb8pincl01gh";
name = "milou-5.23.5.tar.xz";
};
};
oxygen = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/oxygen-5.23.4.tar.xz";
sha256 = "0b4rhf9500jhx73xw4ghqifgkfr527n2isiiys8g7m23ya38pbxz";
name = "oxygen-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/oxygen-5.23.5.tar.xz";
sha256 = "1vvy9yqllqq9dx2riwv4bmxfq13wph5wagy84f1hhl7zxnbcyv0c";
name = "oxygen-5.23.5.tar.xz";
};
};
plasma-browser-integration = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-browser-integration-5.23.4.tar.xz";
sha256 = "004406s80i0gv1ga151ws7sny4l3y74swawdgd1swmvkjg2ii909";
name = "plasma-browser-integration-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-browser-integration-5.23.5.tar.xz";
sha256 = "0jw9jircgbilig4pryyjxhby8qc7nag9a1s5nk1zdsnlaqr08jyp";
name = "plasma-browser-integration-5.23.5.tar.xz";
};
};
plasma-desktop = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-desktop-5.23.4.tar.xz";
sha256 = "1p48sl6zyra1iyri9zrx88wka9fbzgyhkd9m7r4nqa8h0v5p12as";
name = "plasma-desktop-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-desktop-5.23.5.tar.xz";
sha256 = "0ym8cssw351ygw2vy27cyxql05y0gaflnqnq4fwkdgidldvmi45k";
name = "plasma-desktop-5.23.5.tar.xz";
};
};
plasma-disks = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-disks-5.23.4.tar.xz";
sha256 = "0sgfwqyn539nd6s23nix3igf7z87sn3dn9zp8w2fy488vmm1pdmi";
name = "plasma-disks-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-disks-5.23.5.tar.xz";
sha256 = "0197zyj5p7j8y80g0vvf5d9bq86qxkhwpa9dzb5l3is50y8lkj6p";
name = "plasma-disks-5.23.5.tar.xz";
};
};
plasma-firewall = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-firewall-5.23.4.tar.xz";
sha256 = "040w85ml5rh0l95l744576s3kb00niyr72q4pvf5xj98df1h89aw";
name = "plasma-firewall-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-firewall-5.23.5.tar.xz";
sha256 = "0fhycjrb89blh6wf24rvq7bafqqrxj37ir0daj5jlph9f1w4laq0";
name = "plasma-firewall-5.23.5.tar.xz";
};
};
plasma-integration = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-integration-5.23.4.tar.xz";
sha256 = "0b4rvfnd40xgvgab81p9qjgdpjww673nlaiklwrkrqmv41m0yy33";
name = "plasma-integration-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-integration-5.23.5.tar.xz";
sha256 = "03c0cqvr5cdpvxgm145sqpbbr8wv0qv4pqjl69v3bs010pd755lg";
name = "plasma-integration-5.23.5.tar.xz";
};
};
plasma-nano = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-nano-5.23.4.tar.xz";
sha256 = "1kw77w00261dmp2w0jvaslamia215mlhd3nnl0wr39p5vhlym70p";
name = "plasma-nano-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-nano-5.23.5.tar.xz";
sha256 = "1yh67bh1smk7zx35hd72pafjbjdv7wwwhm76ga5sj251m61ncxim";
name = "plasma-nano-5.23.5.tar.xz";
};
};
plasma-nm = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-nm-5.23.4.tar.xz";
sha256 = "0c4gfdyzac67yxjvz75mxd61wacnsa01liaajdyj853bn7wkx294";
name = "plasma-nm-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-nm-5.23.5.tar.xz";
sha256 = "14sknzy4v4xx1ihjn1s6x0lv5difnp4gi24zsdqvnkxkmxzhcij3";
name = "plasma-nm-5.23.5.tar.xz";
};
};
plasma-pa = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-pa-5.23.4.tar.xz";
sha256 = "0g4q0y4sr14xsi71mv5qgn6qj8svmd045ff73hf34pb15qvdq0a7";
name = "plasma-pa-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-pa-5.23.5.tar.xz";
sha256 = "1pcnf59qj7rgmcbc5xhad5zl487r48i2kyp6nc3yrlgj1xcfpfxg";
name = "plasma-pa-5.23.5.tar.xz";
};
};
plasma-phone-components = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-phone-components-5.23.4.tar.xz";
sha256 = "0ml5pyi90nlmx5550sf3x9263f8mypj4jmdskzabzhnz44ck8vy9";
name = "plasma-phone-components-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-phone-components-5.23.5.tar.xz";
sha256 = "08c03pycvv7ald21d8ckxpv6d25qlxs28gjm99hdn6x8m74j7frn";
name = "plasma-phone-components-5.23.5.tar.xz";
};
};
plasma-sdk = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-sdk-5.23.4.tar.xz";
sha256 = "1cbsksjy9x3jlk8bzd9m1zgr83rzkwv0jd015fap707ysdil1ypk";
name = "plasma-sdk-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-sdk-5.23.5.tar.xz";
sha256 = "1s0l09lgqipks0w0jplaaipcs4a1ny4iclkz9hkfx4xjgcvk5m2j";
name = "plasma-sdk-5.23.5.tar.xz";
};
};
plasma-systemmonitor = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-systemmonitor-5.23.4.tar.xz";
sha256 = "16kfpzm8bhxyl9jx5xqbas4cm99sny4b2n6i27hc7ggjgx9r3j31";
name = "plasma-systemmonitor-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-systemmonitor-5.23.5.tar.xz";
sha256 = "1snzabxgja9rsk000h97qjadb9fs8zdbqpr4zqa9sk0jjgm011lf";
name = "plasma-systemmonitor-5.23.5.tar.xz";
};
};
plasma-tests = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-tests-5.23.4.tar.xz";
sha256 = "1vnihnrxgbrk224xxpisqj84hjbllyk32vsra2rbgrwp2g58fh69";
name = "plasma-tests-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-tests-5.23.5.tar.xz";
sha256 = "125b0sf7h0ibjl7msw1sc3cccms8nrrkx6cgwd46a9xi5svrsfg2";
name = "plasma-tests-5.23.5.tar.xz";
};
};
plasma-thunderbolt = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-thunderbolt-5.23.4.tar.xz";
sha256 = "0g5n24qwm6yd78rg14d6j2hn0krn0z0fm6bpyzr54ycrgiv850zz";
name = "plasma-thunderbolt-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-thunderbolt-5.23.5.tar.xz";
sha256 = "1ich92w479llvq1vjlfyvxh3dvqc4pgycfi97hz4sfhn7dnaw3vr";
name = "plasma-thunderbolt-5.23.5.tar.xz";
};
};
plasma-vault = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-vault-5.23.4.tar.xz";
sha256 = "1ay9x7kbgb5qg7w1m1rp9xbp8dzsxdj7zh2ifk3lff1g5f3yh9y6";
name = "plasma-vault-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-vault-5.23.5.tar.xz";
sha256 = "1gf531q29qnvvsdxqgb1zyxwh5ck25kb0h1kk0d95pjkkylgyv0d";
name = "plasma-vault-5.23.5.tar.xz";
};
};
plasma-workspace = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-workspace-5.23.4.tar.xz";
sha256 = "0kd37sfg8hbf8biia3ip89nx0jgrdgfprmda392gx5xfzbnlxv0k";
name = "plasma-workspace-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-workspace-5.23.5.tar.xz";
sha256 = "0x950nb56xmmdf7hfpbrd9hvgq1a8vca0x8g1qsvrjhh5ymydgif";
name = "plasma-workspace-5.23.5.tar.xz";
};
};
plasma-workspace-wallpapers = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plasma-workspace-wallpapers-5.23.4.tar.xz";
sha256 = "157kbi40bv9arxq7cvgxypk1qmrpd52d76xq99rsfbzdfrggx9nc";
name = "plasma-workspace-wallpapers-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plasma-workspace-wallpapers-5.23.5.tar.xz";
sha256 = "0nr631yz8v671a87vh9f2a5kfjhn4f9147b339p09fwgfpx06vfx";
name = "plasma-workspace-wallpapers-5.23.5.tar.xz";
};
};
plymouth-kcm = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/plymouth-kcm-5.23.4.tar.xz";
sha256 = "11f2r4nq7pi8xn3z6zjc58ix5hj3das16xqvq7m82p8zvw2qs44p";
name = "plymouth-kcm-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/plymouth-kcm-5.23.5.tar.xz";
sha256 = "0ynyqfm6az8yj3d30yxza5mjcsgfw6mmdkcgr3v95r6db112hqbx";
name = "plymouth-kcm-5.23.5.tar.xz";
};
};
polkit-kde-agent = {
version = "1-5.23.4";
version = "1-5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/polkit-kde-agent-1-5.23.4.tar.xz";
sha256 = "06qjz87c2h0vgpk0jpf24194rahdrwpc274k6vmfkmbr5232w48h";
name = "polkit-kde-agent-1-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/polkit-kde-agent-1-5.23.5.tar.xz";
sha256 = "1wgpgbq987qa6fdayw4155fwym6rcn2z7w66s8faqv94x78njzln";
name = "polkit-kde-agent-1-5.23.5.tar.xz";
};
};
powerdevil = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/powerdevil-5.23.4.tar.xz";
sha256 = "1sl62vm25libbx2l2kw7s9p44kdq561gh8an03vkf1q1qgrnpwsf";
name = "powerdevil-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/powerdevil-5.23.5.tar.xz";
sha256 = "1lxjqd4w3jvnffcn9751j9k1fzsyasd1z8b1gm2iaf38iys21116";
name = "powerdevil-5.23.5.tar.xz";
};
};
qqc2-breeze-style = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/qqc2-breeze-style-5.23.4.tar.xz";
sha256 = "1wl8zxq7bca6v40mnwjnpxc3pzz30khc223y9dwpgy8ampvy2ghr";
name = "qqc2-breeze-style-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/qqc2-breeze-style-5.23.5.tar.xz";
sha256 = "15i9h2md54a1h7isvma4x9pni3iy0bk84z8ibn3a36ydimyq5hra";
name = "qqc2-breeze-style-5.23.5.tar.xz";
};
};
sddm-kcm = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/sddm-kcm-5.23.4.tar.xz";
sha256 = "148vf9af4fhma0w6v7wwlxpq8v8a858yx3qx7w0pg8jq5zd1k6g2";
name = "sddm-kcm-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/sddm-kcm-5.23.5.tar.xz";
sha256 = "0csj1gml8w29dzv62zpbia9g10qz5k1nzv1yywsvay1q8rbqccxv";
name = "sddm-kcm-5.23.5.tar.xz";
};
};
systemsettings = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/systemsettings-5.23.4.tar.xz";
sha256 = "0naw5zxgs47nx5wwg1li35salyg2cfpaphhn5m20plwqfi43zbdw";
name = "systemsettings-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/systemsettings-5.23.5.tar.xz";
sha256 = "0shsqancxbxy6f4fd9m2a30x7gnjmd6gb8kq4nhlj6rramcwn3jh";
name = "systemsettings-5.23.5.tar.xz";
};
};
xdg-desktop-portal-kde = {
version = "5.23.4";
version = "5.23.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.23.4/xdg-desktop-portal-kde-5.23.4.tar.xz";
sha256 = "17n5d4rjm28in7jpsq2qg2d7lv3qcnlpmgi9kclx81miih9rjwan";
name = "xdg-desktop-portal-kde-5.23.4.tar.xz";
url = "${mirror}/stable/plasma/5.23.5/xdg-desktop-portal-kde-5.23.5.tar.xz";
sha256 = "09s3fpjdrnxqvnyxmxva0rx612d6pxv28qqvm00hzrb23nxz6qgb";
name = "xdg-desktop-portal-kde-5.23.5.tar.xz";
};
};
}
+4 -4
View File
@@ -104,13 +104,13 @@ in rec {
};
vala_0_48 = generic {
version = "0.48.20";
sha256 = "sha256-RrHIF/dIUfvMOV/E+eoRlQLPh7kzPMllbhzczAvTN24=";
version = "0.48.21";
sha256 = "sha256-MFRVrrdo1u2bAYNgtVGC5IsW2xvBY6TluBQg+Y0h2Zg=";
};
vala_0_52 = generic {
version = "0.52.8";
sha256 = "sha256-d3t9HLVnFewyJUXQEw5/9Y2eem0b2WtuKX6eYOgRh5M=";
version = "0.52.9";
sha256 = "sha256-HpMH2B4hHxniUB6P5PtN0Z+5J8SEtV/873FOjFFdAHk=";
};
vala_0_54 = generic {
@@ -22,13 +22,13 @@ let
in stdenv.mkDerivation rec {
pname = "amdvlk";
version = "2021.Q4.2";
version = "2021.Q4.3";
src = fetchRepoProject {
name = "${pname}-src";
manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
rev = "refs/tags/v-${version}";
sha256 = "DpylZjIqWmCnUI0lEvd/HQcY+lr8asMurt1K9MI3qQw=";
sha256 = "M+58gJjP33yOuq6RYN73HG7wACPaYRz7WFC/AFFGMzw=";
};
buildInputs = [
@@ -40,7 +40,10 @@ stdenv.mkDerivation rec {
];
sconsFlags =
[ "--disable-sox"
[ "--build=${stdenv.buildPlatform.config}"
"--host=${stdenv.hostPlatform.config}"
"--prefix=${placeholder "out"}"
"--disable-sox"
"--disable-tests" ] ++
lib.optional (!libunwindSupport) "--disable-libunwind" ++
lib.optional (!pulseaudioSupport) "--disable-pulseaudio" ++
@@ -52,10 +55,6 @@ stdenv.mkDerivation rec {
prePatch = lib.optionalString stdenv.isAarch64
"sed -i 's/c++98/c++11/g' SConstruct";
preConfigure = ''
sconsFlags+=" --prefix=$out"
'';
meta = with lib; {
description = "Roc is a toolkit for real-time audio streaming over the network";
homepage = "https://github.com/roc-streaming/roc-toolkit";
@@ -0,0 +1,58 @@
From 6be95cf45c4b5beae8b364468cef42d5c5880836 Mon Sep 17 00:00:00 2001
From: Jan Tojnar <jtojnar@gmail.com>
Date: Sun, 9 Jan 2022 01:57:18 +0100
Subject: [PATCH] build: Make includedir properly overrideable
This is required by some package managers like Nix.
---
CMakeLists.txt | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ad50174..e0be58c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -54,6 +54,10 @@ elseif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
set(CMAKE_INSTALL_LIBDIR "lib")
endif()
+if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)
+ set(CMAKE_INSTALL_INCLUDEDIR "include")
+endif()
+
if (${CMAKE_INSTALL_LIBDIR} STREQUAL "lib64")
set(FIND_LIBRARY_USE_LIB64_PATHS true)
endif()
@@ -302,7 +306,7 @@ endif ()
target_include_directories(${PROJECT_NAME} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
- $<INSTALL_INTERFACE:include>)
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
aws_use_package(aws-c-http)
aws_use_package(aws-c-mqtt)
@@ -316,13 +320,13 @@ aws_use_package(aws-c-s3)
target_link_libraries(${PROJECT_NAME} ${DEP_AWS_LIBS})
-install(FILES ${AWS_CRT_HEADERS} DESTINATION "include/aws/crt" COMPONENT Development)
-install(FILES ${AWS_CRT_AUTH_HEADERS} DESTINATION "include/aws/crt/auth" COMPONENT Development)
-install(FILES ${AWS_CRT_CRYPTO_HEADERS} DESTINATION "include/aws/crt/crypto" COMPONENT Development)
-install(FILES ${AWS_CRT_IO_HEADERS} DESTINATION "include/aws/crt/io" COMPONENT Development)
-install(FILES ${AWS_CRT_IOT_HEADERS} DESTINATION "include/aws/iot" COMPONENT Development)
-install(FILES ${AWS_CRT_MQTT_HEADERS} DESTINATION "include/aws/crt/mqtt" COMPONENT Development)
-install(FILES ${AWS_CRT_HTTP_HEADERS} DESTINATION "include/aws/crt/http" COMPONENT Development)
+install(FILES ${AWS_CRT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt" COMPONENT Development)
+install(FILES ${AWS_CRT_AUTH_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/auth" COMPONENT Development)
+install(FILES ${AWS_CRT_CRYPTO_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/crypto" COMPONENT Development)
+install(FILES ${AWS_CRT_IO_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/io" COMPONENT Development)
+install(FILES ${AWS_CRT_IOT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/iot" COMPONENT Development)
+install(FILES ${AWS_CRT_MQTT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/mqtt" COMPONENT Development)
+install(FILES ${AWS_CRT_HTTP_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/http" COMPONENT Development)
install(
TARGETS ${PROJECT_NAME}
--
2.34.1
@@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
pname = "aws-crt-cpp";
version = "0.17.8";
outputs = [ "out" "dev" ];
src = fetchFromGitHub {
owner = "awslabs";
repo = "aws-crt-cpp";
@@ -25,6 +27,12 @@ stdenv.mkDerivation rec {
sha256 = "sha256-eHABIg3v5ycpQzacW/8C74PT6yDOXGmJqDa9P1hN7Mo=";
};
patches = [
# Correct include path for split outputs.
# https://github.com/awslabs/aws-crt-cpp/pull/325
./0001-build-Make-includedir-properly-overrideable.patch
];
postPatch = ''
substituteInPlace CMakeLists.txt --replace '-Werror' ""
'';
@@ -53,6 +61,11 @@ stdenv.mkDerivation rec {
"-DBUILD_SHARED_LIBS=ON"
];
postInstall = ''
# Prevent dependency cycle.
moveToOutput lib/aws-crt-cpp/cmake "$dev"
'';
meta = with lib; {
description = "C++ wrapper around the aws-c-* libraries";
homepage = "https://github.com/awslabs/aws-crt-cpp";
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
doCheck = true;
# always built for checks but install static lib only when necessary
preInstall = lib.optionalString (!enableStatic) "rm libcryptopp.a";
preInstall = lib.optionalString (!enableStatic) "rm -f libcryptopp.a";
installTargets = [ "install-lib" ];
installFlags = [ "LDCONF=true" ];
+5 -1
View File
@@ -191,8 +191,12 @@ stdenv.mkDerivation rec {
passthru = rec {
gioModuleDir = "lib/gio/modules";
makeSchemaPath = dir: name: "${dir}/share/gsettings-schemas/${name}/glib-2.0/schemas";
makeSchemaDataDirPath = dir: name: "${dir}/share/gsettings-schemas/${name}";
makeSchemaPath = dir: name: "${makeSchemaDataDirPath dir name}/glib-2.0/schemas";
getSchemaPath = pkg: makeSchemaPath pkg pkg.name;
getSchemaDataDirPath = pkg: makeSchemaDataDirPath pkg pkg.name;
inherit flattenInclude;
updateScript = gnome.updateScript { packageName = "glib"; };
};
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
# AdwSettings needs to be initialized from “org.gnome.desktop.interface” GSettings schema when portal is not used for color scheme.
# It will not actually be used since the “color-scheme” key will only have been introduced in GNOME 42, falling back to detecting theme name.
# See adw_settings_constructed function in https://gitlab.gnome.org/GNOME/libadwaita/commit/60ec69f0a5d49cad8a6d79e4ecefd06dc6e3db12
"XDG_DATA_DIRS=${glib.getSchemaPath gsettings-desktop-schemas}/../.."
"XDG_DATA_DIRS=${glib.getSchemaDataDirPath gsettings-desktop-schemas}"
# Tests need a cache directory
"HOME=$TMPDIR"
@@ -10,7 +10,9 @@ stdenv.mkDerivation rec {
};
patches = [
./fix-gnupg-2.2.patch # based on https://gitlab.gnome.org/GNOME/libcryptui/-/commit/b05e301d1b264a5d8f07cb96e5edc243d99bff79.patch
# based on https://gitlab.gnome.org/GNOME/libcryptui/-/commit/b05e301d1b264a5d8f07cb96e5edc243d99bff79.patch
# https://gitlab.gnome.org/GNOME/libcryptui/-/merge_requests/1
./fix-latest-gnupg.patch
];
nativeBuildInputs = [ pkg-config intltool autoreconfHook ];
@@ -17,7 +17,7 @@ index 4486e7b2..be5b28b4 100644
if test "$DO_CHECK" = "yes"; then
- accepted_versions="1.2 1.4 2.0"
+ accepted_versions="1.2 1.4 2.0 2.2"
+ accepted_versions="1.2 1.4 2.0 2.2 2.3"
AC_PATH_PROGS(GNUPG, [gpg gpg2], no)
AC_DEFINE_UNQUOTED(GNUPG, "$GNUPG", [Path to gpg executable.])
ok="no"
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
pname = "libgtop";
version = "2.40.0";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq";
@@ -94,7 +94,7 @@ stdenv.mkDerivation rec {
# HdySettings needs to be initialized from “org.gnome.desktop.interface” GSettings schema when portal is not used for color scheme.
# It will not actually be used since the “color-scheme” key will only have been introduced in GNOME 42, falling back to detecting theme name.
# See hdy_settings_constructed function in https://gitlab.gnome.org/GNOME/libhandy/-/commit/bb68249b005c445947bfb2bee66c91d0fe9c41a4
"${glib.getSchemaPath gsettings-desktop-schemas}/../.."
(glib.getSchemaDataDirPath gsettings-desktop-schemas)
# Some tests require icons
"${hicolor-icon-theme}/share"
@@ -0,0 +1,22 @@
{ lib, stdenv, fetchurl, autoreconfHook, }:
stdenv.mkDerivation rec {
pname = "libudfread";
version = "1.1.2";
src = fetchurl {
url =
"https://code.videolan.org/videolan/${pname}/-/archive/${version}/${pname}-${version}.tar.gz";
sha256 = "1idsfxff1x264n8jd7077qrd61rycsd09fwmc4ar7l4qmhk6gw9b";
};
nativeBuildInputs = [ autoreconfHook ];
meta = with lib; {
description = "UDF reader";
homepage = "https://code.videolan.org/videolan/libudfread";
license = licenses.lgpl21Plus;
maintainers = with maintainers; [ chkno ];
platforms = platforms.all;
};
}
@@ -72,14 +72,14 @@ let
in
stdenv.mkDerivation rec {
pname = "libvirt";
version = "7.9.0";
version = "7.10.0";
src =
if buildFromTarball then
fetchurl
{
url = "https://libvirt.org/sources/${pname}-${version}.tar.xz";
sha256 = "sha256-gpzytfV0J5xA8ERuEWiBXT82uJcQVgJjyiznAlb3Low=";
sha256 = "sha256-yzGAFK8JcyeSjG49cpIuO+AqPmQBJHsqpS2auOC0gPk=";
}
else
fetchFromGitLab
@@ -87,7 +87,7 @@ stdenv.mkDerivation rec {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "sha256-Ua6+EKLES3385fqhH2+qwnwE+X/nmWqIBxCXXE3SVhs=";
sha256 = "sha256-bB8LsjZFeJbMmmC0YRPyMag2MBhwagUFC7aB1KhZEkA=";
fetchSubmodules = true;
};
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
pname = "libvncserver";
version = "0.9.13";
outputs = [ "out" "dev" ];
src = fetchFromGitHub {
owner = "LibVNC";
repo = "libvncserver";
@@ -23,11 +25,24 @@ stdenv.mkDerivation rec {
sha256 = "sha256-gQT/M2u4nWQ0MfO2gWAqY0ZJc7V9eGczGzcsxKmG4H8=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ libjpeg openssl libgcrypt libpng ]
++ lib.optional stdenv.isLinux systemd
++ lib.optional stdenv.isDarwin Carbon;
propagatedBuildInputs = [ zlib ];
nativeBuildInputs = [
cmake
];
buildInputs = [
libjpeg
openssl
libgcrypt
libpng
] ++ lib.optionals stdenv.isLinux [
systemd
] ++ lib.optional stdenv.isDarwin [
Carbon
];
propagatedBuildInputs = [
zlib
];
meta = with lib; {
description = "VNC server library";
@@ -1,51 +1,63 @@
{ stdenv
{ lib
, stdenv
, fetchFromGitHub
, cmake
, pkg-config
, pandoc
, libdeflate
, libunistring
, ncurses
, pandoc
, pkg-config
, zlib
, ffmpeg
, fetchFromGitHub
, lib
, multimediaSupport ? true
, multimediaSupport ? true, ffmpeg
, qrcodegenSupport ? true, qrcodegen
}:
stdenv.mkDerivation rec {
pname = "notcurses";
version = "2.4.9";
version = "3.0.3";
src = fetchFromGitHub {
owner = "dankamongmen";
repo = "notcurses";
rev = "v${version}";
sha256 = "sha256-J7yTNMvmcm69B+yF0PYLXFG8kkcnffWyUx3kEFU0ToI=";
sha256 = "sha256-jIUIr7roX9ciYkNmvS9m14RdNgFTElwrKadYzi0lCP0=";
};
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake pkg-config pandoc ];
nativeBuildInputs = [
cmake
pandoc
pkg-config
];
buildInputs = [ libunistring ncurses zlib ]
++ lib.optional multimediaSupport ffmpeg;
buildInputs = [
libdeflate
libunistring
ncurses
zlib
]
++ lib.optional qrcodegenSupport qrcodegen
++ lib.optional multimediaSupport ffmpeg;
cmakeFlags = [ "-DUSE_QRCODEGEN=OFF" ]
cmakeFlags =
lib.optional (qrcodegenSupport) "-DUSE_QRCODEGEN=ON"
++ lib.optional (!multimediaSupport) "-DUSE_MULTIMEDIA=none";
meta = with lib; {
description = "blingful TUIs and character graphics";
homepage = "https://github.com/dankamongmen/notcurses";
description = "Blingful TUIs and character graphics";
longDescription = ''
A library facilitating complex TUIs on modern terminal emulators,
supporting vivid colors, multimedia, and Unicode to the maximum degree
possible. Things can be done with Notcurses that simply can't be done
with NCURSES.
Notcurses is a library facilitating complex TUIs on modern terminal
emulators, supporting vivid colors, multimedia, and Unicode to the maximum
degree possible. Things can be done with Notcurses that simply can't be
done with NCURSES.
It is not a source-compatible X/Open Curses implementation, nor a
replacement for NCURSES on existing systems.
'';
homepage = "https://github.com/dankamongmen/notcurses";
license = licenses.asl20;
platforms = platforms.all;
maintainers = with maintainers; [ jb55 ];
maintainers = with maintainers; [ jb55 AndersonTorres ];
inherit (ncurses.meta) platforms;
};
}
@@ -1,4 +1,8 @@
{ lib, stdenv, fetchFromGitHub }:
{ lib
, stdenv
, fetchFromGitHub
}:
stdenv.mkDerivation rec {
pname = "qrcodegen";
version = "1.7.0";
@@ -10,25 +14,28 @@ stdenv.mkDerivation rec {
sha256 = "sha256-WH6O3YE/+NNznzl52TXZYL+6O25GmKSnaFqDDhRl4As=";
};
preBuild = "cd c";
preBuild = ''
cd c/
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib $out/include/qrcodegen
cp libqrcodegen.a $out/lib
cp qrcodegen.h $out/include/qrcodegen/
runHook postInstall
'';
meta = with lib;
{
description = "qrcode generator library in multiple languages";
longDescription = ''
This project aims to be the best, clearest library for generating QR Codes. My primary goals are flexible options and absolute correctness. Secondary goals are compact implementation size and good documentation comments.
'';
homepage = "https://github.com/nayuki/QR-Code-generator";
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ mcbeth ];
};
meta = with lib; {
homepage = "https://www.nayuki.io/page/qr-code-generator-library";
description = "High-quality QR Code generator library in many languages";
license = licenses.mit;
maintainers = with maintainers; [ mcbeth AndersonTorres ];
platforms = platforms.unix;
broken = stdenv.isDarwin;
};
}
# TODO: build the other languages
# TODO: multiple outputs
@@ -117,22 +117,22 @@ let
qttools = [ ./qttools.patch ];
};
qtModule =
import ../qtModule.nix
{
inherit perl;
inherit lib;
# Use a variant of mkDerivation that does not include wrapQtApplications
# to avoid cyclic dependencies between Qt modules.
mkDerivation =
import ../mkDerivation.nix
{ inherit lib; inherit debug; wrapQtAppsHook = null; }
stdenv.mkDerivation;
}
{ inherit self srcs patches; };
addPackages = self: with self;
let
qtModule =
import ../qtModule.nix
{
inherit perl;
inherit lib;
# Use a variant of mkDerivation that does not include wrapQtApplications
# to avoid cyclic dependencies between Qt modules.
mkDerivation =
import ../mkDerivation.nix
{ inherit lib; inherit debug; wrapQtAppsHook = null; }
stdenv.mkDerivation;
}
{ inherit self srcs patches; };
callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
in {
@@ -228,6 +228,4 @@ let
} ../hooks/wrap-qt-apps-hook.sh;
};
self = lib.makeScope newScope addPackages;
in self
in lib.makeScope newScope addPackages

Some files were not shown because too many files have changed in this diff Show More