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:
@@ -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
|
||||
|
||||
@@ -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}
|
||||
|
||||
|
||||
@@ -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";
|
||||
}];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 "Linux" in machine.succeed("uname"):
|
||||
<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("ctrl-alt-delete")</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("foobar\n")</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>>&2</literal>,
|
||||
to <literal>/dev/console</literal>,
|
||||
<literal>/dev/null</literal> or a file. Examples of detaching
|
||||
commands are <literal>sleep 365d &</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("Terminal")</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("myfile", "/etc/my/important/file")</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("ctrl-alt-delete")</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("foobar\n")</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>>&2</literal>, to
|
||||
<literal>/dev/console</literal>,
|
||||
<literal>/dev/null</literal> or a file. Examples of
|
||||
detaching commands are <literal>sleep 365d &</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("Terminal")</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("myfile", "/etc/my/important/file")</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("list-jobs --no-pager") # runs `systemctl list-jobs --no-pager`
|
||||
machine.systemctl("list-jobs --no-pager", "any-user") # 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("xautolock.service", "x-session-user")
|
||||
</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("pgrep -x foo")
|
||||
|
||||
|
||||
machine.succeed("foo --start")
|
||||
machine.wait_until_succeeds("pgrep -x foo")
|
||||
|
||||
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("pgrep -x foo")
|
||||
```
|
||||
</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():
|
||||
"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")
|
||||
```
|
||||
</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`.
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -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": [
|
||||
|
||||
@@ -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()
|
||||
@@ -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 "";
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
@@ -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.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
@@ -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 @@
|
||||
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' )
|
||||
|
||||
+920
-920
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 ];
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 don’t support a config file for now,
|
||||
# since it’s 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.
|
||||
|
||||
[maintainer’s 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
@@ -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)";
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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[@]}
|
||||
|
||||
@@ -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
|
||||
''
|
||||
@@ -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
|
||||
''
|
||||
@@ -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 Seahorse’s 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 @@
|
||||
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
@@ -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";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
+58
@@ -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" ];
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
+1
-1
@@ -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
Reference in New Issue
Block a user