Merge master into staging-next
This commit is contained in:
commit
b40a01817b
|
@ -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)
|
||||
|
|
|
@ -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,6 +117,8 @@ if not "Linux" in machine.succeed("uname"):
|
|||
<programlisting language="python">
|
||||
start_all()
|
||||
</programlisting>
|
||||
<section xml:id="ssec-machine-objects">
|
||||
<title>Machine objects</title>
|
||||
<para>
|
||||
The following methods are available on machine objects:
|
||||
</para>
|
||||
|
@ -194,8 +196,8 @@ start_all()
|
|||
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.
|
||||
interpretations is not specified and is subject to change,
|
||||
but if no exception is raised at least one will be returned.
|
||||
</para>
|
||||
<note>
|
||||
<para>
|
||||
|
@ -253,9 +255,9 @@ start_all()
|
|||
<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.
|
||||
<literal>send_chars("foobar\n")</literal> will
|
||||
type the string <literal>foobar</literal> followed by the
|
||||
Enter key.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -266,23 +268,24 @@ start_all()
|
|||
<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>(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.
|
||||
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>
|
||||
|
@ -300,8 +303,9 @@ start_all()
|
|||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
If several commands are separated by <literal>;</literal>
|
||||
and one fails, the command as a whole will fail.
|
||||
If several commands are separated by
|
||||
<literal>;</literal> and one fails, the command as a
|
||||
whole will fail.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
|
@ -353,7 +357,8 @@ start_all()
|
|||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Repeat a shell command with 1-second intervals until it fails.
|
||||
Repeat a shell command with 1-second intervals until it
|
||||
fails.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -462,9 +467,9 @@ start_all()
|
|||
<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.
|
||||
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>
|
||||
|
@ -490,8 +495,8 @@ machine.systemctl("list-jobs --no-pager", "any-user") # spaw
|
|||
<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
|
||||
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>
|
||||
|
@ -510,12 +515,13 @@ 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>.
|
||||
<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):
|
||||
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 {
|
||||
|
@ -532,10 +538,10 @@ 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):
|
||||
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 =
|
||||
|
@ -546,3 +552,65 @@ import ./make-test-python.nix {
|
|||
'';
|
||||
</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>
|
||||
|
|
|
@ -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()
|
||||
|
|
77
nixos/lib/test-driver/test_driver/polling_condition.py
Normal file
77
nixos/lib/test-driver/test_driver/polling_condition.py
Normal file
|
@ -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()
|
|
@ -34,13 +34,19 @@ 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')
|
||||
|
||||
with codium_running:
|
||||
# Wait until vscodium is visible. "File" is in the menu bar.
|
||||
machine.wait_for_text('File')
|
||||
machine.wait_for_text('Get Started')
|
||||
machine.screenshot('start_screen')
|
||||
|
||||
test_string = 'testfile'
|
||||
|
@ -63,7 +69,11 @@ let
|
|||
|
||||
# (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
|
||||
|
|
|
@ -1 +1 @@
|
|||
WGET_ARGS=( https://download.kde.org/stable/release-service/21.12.0/src -A '*.tar.xz' )
|
||||
WGET_ARGS=( https://download.kde.org/stable/release-service/21.12.1/src -A '*.tar.xz' )
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -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 ];
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -1,6 +1,22 @@
|
|||
{ stdenv, lib, coreutils }:
|
||||
{ stdenv, runCommand, lib, 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";
|
||||
|
||||
|
|
|
@ -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' )
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 = "9HKkpWbDiSqMI1KraIXnFioEnTYFh6Sddtm72vZMsK4=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -117,6 +117,8 @@ let
|
|||
qttools = [ ./qttools.patch ];
|
||||
};
|
||||
|
||||
addPackages = self: with self;
|
||||
let
|
||||
qtModule =
|
||||
import ../qtModule.nix
|
||||
{
|
||||
|
@ -131,8 +133,6 @@ let
|
|||
}
|
||||
{ inherit self srcs patches; };
|
||||
|
||||
addPackages = self: with self;
|
||||
let
|
||||
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
|
||||
|
|
|
@ -118,6 +118,8 @@ let
|
|||
qtwayland = [ ./qtwayland-libdrm-build.patch ];
|
||||
};
|
||||
|
||||
addPackages = self: with self;
|
||||
let
|
||||
qtModule =
|
||||
import ../qtModule.nix
|
||||
{
|
||||
|
@ -132,8 +134,6 @@ let
|
|||
}
|
||||
{ inherit self srcs patches; };
|
||||
|
||||
addPackages = self: with self;
|
||||
let
|
||||
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
|
||||
|
|
|
@ -80,6 +80,8 @@ let
|
|||
qttools = [ ./qttools.patch ];
|
||||
};
|
||||
|
||||
addPackages = self: with self;
|
||||
let
|
||||
qtModule =
|
||||
import ../qtModule.nix
|
||||
{
|
||||
|
@ -94,8 +96,6 @@ let
|
|||
}
|
||||
{ inherit self srcs patches; };
|
||||
|
||||
addPackages = self: with self;
|
||||
let
|
||||
callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
|
||||
in {
|
||||
|
||||
|
@ -192,6 +192,4 @@ let
|
|||
} ../hooks/wrap-qt-apps-hook.sh;
|
||||
};
|
||||
|
||||
self = lib.makeScope newScope addPackages;
|
||||
|
||||
in self
|
||||
in lib.makeScope newScope addPackages
|
||||
|
|
|
@ -22,11 +22,11 @@
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "python-heatclient";
|
||||
version = "2.4.0";
|
||||
version = "2.5.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "b53529eb73f08c384181a580efaa42293cc35e0e1ecc4b0bc14a5c7b202019bb";
|
||||
sha256 = "b610748eb3f18f6bd762e0808accdf872308289a77c3b19ed2d8b9f306393a42";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -20,11 +20,11 @@
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "python-ironicclient";
|
||||
version = "4.9.0";
|
||||
version = "4.10.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "99d45e914b2845731ac44fbfc63ae3e1bd52211396748797b588f2adc4b3f341";
|
||||
sha256 = "8f3ad8ae1fc4df524ea05a458ad2567b58144e881807dbbb985e282902d732fd";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -14,11 +14,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "python-keystoneclient";
|
||||
version = "4.3.0";
|
||||
version = "4.4.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "fd09b7790ce53c20dc94318ec4d76e1cf71908aed59baeb4c7a61c17afd3aad5";
|
||||
sha256 = "fc17ca9a1aa493104b496ba347f12507f271b5b6e819f4de4aef6574918aa071";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nexus";
|
||||
version = "3.32.0-03";
|
||||
version = "3.37.3-02";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-${version}-unix.tar.gz";
|
||||
sha256 = "17cgbpv1id4gbp3c42pqc3dxnh36cm1c77y7dysskyml4qfh5f7m";
|
||||
sha256 = "sha256-wdtDGQjFp2tEAVxVXW70UXq/CoaET6/+4PXWxiNZMS0=";
|
||||
};
|
||||
|
||||
preferLocalBuild = true;
|
||||
|
|
|
@ -4,14 +4,18 @@ stdenv.mkDerivation rec {
|
|||
pname = "andyetitmoves";
|
||||
version = "1.2.2";
|
||||
|
||||
src = if stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux"
|
||||
src =
|
||||
if stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux"
|
||||
then
|
||||
let postfix = if stdenv.hostPlatform.system == "i686-linux" then "i386" else "x86_64";
|
||||
let
|
||||
postfix = if stdenv.hostPlatform.system == "i686-linux" then "i386" else "x86_64";
|
||||
commercialName = "${pname}-${version}_${postfix}.tar.gz";
|
||||
demoUrl = "http://www.andyetitmoves.net/demo/${pname}Demo-${version}_${postfix}.tar.gz";
|
||||
in
|
||||
if commercialVersion
|
||||
then requireFile {
|
||||
then
|
||||
requireFile
|
||||
{
|
||||
message = ''
|
||||
We cannot download the commercial version automatically, as you require a license.
|
||||
Once you bought a license, you need to add your downloaded version to the nix store.
|
||||
|
@ -19,21 +23,22 @@ stdenv.mkDerivation rec {
|
|||
directory where yousaved it.
|
||||
'';
|
||||
name = commercialName;
|
||||
sha256 = if stdenv.hostPlatform.system == "i686-linux"
|
||||
sha256 =
|
||||
if stdenv.hostPlatform.system == "i686-linux"
|
||||
then "15wvzmmidvykwjrbnq70h5jrvnjx1hcrm0357qj85q4aqbzavh01"
|
||||
else "1v8z16qa9ka8sf7qq45knsxj87s6sipvv3a7xq11pb5xk08fb2ql";
|
||||
}
|
||||
else fetchurl {
|
||||
else
|
||||
fetchurl {
|
||||
url = demoUrl;
|
||||
sha256 = if stdenv.hostPlatform.system == "i686-linux"
|
||||
sha256 =
|
||||
if stdenv.hostPlatform.system == "i686-linux"
|
||||
then "0f14vrrbq05hsbdajrb5y9za65fpng1lc8f0adb4aaz27x7sh525"
|
||||
else "0mg41ya0b27blq3b5498kwl4rj46dj21rcd7qd0rw1kyvr7sx4v4";
|
||||
}
|
||||
else
|
||||
throw "And Yet It Moves nix package only supports linux and intel cpu's.";
|
||||
|
||||
phases = "unpackPhase installPhase";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{opt/andyetitmoves,bin}
|
||||
cp -r * $out/opt/andyetitmoves/
|
||||
|
@ -56,17 +61,13 @@ stdenv.mkDerivation rec {
|
|||
|
||||
buildInputs = [ libvorbis libogg libtheora SDL libXft SDL_image zlib libX11 libpng openal ];
|
||||
|
||||
meta = {
|
||||
meta = with lib; {
|
||||
description = "Physics/Gravity Platform game";
|
||||
|
||||
longDescription = ''
|
||||
And Yet It Moves is an award-winning physics-based platform game in which players rotate the game world at will to solve challenging puzzles. Tilting the world turns walls into floors, slides into platforms, and stacks of rocks into dangerous hazards.
|
||||
'';
|
||||
|
||||
homepage = "http://www.andyetitmoves.net/";
|
||||
|
||||
license = lib.licenses.unfree;
|
||||
|
||||
maintainers = with lib.maintainers; [bluescreen303];
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ bluescreen303 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "phoronix-test-suite";
|
||||
version = "10.6.1";
|
||||
version = "10.8.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://phoronix-test-suite.com/releases/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-ixDMd9/tO793yVvIE60n5gytfDAmcuA631/ZON9v6LA=";
|
||||
sha256 = "sha256-HvyMkafW2QdSlizWkOsv9U8VSN9Y9Z3F1jt1PwF9nuo=";
|
||||
};
|
||||
|
||||
buildInputs = [ php ];
|
||||
|
|
55
pkgs/tools/package-management/comma/default.nix
Normal file
55
pkgs/tools/package-management/comma/default.nix
Normal file
|
@ -0,0 +1,55 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, fetchFromGitHub
|
||||
, linkFarm
|
||||
, nix-index
|
||||
, fzy
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
# nix-index takes a little while to run and the contents don't change
|
||||
# meaningfully very often.
|
||||
indexCache = fetchurl {
|
||||
url = "https://github.com/Mic92/nix-index-database/releases/download/2021-12-12/index-x86_64-linux";
|
||||
sha256 = "sha256-+SoG5Qz2KWA/nIWXE6SLpdi8MDqTs8LY90fGZxGKOiA=";
|
||||
};
|
||||
|
||||
# nix-locate needs the --db argument to be a directory containing a file
|
||||
# named "files".
|
||||
nixIndexDB = linkFarm "nix-index-cache" [
|
||||
{ name = "files"; path = indexCache; }
|
||||
];
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "comma";
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nix-community";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-WBIQmwlkb/GMoOq+Dnyrk8YmgiM/wJnc5HYZP8Uw72E=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace , \
|
||||
--replace '$PREBUILT_NIX_INDEX_DB' "${nixIndexDB}" \
|
||||
--replace nix-locate "${nix-index}/bin/nix-locate" \
|
||||
--replace fzy "${fzy}/bin/fzy"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -Dm755 , -t $out/bin
|
||||
ln -s $out/bin/, $out/bin/comma
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/nix-community/comma";
|
||||
description = "Run software without installing it";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ Enzime ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "nfpm";
|
||||
version = "2.11.2";
|
||||
version = "2.11.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "goreleaser";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-ycb5331o/ILz+eUGGipBrjI7/pYnmHUSDRc4UNpJO5s=";
|
||||
sha256 = "sha256-xwziGGdFBmPpLRlBBficioULISt8WjGBocbrQUXa8CY=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-RaAb8QDFp/7TolsNZqcXurozr3vvK0SRyyy2h8MPhnk=";
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "acpica-tools";
|
||||
version = "20210930";
|
||||
version = "20211217";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://acpica.org/sites/acpica/files/acpica-unix-${version}.tar.gz";
|
||||
sha256 = "08a8q174ac3jwxnd8q8iqc3cckwc2f7ncrc6f3171g0n38l2mn1w";
|
||||
sha256 = "14jrrdrl3sw438791zf2v6rjvhiq78yl7hz2ldzp83c251cgh495";
|
||||
};
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-O3";
|
||||
|
|
|
@ -2548,6 +2548,8 @@ with pkgs;
|
|||
|
||||
cz-cli = callPackage ../applications/version-management/cz-cli {};
|
||||
|
||||
comma = callPackage ../tools/package-management/comma { };
|
||||
|
||||
common-licenses = callPackage ../data/misc/common-licenses {};
|
||||
|
||||
compactor = callPackage ../applications/networking/compactor { };
|
||||
|
|
Loading…
Reference in a new issue