Merge branch 'staging-next' into staging

This commit is contained in:
Vladimír Čunát 2023-08-05 07:41:05 +02:00
commit d5732d9669
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
825 changed files with 13118 additions and 18490 deletions

1
.gitignore vendored

@ -9,6 +9,7 @@
outputs/
result-*
result
repl-result-*
!pkgs/development/python-modules/result
/doc/NEWS.html
/doc/NEWS.txt

@ -558,7 +558,7 @@ buildPythonPackage rec {
hash = "sha256-miW//pnOmww2i6SOGbkrAIdc/JMDT4FJLqdMFojZeoY=";
};
sourceRoot = "source/bindings/python";
sourceRoot = "${src.name}/bindings/python";
nativeBuildInputs = [
cargo

@ -22,7 +22,7 @@ Since release 15.09 there is a new TeX Live packaging that lives entirely under
texlive.combine {
# inherit (texlive) whatever-you-want;
pkgFilter = pkg:
pkg.tlType == "run" || pkg.tlType == "bin" || pkg.pname == "cm-super";
pkg.tlType == "run" || pkg.tlType == "bin" || pkg.hasManpages || pkg.pname == "cm-super";
# elem tlType [ "run" "bin" "doc" "source" ]
# there are also other attributes: version, name
}

@ -70,7 +70,7 @@ A list of the maintainers of this Nix expression. Maintainers are defined in [`n
### `mainProgram` {#var-meta-mainProgram}
The name of the main binary for the package. This affects the binary `nix run` executes and falls back to the name of the package. Example: `"rg"`
The name of the main binary for the package. This affects the binary `nix run` executes. Example: `"rg"`
### `priority` {#var-meta-priority}

@ -614,14 +614,19 @@ The list of source files or directories to be unpacked or copied. One of these m
##### `sourceRoot` {#var-stdenv-sourceRoot}
After running `unpackPhase`, the generic builder changes the current directory to the directory created by unpacking the sources. If there are multiple source directories, you should set `sourceRoot` to the name of the intended directory. Set `sourceRoot = ".";` if you use `srcs` and control the unpack phase yourself.
After unpacking all of `src` and `srcs`, if neither of `sourceRoot` and `setSourceRoot` are set, `unpackPhase` of the generic builder checks that the unpacking produced a single directory and moves the current working directory into it.
By default the `sourceRoot` is set to `"source"`. If you want to point to a sub-directory inside your project, you therefore need to set `sourceRoot = "source/my-sub-directory"`.
If `unpackPhase` produces multiple source directories, you should set `sourceRoot` to the name of the intended directory.
You can also set `sourceRoot = ".";` if you want to control it yourself in a later phase.
For example, if your want your build to start in a sub-directory inside your sources, and you are using `fetchzip`-derived `src` (like `fetchFromGitHub` or similar), you need to set `sourceRoot = "${src.name}/my-sub-directory"`.
##### `setSourceRoot` {#var-stdenv-setSourceRoot}
Alternatively to setting `sourceRoot`, you can set `setSourceRoot` to a shell command to be evaluated by the unpack phase after the sources have been unpacked. This command must set `sourceRoot`.
For example, if you are using `fetchurl` on an archive file that gets unpacked into a single directory the name of which changes between package versions, and you want your build to start in its sub-directory, you need to set `setSourceRoot = "sourceRoot=$(echo */my-sub-directory)";`, or in the case of multiple sources, you could use something more specific, like `setSourceRoot = "sourceRoot=$(echo ${pname}-*/my-sub-directory)";`.
##### `preUnpack` {#var-stdenv-preUnpack}
Hook executed at the start of the unpack phase.

@ -132,10 +132,9 @@ rec {
{ shortName = licstr; }
);
/* Get the path to the main program of a derivation with either
meta.mainProgram or pname or name
/* Get the path to the main program of a package based on meta.mainProgram
Type: getExe :: derivation -> string
Type: getExe :: package -> string
Example:
getExe pkgs.hello
@ -144,5 +143,9 @@ rec {
=> "/nix/store/am9ml4f4ywvivxnkiaqwr0hyxka1xjsf-mustache-go-1.3.0/bin/mustache"
*/
getExe = x:
"${lib.getBin x}/bin/${x.meta.mainProgram or (lib.getName x)}";
"${lib.getBin x}/bin/${x.meta.mainProgram or (
# This could be turned into an error when 23.05 is at end of life
lib.warn "getExe: Package ${lib.strings.escapeNixIdentifier x.meta.name or x.pname or x.name} does not have the meta.mainProgram attribute. We'll assume that the main program has the same name for now, but this behavior is deprecated, because it leads to surprising errors when the assumption does not hold. If the package has a main program, please set `meta.mainProgram` in its definition to make this warning go away. Otherwise, if the package does not have a main program, or if you don't control its definition, specify the full path to the program, such as \"\${lib.getBin foo}/bin/bar\"."
lib.getName x
)}";
}

@ -187,6 +187,27 @@ Decision: All functions remove trailing slashes in their results.
</details>
### Prefer returning subpaths over components
[subpath-preference]: #prefer-returning-subpaths-over-components
Observing: Functions could return subpaths or lists of path component strings.
Considering: Subpaths are used as inputs for some functions. Using them for outputs, too, makes the library more consistent and composable.
Decision: Subpaths should be preferred over list of path component strings.
<details>
<summary>Arguments</summary>
- (+) It is consistent with functions accepting subpaths, making the library more composable
- (-) It is less efficient when the components are needed, because after creating the normalised subpath string, it will have to be parsed into components again
- (+) If necessary, we can still make it faster by adding builtins to Nix
- (+) Alternatively if necessary, versions of these functions that return components could later still be introduced.
- (+) It makes the path library simpler because there's only two types (paths and subpaths). Only `lib.path.subpath.components` can be used to get a list of components.
And once we have a list of component strings, `lib.lists` and `lib.strings` can be used to operate on them.
For completeness, `lib.path.subpath.join` allows converting the list of components back to a subpath.
</details>
## Other implementations and references
- [Rust](https://doc.rust-lang.org/std/path/struct.Path.html)

@ -438,6 +438,37 @@ in /* No rec! Add dependencies on this file at the top. */ {
${subpathInvalidReason path}''
) 0 subpaths;
/*
Split [a subpath](#function-library-lib.path.subpath.isValid) into its path component strings.
Throw an error if the subpath isn't valid.
Note that the returned path components are also valid subpath strings, though they are intentionally not [normalised](#function-library-lib.path.subpath.normalise).
Laws:
- Splitting a subpath into components and [joining](#function-library-lib.path.subpath.join) the components gives the same subpath but [normalised](#function-library-lib.path.subpath.normalise):
subpath.join (subpath.components s) == subpath.normalise s
Type:
subpath.components :: String -> [ String ]
Example:
subpath.components "."
=> [ ]
subpath.components "./foo//bar/./baz/"
=> [ "foo" "bar" "baz" ]
subpath.components "/foo"
=> <error>
*/
subpath.components =
subpath:
assert assertMsg (isValid subpath) ''
lib.path.subpath.components: Argument is not a valid subpath string:
${subpathInvalidReason subpath}'';
splitRelPath subpath;
/* Normalise a subpath. Throw an error if the subpath isn't valid, see
`lib.path.subpath.isValid`

@ -238,6 +238,19 @@ let
expr = (builtins.tryEval (subpath.normalise "..")).success;
expected = false;
};
testSubpathComponentsExample1 = {
expr = subpath.components ".";
expected = [ ];
};
testSubpathComponentsExample2 = {
expr = subpath.components "./foo//bar/./baz/";
expected = [ "foo" "bar" "baz" ];
};
testSubpathComponentsExample3 = {
expr = (builtins.tryEval (subpath.components "/foo")).success;
expected = false;
};
};
in
if cases == [] then "Unit tests successful"

@ -69,6 +69,28 @@ checkConfigOutput '^"one two"$' config.result ./shorthand-meta.nix
checkConfigOutput '^true$' config.result ./test-mergeAttrDefinitionsWithPrio.nix
# Check that a module argument is passed, also when a default is available
# (but not needed)
#
# When the default is needed, we currently fail to do what the users expect, as
# we pass our own argument anyway, even if it *turns out* not to exist.
#
# The reason for this is that we don't know at invocation time what is in the
# _module.args option. That value is only available *after* all modules have been
# invoked.
#
# Hypothetically, Nix could help support this by giving access to the default
# values, through a new built-in function.
# However the default values are allowed to depend on other arguments, so those
# would have to be passed in somehow, making this not just a getter but
# something more complicated.
#
# At that point we have to wonder whether the extra complexity is worth the cost.
# Another - subjective - reason not to support it is that default values
# contradict the notion that an option has a single value, where _module.args
# is the option.
checkConfigOutput '^true$' config.result ./module-argument-default.nix
# types.pathInStore
checkConfigOutput '".*/store/0lz9p8xhf89kb1c1kk6jxrzskaiygnlh-bash-5.2-p15.drv"' config.pathInStore.ok1 ./types.nix
checkConfigOutput '".*/store/0fb3ykw9r5hpayd05sr0cizwadzq1d8q-bash-5.2-p15"' config.pathInStore.ok2 ./types.nix

@ -0,0 +1,9 @@
{ a ? false, lib, ... }: {
options = {
result = lib.mkOption {};
};
config = {
_module.args.a = true;
result = a;
};
}

@ -418,6 +418,12 @@
githubId = 1250775;
name = "Adolfo E. García Castro";
};
adriandole = {
email = "adrian@dole.tech";
github = "adriandole";
githubId = 25236206;
name = "Adrian Dole";
};
AdsonCicilioti = {
name = "Adson Cicilioti";
email = "adson.cicilioti@live.com";
@ -644,6 +650,13 @@
githubId = 82811;
name = "Aldo Borrero";
};
alejandrosame = {
email = "alejandrosanchzmedina@gmail.com";
matrix = "@alejandrosame:matrix.org";
github = "alejandrosame";
githubId = 1078000;
name = "Alejandro Sánchez Medina";
};
aleksana = {
email = "me@aleksana.moe";
github = "Aleksanaa";
@ -2778,6 +2791,12 @@
githubId = 3471749;
name = "Claudio Bley";
};
cbourjau = {
email = "christianb@posteo.de";
github = "cbourjau";
githubId = 3288058;
name = "Christian Bourjau";
};
cbrewster = {
email = "cbrewster@hey.com";
github = "cbrewster";
@ -6051,6 +6070,12 @@
fingerprint = "D0CF 440A A703 E0F9 73CB A078 82BB 70D5 41AE 2DB4";
}];
};
gerg-l = {
email = "gregleyda@proton.me";
github = "Gerg-L";
githubId = 88247690;
name = "Greg Leyda";
};
geri1701 = {
email = "geri@sdf.org";
github = "geri1701";
@ -9908,6 +9933,15 @@
githubId = 1168435;
name = "Ludovic Courtès";
};
ludovicopiero = {
email = "ludovicopiero@pm.me";
github = "ludovicopiero";
githubId = 44255157;
name = "Ludovico Piero";
keys = [{
fingerprint = "72CA 4F61 46C6 0DAB 6193 4D35 3911 DD27 6CFE 779C";
}];
};
lufia = {
email = "lufia@lufia.org";
github = "lufia";
@ -15535,6 +15569,12 @@
githubId = 3789764;
name = "skykanin";
};
slbtty = {
email = "shenlebantongying@gmail.com";
github = "shenlebantongying";
githubId = 20123683;
name = "Shenleban Tongying";
};
sleexyz = {
email = "freshdried@gmail.com";
github = "sleexyz";

@ -76,6 +76,8 @@
- PHP now defaults to PHP 8.2, updated from 8.1.
- The ISC DHCP package and corresponding module have been removed, because they are end of life upstream. See https://www.isc.org/blogs/isc-dhcp-eol/ for details and switch to a different DHCP implementation like kea or dnsmasq.
- `util-linux` is now supported on Darwin and is no longer an alias to `unixtools`. Use the `unixtools.util-linux` package for access to the Apple variants of the utilities.
- `services.keyd` changed API. Now you can create multiple configuration files.
@ -112,6 +114,8 @@
- The default `kops` version is now 1.27.0 and support for 1.24 and older has been dropped.
- `pharo` has been updated to latest stable (PharoVM 10.0.5), which is compatible with the latest stable and oldstable images (Pharo 10 and 11). The VM in question is the 64bit Spur. The 32bit version has been dropped due to lack of maintenance. The Cog VM has been deleted because it is severily outdated. Finally, the `pharo-launcher` package has been deleted because it was not compatible with the newer VM, and due to lack of maintenance.
## Other Notable Changes {#sec-release-23.11-notable-changes}
- The Cinnamon module now enables XDG desktop integration by default. If you are experiencing collisions related to xdg-desktop-portal-gtk you can safely remove `xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];` from your NixOS configuration.
@ -158,6 +162,8 @@ The module update takes care of the new config syntax and the data itself (user
## Nixpkgs internals {#sec-release-23.11-nixpkgs-internals}
- The use of `sourceRoot = "source";`, `sourceRoot = "source/subdir";`, and similar lines in package derivations using the default `unpackPhase` is deprecated as it requires `unpackPhase` to always produce a directory named "source". Use `sourceRoot = src.name`, `sourceRoot = "${src.name}/subdir";`, or `setSourceRoot = "sourceRoot=$(echo */subdir)";` or similar instead.
- The `django` alias in the python package set was upgraded to Django 4.x.
Applications that consume Django should always pin their python environment
to a compatible major version, so they can move at their own pace.

@ -15,8 +15,6 @@ files using the same mechanism.
import json
import sys
import shutil
import os
import tempfile
from pathlib import Path
@ -92,12 +90,13 @@ def main() -> None:
print("Partition config is empty.")
sys.exit(1)
temp = tempfile.mkdtemp()
shutil.copytree(repart_definitions, temp, dirs_exist_ok=True)
target_dir = Path("amended-repart.d")
target_dir.mkdir()
shutil.copytree(repart_definitions, target_dir, dirs_exist_ok=True)
for name, config in partition_config.items():
definition = Path(f"{temp}/{name}.conf")
os.chmod(definition, 0o644)
definition = target_dir.joinpath(f"{name}.conf")
definition.chmod(0o644)
contents = config.get("contents")
add_contents_to_definition(definition, contents)
@ -106,7 +105,7 @@ def main() -> None:
strip_nix_store_prefix = config.get("stripStorePaths")
add_closure_to_definition(definition, closure, strip_nix_store_prefix)
print(temp)
print(target_dir.absolute())
if __name__ == "__main__":

@ -865,7 +865,6 @@
./services/networking/croc.nix
./services/networking/dante.nix
./services/networking/dhcpcd.nix
./services/networking/dhcpd.nix
./services/networking/dnscache.nix
./services/networking/dnscrypt-proxy2.nix
./services/networking/dnscrypt-wrapper.nix

@ -10,6 +10,11 @@ in
};
config = lib.mkIf cfg.enable {
assertions = [
{ assertion = false;
message = "The oddjob service was found to be broken without NixOS test or maintainer. Please take ownership of this service.";
}
];
systemd.packages = [ cfg.package ];
systemd.services.oddjobd = {
@ -21,7 +26,7 @@ in
serviceConfig = {
Type = "dbus";
BusName = "org.freedesktop.oddjob";
ExecStart = "${lib.getExe cfg.package}/bin/oddjobd";
ExecStart = "${lib.getBin cfg.package}/bin/oddjobd";
};
};
};

@ -114,6 +114,16 @@ in
(mkRemovedOptionModule [ "services" "rtsp-simple-server" ] "Package has been completely rebranded by upstream as mediamtx, and thus the service and the package were renamed in NixOS as well.")
(mkRemovedOptionModule [ "i18n" "inputMethod" "fcitx" ] "The fcitx module has been removed. Please use fcitx5 instead")
(mkRemovedOptionModule [ "services" "dhcpd4" ] ''
The dhcpd4 module has been removed because ISC DHCP reached its end of life.
See https://www.isc.org/blogs/isc-dhcp-eol/ for details.
Please switch to a different implementation like kea or dnsmasq.
'')
(mkRemovedOptionModule [ "services" "dhcpd6" ] ''
The dhcpd6 module has been removed because ISC DHCP reached its end of life.
See https://www.isc.org/blogs/isc-dhcp-eol/ for details.
Please switch to a different implementation like kea or dnsmasq.
'')
# Do NOT add any option renames here, see top of the file
];

@ -62,7 +62,7 @@ config.security.apparmor.includes = {
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/base"
r ${pkgs.stdenv.cc.libc}/share/locale/**,
r ${pkgs.stdenv.cc.libc}/share/locale.alias,
${lib.optionalString (pkgs.glibcLocales != null) "r ${pkgs.glibcLocales}/lib/locale/locale-archive,"}
r ${config.i18n.glibcLocales}/lib/locale/locale-archive,
${etcRule "localtime"}
r ${pkgs.tzdata}/share/zoneinfo/**,
r ${pkgs.stdenv.cc.libc}/share/i18n/**,
@ -72,7 +72,7 @@ config.security.apparmor.includes = {
# bash inspects filesystems at startup
# and /etc/mtab is linked to /proc/mounts
@{PROC}/mounts
r @{PROC}/mounts,
# system-wide bash configuration
'' + lib.concatMapStringsSep "\n" etcRule [
@ -211,6 +211,9 @@ config.security.apparmor.includes = {
"abstractions/nis" = ''
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/nis"
'';
"abstractions/nss-systemd" = ''
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/nss-systemd"
'';
"abstractions/nvidia" = ''
include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/nvidia"
${etcRule "vdpau_wrapper.cfg"}
@ -279,6 +282,8 @@ config.security.apparmor.includes = {
r /var/lib/acme/*/chain.pem,
r /var/lib/acme/*/fullchain.pem,
r /etc/pki/tls/certs/,
'' + lib.concatMapStringsSep "\n" etcRule [
"ssl/certs/ca-certificates.crt"
"ssl/certs/ca-bundle.crt"

@ -451,6 +451,7 @@ in {
"eufylife_ble"
"esphome"
"fjaraskupan"
"gardena_bluetooth"
"govee_ble"
"homekit_controller"
"inkbird"

@ -15,6 +15,7 @@ let
APP_NAME = ${cfg.appName}
RUN_USER = ${cfg.user}
RUN_MODE = prod
WORK_PATH = ${cfg.stateDir}
${generators.toINI {} cfg.settings}

@ -1,230 +0,0 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg4 = config.services.dhcpd4;
cfg6 = config.services.dhcpd6;
writeConfig = postfix: cfg: pkgs.writeText "dhcpd.conf"
''
default-lease-time 600;
max-lease-time 7200;
${optionalString (!cfg.authoritative) "not "}authoritative;
ddns-update-style interim;
log-facility local1; # see dhcpd.nix
${cfg.extraConfig}
${lib.concatMapStrings
(machine: ''
host ${machine.hostName} {
hardware ethernet ${machine.ethernetAddress};
fixed-address${
optionalString (postfix == "6") postfix
} ${machine.ipAddress};
}
'')
cfg.machines
}
'';
dhcpdService = postfix: cfg:
let
configFile =
if cfg.configFile != null
then cfg.configFile
else writeConfig postfix cfg;
leaseFile = "/var/lib/dhcpd${postfix}/dhcpd.leases";
args = [
"@${pkgs.dhcp}/sbin/dhcpd" "dhcpd${postfix}" "-${postfix}"
"-pf" "/run/dhcpd${postfix}/dhcpd.pid"
"-cf" configFile
"-lf" leaseFile
] ++ cfg.extraFlags
++ cfg.interfaces;
in
optionalAttrs cfg.enable {
"dhcpd${postfix}" = {
description = "DHCPv${postfix} server";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
preStart = "touch ${leaseFile}";
serviceConfig = {
ExecStart = concatMapStringsSep " " escapeShellArg args;
Type = "forking";
Restart = "always";
DynamicUser = true;
User = "dhcpd";
Group = "dhcpd";
AmbientCapabilities = [
"CAP_NET_RAW" # to send ICMP messages
"CAP_NET_BIND_SERVICE" # to bind on DHCP port (67)
];
StateDirectory = "dhcpd${postfix}";
RuntimeDirectory = "dhcpd${postfix}";
PIDFile = "/run/dhcpd${postfix}/dhcpd.pid";
};
};
};
machineOpts = { ... }: {
options = {
hostName = mkOption {
type = types.str;
example = "foo";
description = lib.mdDoc ''
Hostname which is assigned statically to the machine.
'';
};
ethernetAddress = mkOption {
type = types.str;
example = "00:16:76:9a:32:1d";
description = lib.mdDoc ''
MAC address of the machine.
'';
};
ipAddress = mkOption {
type = types.str;
example = "192.168.1.10";
description = lib.mdDoc ''
IP address of the machine.
'';
};
};
};
dhcpConfig = postfix: {
enable = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Whether to enable the DHCPv${postfix} server.
'';
};
extraConfig = mkOption {
type = types.lines;
default = "";
example = ''
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.5;
option domain-name-servers 130.161.158.4, 130.161.33.17, 130.161.180.1;
option domain-name "example.org";
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
}
'';
description = lib.mdDoc ''
Extra text to be appended to the DHCP server configuration
file. Currently, you almost certainly need to specify something
there, such as the options specifying the subnet mask, DNS servers,
etc.
'';
};
extraFlags = mkOption {
type = types.listOf types.str;
default = [];
description = lib.mdDoc ''
Additional command line flags to be passed to the dhcpd daemon.
'';
};
configFile = mkOption {
type = types.nullOr types.path;
default = null;
description = lib.mdDoc ''
The path of the DHCP server configuration file. If no file
is specified, a file is generated using the other options.
'';
};
interfaces = mkOption {
type = types.listOf types.str;
default = ["eth0"];
description = lib.mdDoc ''
The interfaces on which the DHCP server should listen.
'';
};
machines = mkOption {
type = with types; listOf (submodule machineOpts);
default = [];
example = [
{ hostName = "foo";
ethernetAddress = "00:16:76:9a:32:1d";
ipAddress = "192.168.1.10";
}
{ hostName = "bar";
ethernetAddress = "00:19:d1:1d:c4:9a";
ipAddress = "192.168.1.11";
}
];
description = lib.mdDoc ''
A list mapping Ethernet addresses to IPv${postfix} addresses for the
DHCP server.
'';
};
authoritative = mkOption {
type = types.bool;
default = true;
description = lib.mdDoc ''
Whether the DHCP server shall send DHCPNAK messages to misconfigured
clients. If this is not done, clients may be unable to get a correct
IP address after changing subnets until their old lease has expired.
'';
};
};
in
{
imports = [
(mkRenamedOptionModule [ "services" "dhcpd" ] [ "services" "dhcpd4" ])
] ++ flip map [ "4" "6" ] (postfix:
mkRemovedOptionModule [ "services" "dhcpd${postfix}" "stateDir" ] ''
The DHCP server state directory is now managed with the systemd's DynamicUser mechanism.
This means the directory is named after the service (dhcpd${postfix}), created under
/var/lib/private/ and symlinked to /var/lib/.
''
);
###### interface
options = {
services.dhcpd4 = dhcpConfig "4";
services.dhcpd6 = dhcpConfig "6";
};
###### implementation
config = mkIf (cfg4.enable || cfg6.enable) {
systemd.services = dhcpdService "4" cfg4 // dhcpdService "6" cfg6;
warnings = [
''
The dhcpd4 and dhcpd6 modules will be removed from NixOS 23.11, because ISC DHCP reached its end of life.
See https://www.isc.org/blogs/isc-dhcp-eol/ for details.
Please switch to a different implementation like kea, systemd-networkd or dnsmasq.
''
];
};
}

@ -355,5 +355,37 @@ in
'';
destination = "/share/dbus-1/system.d/murmur.conf";
})];
security.apparmor.policies."bin.mumble-server".profile = ''
include <tunables/global>
${cfg.package}/bin/{mumble-server,.mumble-server-wrapped} {
include <abstractions/base>
include <abstractions/nameservice>
include <abstractions/ssl_certs>
include "${pkgs.apparmorRulesFromClosure { name = "mumble-server"; } cfg.package}"
pix ${cfg.package}/bin/.mumble-server-wrapped,
r ${config.environment.etc."os-release".source},
r ${config.environment.etc."lsb-release".source},
owner rwk /var/lib/murmur/murmur.sqlite,
owner rw /var/lib/murmur/murmur.sqlite-journal,
owner r /var/lib/murmur/,
r /run/murmur/murmurd.pid,
r /run/murmur/murmurd.ini,
r ${configFile},
'' + optionalString (cfg.logFile != null) ''
rw ${cfg.logFile},
'' + optionalString (cfg.sslCert != "") ''
r ${cfg.sslCert},
'' + optionalString (cfg.sslKey != "") ''
r ${cfg.sslKey},
'' + optionalString (cfg.sslCa != "") ''
r ${cfg.sslCa},
'' + optionalString (cfg.dbus != null) ''
dbus bus=${cfg.dbus}
'' + ''
}
'';
};
}

@ -122,8 +122,8 @@ in
};
log_level = lib.mkOption {
description = lib.mdDoc "Log level of the server.";
default = "default";
type = lib.types.enum [ "default" "verbose" "perfbasic" "perffull" ];
default = "info";
type = lib.types.enum [ "info" "debug" "trace" ];
};
role = lib.mkOption {
description = lib.mdDoc "The role of this server. This affects the replication relationship and thereby available features.";
@ -236,17 +236,23 @@ in
{
StateDirectory = "kanidm";
StateDirectoryMode = "0700";
RuntimeDirectory = "kanidmd";
ExecStart = "${pkgs.kanidm}/bin/kanidmd server -c ${serverConfigFile}";
User = "kanidm";
Group = "kanidm";
BindPaths = [
# To create the socket
"/run/kanidmd:/run/kanidmd"
];
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
# This would otherwise override the CAP_NET_BIND_SERVICE capability.
PrivateUsers = lib.mkForce false;
# Port needs to be exposed to the host network
PrivateNetwork = lib.mkForce false;
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
TemporaryFileSystem = "/:ro";
}
];
@ -273,6 +279,8 @@ in
"-/etc/static/kanidm"
"-/etc/ssl"
"-/etc/static/ssl"
"-/etc/passwd"
"-/etc/group"
];
BindPaths = [
# To create the socket
@ -327,6 +335,9 @@ in
# These paths are hardcoded
environment.etc = lib.mkMerge [
(lib.mkIf cfg.enableServer {
"kanidm/server.toml".source = serverConfigFile;
})
(lib.mkIf options.services.kanidm.clientSettings.isDefined {
"kanidm/config".source = clientConfigFile;
})

@ -130,5 +130,17 @@ in
environment = cfg.config;
};
environment.systemPackages = [ cfg.package ];
security.apparmor.policies."bin.miniflux".profile = ''
include <tunables/global>
${cfg.package}/bin/miniflux {
include <abstractions/base>
include <abstractions/nameservice>
include <abstractions/ssl_certs>
include "${pkgs.apparmorRulesFromClosure { name = "miniflux"; } cfg.package}"
r ${cfg.package}/bin/miniflux,
r @{sys}/kernel/mm/transparent_hugepage/hpage_pmd_size,
}
'';
};
}

@ -335,7 +335,7 @@ let
+ ";"))
+ "
listen ${addr}:${toString port} "
+ optionalString (ssl && vhost.http2) "http2 "
+ optionalString (ssl && vhost.http2 && oldHTTP2) "http2 "
+ optionalString ssl "ssl "
+ optionalString vhost.default "default_server "
+ optionalString vhost.reuseport "reuseport "
@ -380,6 +380,9 @@ let
server {
${concatMapStringsSep "\n" listenString hostListen}
server_name ${vhost.serverName} ${concatStringsSep " " vhost.serverAliases};
${optionalString (hasSSL && vhost.http2 && !oldHTTP2) ''
http2 on;
''}
${optionalString (hasSSL && vhost.quic) ''
http3 ${if vhost.http3 then "on" else "off"};
http3_hq ${if vhost.http3_hq then "on" else "off"};
@ -463,6 +466,8 @@ let
);
mkCertOwnershipAssertion = import ../../../security/acme/mk-cert-ownership-assertion.nix;
oldHTTP2 = versionOlder cfg.package.version "1.25.1";
in
{

@ -147,14 +147,6 @@ with lib;
defaultText = lib.literalExpression ''if config.proxmox.qemuConf.bios == "seabios" then "legacy" else "efi"'';
example = "hybrid";
};
additionalSpace = mkOption {
type = types.str;
default = "512M";
description = lib.mdDoc ''
Additional disk space to be added to the image.
Defaults to 512M (Megabytes), Suffix can also be specified with `G` (gigabyte) or `K` (kilobyte).
'';
};
filenameSuffix = mkOption {
type = types.str;
default = config.proxmox.qemuConf.name;
@ -205,7 +197,7 @@ with lib;
];
system.build.VMA = import ../../lib/make-disk-image.nix {
name = "proxmox-${cfg.filenameSuffix}";
inherit (cfg) partitionTableType additionalSpace;
inherit (cfg) partitionTableType;
postVM = let
# Build qemu with PVE's patch that adds support for the VMA format
vma = (pkgs.qemu_kvm.override {

@ -32,7 +32,15 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
in
''
with subtest("Wait for login"):
machine.wait_for_x()
# wait_for_x() checks graphical-session.target, which is expected to be
# inactive on Budgie before #228946 (i.e. systemd managed gnome-session) is
# done on upstream.
# https://github.com/BuddiesOfBudgie/budgie-desktop/blob/v10.7.2/src/session/budgie-desktop.in#L16
#
# Previously this was unconditionally touched by xsessionWrapper but was
# changed in #233981 (we have Budgie:GNOME in XDG_CURRENT_DESKTOP).
# machine.wait_for_x()
machine.wait_until_succeeds('journalctl -t gnome-session-binary --grep "Entering running state"')
machine.wait_for_file("${user.home}/.Xauthority")
machine.succeed("xauth merge ${user.home}/.Xauthority")

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
nodes.machine = { nodes, ... }:
let
user = nodes.machine.config.users.users.alice;
user = nodes.machine.users.users.alice;
in
{ imports = [ ./common/user-account.nix ];
@ -27,12 +27,20 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
};
testScript = { nodes, ... }: let
user = nodes.machine.config.users.users.alice;
user = nodes.machine.users.users.alice;
uid = toString user.uid;
xauthority = "/run/user/${uid}/gdm/Xauthority";
in ''
with subtest("Login to GNOME Flashback with GDM"):
machine.wait_for_x()
# wait_for_x() checks graphical-session.target, which is expected to be
# inactive on gnome-flashback before #228946 (i.e. systemd managed
# gnome-session) is done.
# https://github.com/NixOS/nixpkgs/pull/208060
#
# Previously this was unconditionally touched by xsessionWrapper but was
# changed in #233981 (we have GNOME-Flashback:GNOME in XDG_CURRENT_DESKTOP).
# machine.wait_for_x()
machine.wait_until_succeeds('journalctl -t gnome-session-binary --grep "Entering running state"')
# Wait for alice to be logged in"
machine.wait_for_unit("default.target", "${user.name}")
machine.wait_for_file("${xauthority}")

@ -67,9 +67,10 @@ import ./make-test-python.nix ({ pkgs, ... }:
''
start_all()
server.wait_for_unit("kanidm.service")
client.wait_for_unit("network-online.target")
with subtest("Test HTTP interface"):
server.wait_until_succeeds("curl -sf https://${serverDomain} | grep Kanidm")
server.wait_until_succeeds("curl -Lsf https://${serverDomain} | grep Kanidm")
with subtest("Test LDAP interface"):
server.succeed("ldapsearch -H ldaps://${serverDomain}:636 -b '${ldapBaseDN}' -x '(name=test)'")
@ -80,15 +81,11 @@ import ./make-test-python.nix ({ pkgs, ... }:
client.succeed("kanidm logout")
with subtest("Recover idm_admin account"):
# Must stop the server for account recovery or else kanidmd fails with
# "unable to lock kanidm exclusive lock at /var/lib/kanidm/kanidm.db.klock".
server.succeed("systemctl stop kanidm")
idm_admin_password = server.succeed("su - kanidm -c 'kanidmd recover-account -c ${serverConfigFile} idm_admin 2>&1 | rg -o \'[A-Za-z0-9]{48}\' '").strip().removeprefix("'").removesuffix("'")
server.succeed("systemctl start kanidm")
with subtest("Test unixd connection"):
client.wait_for_unit("kanidm-unixd.service")
# TODO: client.wait_for_file("/run/kanidm-unixd/sock")
client.wait_for_file("/run/kanidm-unixd/sock")
client.wait_until_succeeds("kanidm-unix status | grep working!")
with subtest("Test user creation"):

@ -25,6 +25,7 @@ in
default =
{ ... }:
{
security.apparmor.enable = true;
services.miniflux = {
enable = true;
inherit adminCredentialsFile;
@ -34,6 +35,7 @@ in
withoutSudo =
{ ... }:
{
security.apparmor.enable = true;
services.miniflux = {
enable = true;
inherit adminCredentialsFile;
@ -44,6 +46,7 @@ in
customized =
{ ... }:
{
security.apparmor.enable = true;
services.miniflux = {
enable = true;
config = {
@ -63,6 +66,7 @@ in
default.succeed(
"curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep '\"is_admin\":true'"
)
default.fail('journalctl -b --no-pager --grep "^audit: .*apparmor=\\"DENIED\\""')
withoutSudo.wait_for_unit("miniflux.service")
withoutSudo.wait_for_open_port(${toString defaultPort})
@ -70,6 +74,7 @@ in
withoutSudo.succeed(
"curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep '\"is_admin\":true'"
)
withoutSudo.fail('journalctl -b --no-pager --grep "^audit: .*apparmor=\\"DENIED\\""')
customized.wait_for_unit("miniflux.service")
customized.wait_for_open_port(${toString port})
@ -77,5 +82,6 @@ in
customized.succeed(
"curl 'http://localhost:${toString port}/v1/me' -u '${username}:${password}' -H Content-Type:application/json | grep '\"is_admin\":true'"
)
customized.fail('journalctl -b --no-pager --grep "^audit: .*apparmor=\\"DENIED\\""')
'';
})

@ -20,6 +20,7 @@ in
nodes = {
server = { config, ... }: {
security.apparmor.enable = true;
services.murmur.enable = true;
services.murmur.registerName = "NixOS tests";
services.murmur.password = "$MURMURD_PASSWORD";
@ -81,5 +82,8 @@ in
server.sleep(5) # wait to get screenshot
client1.screenshot("screen1")
client2.screenshot("screen2")
# check if apparmor denied anything
server.fail('journalctl -b --no-pager --grep "^audit: .*apparmor=\\"DENIED\\""')
'';
})

@ -29,23 +29,49 @@ let
ipv6.addresses = [ { address = "fd00:1234:5678:${toString n}::1"; prefixLength = 64; } ];
})));
};
services.dhcpd4 = {
enable = true;
interfaces = map (n: "eth${toString n}") vlanIfs;
extraConfig = flip concatMapStrings vlanIfs (n: ''
subnet 192.168.${toString n}.0 netmask 255.255.255.0 {
option routers 192.168.${toString n}.1;
range 192.168.${toString n}.3 192.168.${toString n}.254;
}
'')
;
machines = flip map vlanIfs (vlan:
{
hostName = "client${toString vlan}";
ethernetAddress = qemu-common.qemuNicMac vlan 1;
ipAddress = "192.168.${toString vlan}.2";
}
);
services.kea = {
dhcp4 = {
enable = true;
settings = {
interfaces-config = {
interfaces = map (n: "eth${toString n}") vlanIfs;
dhcp-socket-type = "raw";
service-sockets-require-all = true;
service-sockets-max-retries = 5;
service-sockets-retry-wait-time = 2500;
};
subnet4 = map (n: {
id = n;
subnet = "192.168.${toString n}.0/24";
pools = [{ pool = "192.168.${toString n}.3 - 192.168.${toString n}.254"; }];
option-data = [{ name = "routers"; data = "192.168.${toString n}.1"; }];
reservations = [{
hw-address = qemu-common.qemuNicMac n 1;
hostname = "client${toString n}";
ip-address = "192.168.${toString n}.2";
}];
}) vlanIfs;
};
};
dhcp6 = {
enable = true;
settings = {
interfaces-config = {
interfaces = map (n: "eth${toString n}") vlanIfs;
service-sockets-require-all = true;
service-sockets-max-retries = 5;
service-sockets-retry-wait-time = 2500;
};
subnet6 = map (n: {
id = n;
subnet = "fd00:1234:5678:${toString n}::/64";
interface = "eth${toString n}";
pools = [{ pool = "fd00:1234:5678:${toString n}::2-fd00:1234:5678:${toString n}::2"; }];
}) vlanIfs;
};
};
};
services.radvd = {
enable = true;
@ -61,17 +87,6 @@ let
};
'');
};
services.dhcpd6 = {
enable = true;
interfaces = map (n: "eth${toString n}") vlanIfs;
extraConfig = ''
authoritative;
'' + flip concatMapStrings vlanIfs (n: ''
subnet6 fd00:1234:5678:${toString n}::/64 {
range6 fd00:1234:5678:${toString n}::2 fd00:1234:5678:${toString n}::2;
}
'');
};
};
testCases = {
@ -117,8 +132,9 @@ let
client.wait_for_unit("network.target")
router.wait_for_unit("network-online.target")
with subtest("Make sure dhcpcd is not started"):
client.fail("systemctl status dhcpcd.service")
with subtest("Make sure DHCP server is not started"):
client.fail("systemctl status kea-dhcp4-server.service")
client.fail("systemctl status kea-dhcp6-server.service")
with subtest("Test vlan 1"):
client.wait_until_succeeds("ping -c 1 192.168.1.1")
@ -1035,7 +1051,7 @@ let
testScript = ''
machine.succeed("udevadm settle")
print(machine.succeed("ip link show dev enCustom"))
machine.wait_until_succeeds("ip link show dev enCustom | grep -q '52:54:00:12:0b:01")
machine.wait_until_succeeds("ip link show dev enCustom | grep -q 52:54:00:12:0b:01")
'';
};
};

@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated-declarations" ];
makeFlags = [ "DESTDIR=\${out}" "PREFIX=''" ];
sourceRoot = "source/src";
sourceRoot = "${src.name}/src";
nativeBuildInputs = [ pkg-config wrapGAppsHook4 ];
buildInputs = [ gtk4 alsa-lib ];
postInstall = ''

@ -1,11 +1,13 @@
{ stdenv
, lib
, fetchFromGitHub
, gitUpdater
, pkg-config
, qmake
, qt5compat ? null
, qtbase
, qttools
, qtwayland
, rtaudio
, rtmidi
, wrapQtAppsHook
@ -13,16 +15,16 @@
assert lib.versionAtLeast qtbase.version "6.0" -> qt5compat != null;
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "bambootracker";
version = "0.6.1";
version = "0.6.2";
src = fetchFromGitHub {
owner = "BambooTracker";
repo = "BambooTracker";
rev = "v${version}";
rev = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-Ymi1tjJCgStF0Rtseelq/YuTtBs2PrbF898TlbjyYUw=";
hash = "sha256-rn6PNxVsLEXz8q3nvMMhKV1/Woq2CxROf0qsQJykyUs=";
};
postPatch = lib.optionalString (lib.versionAtLeast qtbase.version "6.0") ''
@ -41,14 +43,16 @@ stdenv.mkDerivation rec {
buildInputs = [
qtbase
rtaudio
rtmidi
] ++ lib.optionals stdenv.hostPlatform.isLinux [
qtwayland
] ++ lib.optionals (lib.versionAtLeast qtbase.version "6.0") [
qt5compat
];
] ++ rtaudio.buildInputs;
qmakeFlags = [
"CONFIG+=system_rtaudio"
# we don't have RtAudio 6 yet: https://github.com/NixOS/nixpkgs/pull/245075
# "CONFIG+=system_rtaudio"
"CONFIG+=system_rtmidi"
];
@ -64,6 +68,12 @@ stdenv.mkDerivation rec {
wrapQtApp $out/Applications/BambooTracker.app/Contents/MacOS/BambooTracker
'';
passthru = {
updateScript = gitUpdater {
rev-prefix = "v";
};
};
meta = with lib; {
description = "A tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers";
homepage = "https://bambootracker.github.io/BambooTracker/";
@ -71,4 +81,4 @@ stdenv.mkDerivation rec {
platforms = platforms.all;
maintainers = with maintainers; [ OPNA2608 ];
};
}
})

@ -107,5 +107,6 @@ mkDerivation rec {
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ ];
platforms = [ "x86_64-linux" ];
mainProgram = "cadence";
};
}

@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
license = licenses.mit;
maintainers = with maintainers; [ offline mirrexagon ];
platforms = platforms.linux;
mainProgram = "cava";
};
}

@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, pkg-config
, libjack2, gettext, intltool, guile_2_0, lilypond
, libjack2, gettext, intltool, guile_2_2, lilypond
, glib, libxml2, librsvg, libsndfile, aubio
, gtk3, gtksourceview, evince, fluidsynth, rubberband
, portaudio, portmidi, fftw, wrapGAppsHook }:
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
};
buildInputs = [
libjack2 guile_2_0 lilypond glib libxml2 librsvg libsndfile
libjack2 guile_2_2 lilypond glib libxml2 librsvg libsndfile
aubio gtk3 gtksourceview evince fluidsynth rubberband portaudio fftw portmidi
];

@ -107,5 +107,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = with maintainers; [ ];
platforms = platforms.linux;
mainProgram = "easyeffects";
};
}

@ -75,5 +75,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = with maintainers; [ aske ];
platforms = platforms.all;
mainProgram = "espeak-ng";
};
}

@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Only;
maintainers = with maintainers; [ fufexan ];
platforms = platforms.linux;
mainProgram = "helvum";
};
}

@ -106,5 +106,6 @@ python3.pkgs.buildPythonApplication rec {
license = licenses.gpl3Plus;
maintainers = with maintainers; [ lovesegfault ];
platforms = platforms.linux;
mainProgram = "lollypop";
};
}

@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
fetchSubmodules = true;
};
sourceRoot = "source/src";
sourceRoot = "${finalAttrs.src.name}/src";
postPatch = ''
echo '#define GIT_REVISION "${finalAttrs.version}-NixOS"' > git-rev.h

@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus;
maintainers = with maintainers; [ AndersonTorres ];
platforms = with platforms; unix;
mainProgram = "mpc";
};
}

@ -51,5 +51,6 @@ python3Packages.buildPythonApplication rec {
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ apfelkuchen6 ];
mainProgram = "mpdevil";
};
}

@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
sha256 = "1rasp2v1ds2aw296lbf27rzw0l9fjl0cvbvw85d5ycvh6wkm301p";
};
sourceRoot = "source/muse3";
sourceRoot = "${src.name}/muse3";
patches = [ ./fix-parallel-building.patch ];

@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus;
maintainers = with maintainers; [ jfrankenau koral lovek323 ];
platforms = platforms.all;
mainProgram = "ncmpcpp";
};
}

File diff suppressed because it is too large Load Diff

@ -23,22 +23,26 @@
stdenv.mkDerivation rec {
pname = "netease-cloud-music-gtk";
version = "2.0.3";
version = "2.2.0";
src = fetchFromGitHub {
owner = "gmg137";
repo = pname;
rev = version;
hash = "sha256-A3mvf6TZ3+aiWA6rg9G5NMaDKvO0VQzwIM1t0MaTpTc=";
hash = "sha256-9qUzRmm3WQEVjzhzHMT1vNw3r3ymWGlBWXnnPsYGSnk=";
};
cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock;
outputHashes = {
"netease-cloud-music-api-1.0.2" = "sha256-7Yp2ZBg5wHnDPtdPLwZQnqcSlVuGCrXpV5M/dp/IaOE=";
"netease-cloud-music-api-1.2.0" = "sha256-MR1yVPrNzhZC65mQen88t7NbLfRcoWvT6DMSLGCMeTY=";
};
};
postPatch = ''
cp ${./Cargo.lock} Cargo.lock
'';
nativeBuildInputs = [
meson
ninja
@ -75,5 +79,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = with maintainers; [ diffumist ];
mainProgram = "netease-cloud-music-gtk4";
platforms = platforms.linux;
};
}

@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ abbradar globin ];
platforms = platforms.linux;
mainProgram = "pavucontrol";
};
}

@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
libjack2
];
sourceRoot = "source/picoloop";
sourceRoot = "${src.name}/picoloop";
makeFlags = [ "-f Makefile.PatternPlayer_debian_RtAudio_sdl20" ];

@ -2,12 +2,12 @@
let
pname = "plexamp";
version = "4.8.1";
version = "4.8.2";
src = fetchurl {
url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
name="${pname}-${version}.AppImage";
sha512 = "iPCiBbb6alQspEPccxn1XHik0GbksZoe5jb0u8VuUdybO+xVb6sIxTNi6sxTG32uSRH6o16EHNUhLKeb6OcEtA==";
sha512 = "7NQmH42yzItReQ5WPdcbNPr/xed74H4UyDNlX5PGmoJRBpV1RdeuW1KRweIWfYNhw0KeqULVTjr/aCggoWp4WA==";
};
appimageContents = appimageTools.extractType2 {
@ -33,7 +33,7 @@ in appimageTools.wrapType2 {
meta = with lib; {
description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
homepage = "https://plexamp.com/";
changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/51";
changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/52";
license = licenses.unfree;
maintainers = with maintainers; [ killercup synthetica ];
platforms = [ "x86_64-linux" ];

@ -5,14 +5,14 @@
mkDerivation rec {
pname = "qpwgraph";
version = "0.4.5";
version = "0.5.1";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "rncbc";
repo = "qpwgraph";
rev = "v${version}";
sha256 = "sha256-VMTVaJJHMgx5mJT4ZRL5CDOJp7UPOkZOjqulCFSd7xo=";
sha256 = "sha256-HVeuqgqYf/gO1KdteXV4dWd13Q58GqHUz8CAYpruc18=";
};
nativeBuildInputs = [ cmake pkg-config ];
@ -29,6 +29,6 @@ mkDerivation rec {
homepage = "https://gitlab.freedesktop.org/rncbc/qpwgraph";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ kanashimia exi ];
maintainers = with maintainers; [ kanashimia exi Scrumplex ];
};
}

@ -68,7 +68,7 @@ mkDerivation rec {
buildInputs = [ taglib ] ++ runtimeDeps;
# encoder plugins go to ${out}/lib so they're found by kbuildsycoca5
cmakeFlags = [ "-DCMAKE_INSTALL_PREFIX=$out" ];
sourceRoot = "source/src";
sourceRoot = "${src.name}/src";
# add runt-time deps to PATH
postInstall = ''
wrapProgram $out/bin/soundkonverter --prefix PATH : ${lib.makeBinPath runtimeDeps }

@ -12,7 +12,7 @@ let
pname = "rnnoise-nu";
version = "unstable-07-10-2019";
src = speech-denoiser-src;
sourceRoot = "source/rnnoise";
sourceRoot = "${speech-denoiser-src.name}/rnnoise";
nativeBuildInputs = [ autoreconfHook ];
configureFlags = [ "--disable-examples" "--disable-doc" "--disable-shared" "--enable-static" ];
installTargets = [ "install-rnnoise-nu" ];

@ -15,6 +15,7 @@ let
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
mainProgram = "spotify";
};
in if stdenv.isDarwin

@ -116,5 +116,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ peterhoeg ];
# upstream says darwin should work but they lack maintainers as of 0.6.6
platforms = platforms.linux;
mainProgram = "strawberry";
};
}

@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2;
maintainers = [ maintainers.matthiasbeyer ];
platforms = platforms.linux;
mainProgram = "tageditor";
};
}

@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-oY1aGl5CKVtpOfh8Wskio/huWYMiPuxWPqxlooTutcw=";
};
sourceRoot = "source/src";
sourceRoot = "${src.name}/src";
nativeBuildInputs = [
cmake

@ -95,6 +95,6 @@ in python3.pkgs.buildPythonApplication rec {
description = "A CD ripper aiming for accuracy over speed";
maintainers = with maintainers; [ emily ];
license = licenses.gpl3Plus;
platforms = platforms.linux;
platforms = platforms.unix;
};
}

@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
hash = "sha256-zFwfKy8CVecGhgr48T+eDNHfMdctfrNGenc/XJctyw8=";
};
sourceRoot = "source/src";
sourceRoot = "${src.name}/src";
postPatch = ''
substituteInPlace Misc/Config.cpp --replace /usr $out

@ -34,5 +34,6 @@ appimageTools.wrapType2 rec {
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
platforms = platforms.linux;
maintainers = [ maintainers.aacebedo ];
mainProgram = "youtube-music";
};
}

@ -32,5 +32,6 @@ in appimageTools.wrapType2 rec {
license = licenses.cc0;
platforms = platforms.linux;
maintainers = [ maintainers.lgcl ];
mainProgram = "ytmdesktop";
};
}

@ -6,13 +6,13 @@
buildDotnetModule rec {
pname = "btcpayserver";
version = "1.11.0";
version = "1.11.1";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "sha256-kTX/VBEdyyfw0G0x3GnqvqJ9GvRoqYuVHdihTAbhHg0=";
sha256 = "sha256-fKw1RKylpbejzSTO3Ti2toJiSwqtmNC1e2XDAYa9L/0=";
};
projectFile = "BTCPayServer/BTCPayServer.csproj";

@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = with maintainers; [ luc65r ];
platforms = platforms.linux;
mainProgram = "gtkgreet";
};
}

@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
license = licenses.gpl3Plus;
maintainers = with maintainers; [ fufexan ];
platforms = platforms.linux;
mainProgram = "regreet";
};
}

@ -28,7 +28,7 @@ let
pname = "tsc";
commit = version;
sourceRoot = "source/core";
sourceRoot = "${src.name}/core";
recipe = writeText "recipe" ''
(tsc
@ -44,7 +44,7 @@ let
pname = "tsc-dyn";
nativeBuildInputs = [ rustPlatform.bindgenHook ];
sourceRoot = "source/core";
sourceRoot = "${src.name}/core";
postInstall = ''
LIB=($out/lib/libtsc_dyn.*)

@ -96,12 +96,12 @@ if __name__ == "__main__":
drv_path = eval_drv(
nixpkgs,
"""
rustPlatform.buildRustPackage {
rustPlatform.buildRustPackage rec {
pname = "tsc-dyn";
version = "%s";
nativeBuildInputs = [ clang ];
src = fetchFromGitHub (lib.importJSON %s);
sourceRoot = "source/core";
sourceRoot = "${src.name}/core";
cargoHash = lib.fakeHash;
}
"""

@ -32,6 +32,7 @@ let
matthewbauer
];
platforms = lib.platforms.all;
mainProgram = "emacs";
};
in
{

@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2;
maintainers = with maintainers; [ frlan ];
platforms = platforms.all;
mainProgram = "geany";
};
}

@ -96,5 +96,6 @@ stdenv.mkDerivation rec {
maintainers = [ ];
license = licenses.gpl2Plus;
platforms = platforms.unix;
mainProgram = "gedit";
};
}

@ -41,5 +41,6 @@ buildGoModule rec {
description = "Modern and intuitive terminal-based text editor";
license = licenses.mit;
maintainers = with maintainers; [ dtzWill ];
mainProgram = "micro";
};
}

@ -75,5 +75,6 @@ in stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = with maintainers; [ joachifm nequissimus ];
platforms = platforms.all;
mainProgram = "nano";
};
}

@ -1,30 +1,22 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, ncurses
, perl
}:
stdenv.mkDerivation rec {
pname = "openvi";
version = "7.3.22";
version = "7.4.23";
src = fetchFromGitHub {
owner = "johnsonjh";
repo = "OpenVi";
rev = version;
hash = "sha256-yXYiH2FCT7ffRPmb28V54+KO1RLs8L9KHk3remkMWmA=";
hash = "sha256-DwecSnByRkjBFqy3gWJ0+1srF2YsNACqKrAITn6wXJw=";
};
patches = [
# do not attempt to install to /var/tmp/vi.recover
(fetchpatch {
url = "https://github.com/johnsonjh/OpenVi/commit/5205f0234369963c443e83ca5028ca63feaaac91.patch";
hash = "sha256-hoKzQLnpdRbc48wffWbzFtivr20VqEPs4WRPXuDa/88=";
})
];
buildInputs = [ ncurses ];
buildInputs = [ ncurses perl ];
makeFlags = [
"PREFIX=$(out)"

@ -27,5 +27,6 @@ rec {
license = licenses.vim;
maintainers = with maintainers; [ das_j equirosa ];
platforms = platforms.unix;
mainProgram = "vim";
};
}

File diff suppressed because it is too large Load Diff

@ -126,12 +126,12 @@
};
c = buildGrammar {
language = "c";
version = "0.0.0+rev=ad09589";
version = "0.0.0+rev=39bea7d";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-c";
rev = "ad095896dd223f1c22b85ac5ec84ab11fb732b07";
hash = "sha256-0SqgOjsSFQkDeJMmF9mAgvbgnm9CCuFTYCUJo4zjCEU=";
rev = "39bea7d391f57c5f0e061419e1c3066e03eb14b3";
hash = "sha256-0iE7dRvouBZuVliWCuuM81CBlPndHR+qFEX8UnOSKWg=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
};
@ -148,12 +148,12 @@
};
cairo = buildGrammar {
language = "cairo";
version = "0.0.0+rev=02ec146";
version = "0.0.0+rev=6216c6e";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-cairo";
rev = "02ec1461f11aa126d3c16abb2da284ca3ba15631";
hash = "sha256-xtGIywLt+sOx82id3/9Me1WTJam8b9gPJfx+2xo7lgg=";
rev = "6216c6ee5e9fc0649c4bd7b1aedd884a55bdd9ef";
hash = "sha256-D8yAkxaokkdNFLnBDWTa6Xu21ibpVw1A4sd/llh8BKs=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-cairo";
};
@ -280,12 +280,12 @@
};
cuda = buildGrammar {
language = "cuda";
version = "0.0.0+rev=2af3d43";
version = "0.0.0+rev=ccb8368";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-cuda";
rev = "2af3d43cd96dd3f3c3868095222c7f5e2462b3ab";
hash = "sha256-ZwinNfhFM1u4qplHOFR8xKphtSjENS+o4u9RUgEnOHg=";
rev = "ccb8368181f1684d3c9815bc1271eb25aa7ddb16";
hash = "sha256-Fwy05mSFnvV7h0TEiO024uzHI7I3k2IYu4i5fRbdDrs=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
};
@ -403,23 +403,23 @@
};
elixir = buildGrammar {
language = "elixir";
version = "0.0.0+rev=2616034";
version = "0.0.0+rev=a2861e8";
src = fetchFromGitHub {
owner = "elixir-lang";
repo = "tree-sitter-elixir";
rev = "2616034f78ffa83ca6a521ebd7eee1868cb5c14c";
hash = "sha256-KY/qeIKWaXUCpA7hbK3ptfCg/cXoISa6mNYB7a0XY18=";
rev = "a2861e88a730287a60c11ea9299c033c7d076e30";
hash = "sha256-hBHqQ3eBjknRPJjP+lQJU6NPFhUMtiv4FbKsTw28Bog=";
};
meta.homepage = "https://github.com/elixir-lang/tree-sitter-elixir";
};
elm = buildGrammar {
language = "elm";
version = "0.0.0+rev=73edfcd";
version = "0.0.0+rev=8fce414";
src = fetchFromGitHub {
owner = "elm-tooling";
repo = "tree-sitter-elm";
rev = "73edfcdc3bb2ddfc731cd5d63e6cb287a18da90d";
hash = "sha256-0fC3NYHtZQbi9Ca5UAAD9FEXQUJ9z8caf0XQsPpU5Rs=";
rev = "8fce414fb951d6d2374593a3adf732621ef4bccf";
hash = "sha256-TuWEqei//UZm2RHWJTooJVOM9EiAST8TtehGw6JnuN4=";
};
meta.homepage = "https://github.com/elm-tooling/tree-sitter-elm";
};
@ -513,12 +513,12 @@
};
fortran = buildGrammar {
language = "fortran";
version = "0.0.0+rev=482bdb8";
version = "0.0.0+rev=6828cf3";
src = fetchFromGitHub {
owner = "stadelmanma";
repo = "tree-sitter-fortran";
rev = "482bdb8b8fb7305b928937379820aa6449e359a7";
hash = "sha256-x2Cm1yUfhlkl8zgbQFPe/IxVNGpX050J3wjsqe7uOW8=";
rev = "6828cf3629addb1706bdbbd33491e95f12b7042c";
hash = "sha256-/DoXmcNmHvgWvYt4IkHJoDp46xgoHMp+cw1jYEcQCHI=";
};
meta.homepage = "https://github.com/stadelmanma/tree-sitter-fortran";
};
@ -645,23 +645,23 @@
};
glsl = buildGrammar {
language = "glsl";
version = "0.0.0+rev=34e0657";
version = "0.0.0+rev=e9c49d0";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-glsl";
rev = "34e0657e37323874c6b67c718a0f83410c4602cf";
hash = "sha256-tOIwOy0XmDpDPxLWXZQNqxgoycA03oaqbdp+PxJfn+0=";
rev = "e9c49d0752d968bc6dcd35d0c3a88397c5d51757";
hash = "sha256-O/RNeoUZEPF8dxQDy41mQvmIyQ29V6MFr7Rgi7g4kDw=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-glsl";
};
go = buildGrammar {
language = "go";
version = "0.0.0+rev=8c8007e";
version = "0.0.0+rev=bbaa67a";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-go";
rev = "8c8007eaee47702bb0291a3c7aeb004909baab4d";
hash = "sha256-K8mvDoQXSXwyyYQuwEcV6RBTZFbn4OSi7R1nGoQkDQU=";
rev = "bbaa67a180cfe0c943e50c55130918be8efb20bd";
hash = "sha256-G7d8CHCyKDAb9j6ijRfHk/HlgPqSI+uvkuRIRRvjkHI=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-go";
};
@ -733,12 +733,12 @@
};
hack = buildGrammar {
language = "hack";
version = "0.0.0+rev=95e63e7";
version = "0.0.0+rev=2887d39";
src = fetchFromGitHub {
owner = "slackhq";
repo = "tree-sitter-hack";
rev = "95e63e79e0d9f91000bd11d458997fabed1bb1e2";
hash = "sha256-++WvcNWPEs2Ax4KSWaA7sQ1ga2dJVoUnleLkjuQ6tFA=";
rev = "2887d3927c5fadebfd71c604922d0c59748e9901";
hash = "sha256-rScvFdoyv0odnAcoKhS+iBaBziV/uaKJa51zPnxMBFQ=";
};
meta.homepage = "https://github.com/slackhq/tree-sitter-hack";
};
@ -755,12 +755,12 @@
};
haskell = buildGrammar {
language = "haskell";
version = "0.0.0+rev=ba0bfb0";
version = "0.0.0+rev=9970682";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-haskell";
rev = "ba0bfb0e5d8e9e31c160d287878c6f26add3ec08";
hash = "sha256-ZSOF0CLOn82GwU3xgvFefmh/AD2j5zz8I0t5YPwfan0=";
rev = "99706824b92f162d4e0f47c7e930bbccb367276e";
hash = "sha256-JJvXkunDFRjWoXipxl1o2P+lRIDa4kw/Ys3LUu3piIY=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-haskell";
};
@ -788,12 +788,12 @@
};
heex = buildGrammar {
language = "heex";
version = "0.0.0+rev=2e1348c";
version = "0.0.0+rev=9bf4ae4";
src = fetchFromGitHub {
owner = "connorlay";
repo = "tree-sitter-heex";
rev = "2e1348c3cf2c9323e87c2744796cf3f3868aa82a";
hash = "sha256-6LREyZhdTDt3YHVRPDyqCaDXqcsPlHOoMFDb2B3+3xM=";
rev = "9bf4ae444a8779839ecbca3b6b896dee426b10ae";
hash = "sha256-ghknZmki1eBSzxY9omZN6wgLpvoJEYXBpvkVxxqLiIc=";
};
meta.homepage = "https://github.com/connorlay/tree-sitter-heex";
};
@ -832,12 +832,12 @@
};
hoon = buildGrammar {
language = "hoon";
version = "0.0.0+rev=dfa565f";
version = "0.0.0+rev=900a272";
src = fetchFromGitHub {
owner = "urbit-pilled";
repo = "tree-sitter-hoon";
rev = "dfa565f87c8997d43cec725d41f023cc3577ca46";
hash = "sha256-ogNgjvRRR0KevOlB1PH+cI+HHftq/JrS6pQuIwR5m2A=";
rev = "900a272271cc2fb78f24aa7b5a1e21ed36bb1d39";
hash = "sha256-g2jBCZjsEsWG+LCAGj7b/t5mOET5/mVN39+/HDRUBCk=";
};
meta.homepage = "https://github.com/urbit-pilled/tree-sitter-hoon";
};
@ -1030,12 +1030,12 @@
};
kotlin = buildGrammar {
language = "kotlin";
version = "0.0.0+rev=2878163";
version = "0.0.0+rev=06a2f6e";
src = fetchFromGitHub {
owner = "fwcd";
repo = "tree-sitter-kotlin";
rev = "2878163ee7cad7eaebd3df1729e86610891fe0ee";
hash = "sha256-BRmKlQf78MkK5d2w6J4B5p6Nos+kSon+1M95lOJEkd0=";
rev = "06a2f6e71c7fcac34addcbf2a4667adad1b9c5a7";
hash = "sha256-HF3wp4nNwgP0LhZvxQKMnPqMPhwu8Xc9khgiQoy6DeA=";
};
meta.homepage = "https://github.com/fwcd/tree-sitter-kotlin";
};
@ -1107,12 +1107,12 @@
};
luap = buildGrammar {
language = "luap";
version = "0.0.0+rev=43916b0";
version = "0.0.0+rev=31461ae";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-luap";
rev = "43916b0f31c48a05e03783eb0bab4eec54a4ac75";
hash = "sha256-wu2f9iCByf85/iE6j5slNruYH8GUVD19u/ygJ/yx76U=";
rev = "31461ae9bd0866cb5117cfe5de71189854fd0f3e";
hash = "sha256-SW2ubK5317GUc1dQLkhoaisMgctLOwr6TPVYSQh02vE=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-luap";
};
@ -1175,12 +1175,12 @@
};
matlab = buildGrammar {
language = "matlab";
version = "0.0.0+rev=1558d8f";
version = "0.0.0+rev=c8723b3";
src = fetchFromGitHub {
owner = "acristoffers";
repo = "tree-sitter-matlab";
rev = "1558d8fc85f7810fa567292ad2a7e64913fa78a1";
hash = "sha256-3FKUGmMM3OeRXkS+izu5yrTgiewp5nHN2352t6sYurU=";
rev = "c8723b33970deda54257e640779714fb181d4d5f";
hash = "sha256-iSpOB5hnd7iKmuhAzAYYbFgP5MiiD57yvAHHG8PS9HA=";
};
meta.homepage = "https://github.com/acristoffers/tree-sitter-matlab";
};
@ -1310,12 +1310,12 @@
};
ocamllex = buildGrammar {
language = "ocamllex";
version = "0.0.0+rev=c8f90e4";
version = "0.0.0+rev=4b9898c";
src = fetchFromGitHub {
owner = "atom-ocaml";
repo = "tree-sitter-ocamllex";
rev = "c8f90e42e1b9cf9e30b1669c386b8d9de992d201";
hash = "sha256-cFzurSuO64PwOuJz1Fa0GTDZ2hnT0dHl4NwQhXWQWIw=";
rev = "4b9898ccbf198602bb0dec9cd67cc1d2c0a4fad2";
hash = "sha256-YhmEE7I7UF83qMuldHqc/fD/no/7YuZd6CaAIaZ1now=";
};
generate = true;
meta.homepage = "https://github.com/atom-ocaml/tree-sitter-ocamllex";
@ -1377,23 +1377,23 @@
};
perl = buildGrammar {
language = "perl";
version = "0.0.0+rev=4a02376";
version = "0.0.0+rev=6141ee2";
src = fetchFromGitHub {
owner = "ganezdragon";
repo = "tree-sitter-perl";
rev = "4a023763f54dec0a6f986f5bd238af788a3f0584";
hash = "sha256-8mLzXxkc8m69KOQtIT02MCKeTCuwERT3/Kegf48IEls=";
rev = "6141ee2cb4c954d5fab9c4ed20ad2b159341533c";
hash = "sha256-eRgnMVCh2/DD8Ka1unyBt9KoLNR4fo3lJiJlZXYBOJo=";
};
meta.homepage = "https://github.com/ganezdragon/tree-sitter-perl";
};
php = buildGrammar {
language = "php";
version = "0.0.0+rev=d43130f";
version = "0.0.0+rev=d76de26";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-php";
rev = "d43130fd1525301e9826f420c5393a4d169819fc";
hash = "sha256-oHUfcuqtFFl+70/uJjE74J1JVV93G9++UaEIntOH5tM=";
rev = "d76de26b8218df208949f46b31e0c422020eda3a";
hash = "sha256-s5oms776eOTkT/tD61ElHCY+pIg7LhnJ3VIyhdHoZWs=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
};
@ -1432,12 +1432,12 @@
};
poe_filter = buildGrammar {
language = "poe_filter";
version = "0.0.0+rev=80dc101";
version = "0.0.0+rev=d7b43b5";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-poe-filter";
rev = "80dc10195e26c72598ed1ab02cdf2d8e4c792e7b";
hash = "sha256-KDsi8eLrTnZaD9XwyF24edmBNHre3FoTiD7RE/MpvEQ=";
rev = "d7b43b51f92fb19efe8af45c2246087c611c8f63";
hash = "sha256-83gE+dY1ldK5zFcEtqY3zZgk+MMrSA8w5alqp2sa/7Y=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-poe-filter";
};
@ -1465,12 +1465,12 @@
};
promql = buildGrammar {
language = "promql";
version = "0.0.0+rev=4b6b9f3";
version = "0.0.0+rev=ed9a12f";
src = fetchFromGitHub {
owner = "MichaHoffmann";
repo = "tree-sitter-promql";
rev = "4b6b9f399dc58e408c81da8d8fd7e66ab617eef3";
hash = "sha256-CaNCxgKL/N6TUcO838iR09tFTYS/kWJLf8whQF/3hAg=";
rev = "ed9a12f6ae4e75d4622adef8fb1b1e4d0ac0a759";
hash = "sha256-pE0cPBB6zuQ2MdjT+kPOqhbTvcOBk5M+JK3leaT7ITE=";
};
meta.homepage = "https://github.com/MichaHoffmann/tree-sitter-promql";
};
@ -1487,12 +1487,12 @@
};
prql = buildGrammar {
language = "prql";
version = "0.0.0+rev=02b1e96";
version = "0.0.0+rev=09e158c";
src = fetchFromGitHub {
owner = "PRQL";
repo = "tree-sitter-prql";
rev = "02b1e967ede00aaa5d7c9fcd4a604b83825a6261";
hash = "sha256-3pdfcCfHdusphn7vQX/d1gS5kKyNTE9qf0YBvsa/BjM=";
rev = "09e158cd3650581c0af4c49c2e5b10c4834c8646";
hash = "sha256-bdT7LZ2x7BdUqLJRq4ENJTaIFnciac7l2dCxOSB09CI=";
};
meta.homepage = "https://github.com/PRQL/tree-sitter-prql";
};
@ -1520,12 +1520,12 @@
};
python = buildGrammar {
language = "python";
version = "0.0.0+rev=7c8930b";
version = "0.0.0+rev=5af00f6";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-python";
rev = "7c8930b6388b5590ebef248853f144185a9eda1d";
hash = "sha256-6QXMocivEFGrmCFJdxz+z+FsAQ6MBd4kv7719gKO4Gg=";
rev = "5af00f64af6bbf822f208243cce5cf75396fb6f5";
hash = "sha256-2btd/NRE6NuGNlx4cq535OrwtWXihiP3VMCJjPCiDOk=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-python";
};
@ -1586,12 +1586,12 @@
};
racket = buildGrammar {
language = "racket";
version = "0.0.0+rev=92bf637";
version = "0.0.0+rev=d181a97";
src = fetchFromGitHub {
owner = "6cdh";
repo = "tree-sitter-racket";
rev = "92bf6372c63bb413c2d3c1535383d266838d1911";
hash = "sha256-r/4tT+dPhyQCQfeprISH0E30hUyxSnJHpcVN/VLM6Rw=";
rev = "d181a9738177a3b21b9f0e7bbb33b1a562f73ba6";
hash = "sha256-USdHc4c5s1ZGB1nHf0nw8IZEi1xbLWJTnj6KBzcmacY=";
};
meta.homepage = "https://github.com/6cdh/tree-sitter-racket";
};
@ -1641,12 +1641,12 @@
};
robot = buildGrammar {
language = "robot";
version = "0.0.0+rev=51b82cf";
version = "0.0.0+rev=5e50f25";
src = fetchFromGitHub {
owner = "Hubro";
repo = "tree-sitter-robot";
rev = "51b82cfd0c824681b6a282663820a5ce54243e55";
hash = "sha256-jRLP5LqA/Q3IosK0n5sLJ2SW/wXTo9ia1zpdnos/QN8=";
rev = "5e50f2517580290cd1b9689664815e3b09d986b8";
hash = "sha256-5mWRCd9JcTGTuODltbuz7htW/fYjlBTS9HzxrFRj12w=";
};
meta.homepage = "https://github.com/Hubro/tree-sitter-robot";
};
@ -1696,12 +1696,12 @@
};
scala = buildGrammar {
language = "scala";
version = "0.0.0+rev=8062487";
version = "0.0.0+rev=a2f36c2";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-scala";
rev = "8062487fb3b7f3ce1bb7ce1fd1c84bed60c75203";
hash = "sha256-nCmQjLqunccXVgmNUMbMbm6SYuwCRtf1v2CFXrgKXqo=";
rev = "a2f36c2477859110d5b7b675f395e50241fbc004";
hash = "sha256-/GT4SwYit6IwWgEadPMEyXVtmXdwomWUrDMdlTHS6Qs=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-scala";
};
@ -1796,12 +1796,12 @@
};
sql = buildGrammar {
language = "sql";
version = "0.0.0+rev=9fc30c9";
version = "0.0.0+rev=61ab791";
src = fetchFromGitHub {
owner = "derekstride";
repo = "tree-sitter-sql";
rev = "9fc30c949f29747d34c254677d039c9df3c521b4";
hash = "sha256-EyZSbcjbPuaQGpi33YK+hpsod73yifk2hL+MCjn8R9M=";
rev = "61ab7913e110082b7f1fab5421ae3f971b3578ce";
hash = "sha256-0M0iMJ3qCh6OLAxHaZatK/DTaLwAzDGC5Anxsjjg8kY=";
};
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
};
@ -1896,15 +1896,14 @@
};
t32 = buildGrammar {
language = "t32";
version = "0.0.0+rev=4e581fc";
src = fetchFromGitea {
domain = "codeberg.org";
version = "0.0.0+rev=e4cb4a6";
src = fetchFromGitLab {
owner = "xasc";
repo = "tree-sitter-t32";
rev = "4e581fcd17d76651aa92759a68f9a8186b9fe8dc";
hash = "sha256-SUft3MpM8fSLyojgRs6uaZxWDfoxNvL5Orb7XcrztYo=";
rev = "e4cb4a6adb26650e0a2bf4ae57d829ccb8066dcc";
hash = "sha256-WNkO6EkvEmS/Yrpj5Kj34xFcScoCCbbrXiW0CORJYvw=";
};
meta.homepage = "https://codeberg.org/xasc/tree-sitter-t32";
meta.homepage = "https://gitlab.com/xasc/tree-sitter-t32";
};
tablegen = buildGrammar {
language = "tablegen";
@ -2100,12 +2099,12 @@
};
verilog = buildGrammar {
language = "verilog";
version = "0.0.0+rev=22f9b84";
version = "0.0.0+rev=9020313";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-verilog";
rev = "22f9b845c77c52b86b21adaebe689864957f4e31";
hash = "sha256-X3wIZ9AFc6Cxm4E3NYxRRO8vDfVDuSsupkcLhwkf+QI=";
rev = "902031343056bc0b11f3e47b33f036a9cf59f58d";
hash = "sha256-7yPSblfcfNpJYFc06GT1EYY6WMgj/SaFI3UJqUBsL9c=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-verilog";
};
@ -2166,23 +2165,23 @@
};
wgsl_bevy = buildGrammar {
language = "wgsl_bevy";
version = "0.0.0+rev=9e3273e";
version = "0.0.0+rev=a041228";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-wgsl-bevy";
rev = "9e3273e64bdd3f74d1514674286838f9075ee9e4";
rev = "a041228ae64632f59b9bd37346a0dbcb7817f36b";
hash = "sha256-bBGunOcFPrHWLsP1ISgdFBNDIBbB0uhwxKAwmQZg7/k=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-wgsl-bevy";
};
wing = buildGrammar {
language = "wing";
version = "0.0.0+rev=23712ef";
version = "0.0.0+rev=996e87a";
src = fetchFromGitHub {
owner = "winglang";
repo = "wing";
rev = "23712eff9768576bdd852cb9b989a9cd44af014a";
hash = "sha256-IWqclJM3CKsgXIy3e6pUrd2iLfIu8QZT2k6eZXRpITA=";
rev = "996e87a0fa23ebd41d6c50fdff61d2ec6e2e1c1e";
hash = "sha256-OKR/zt+53s3BO9Gu0VKEEsslR2Is2LaUnurXqrgNlSo=";
};
location = "libs/tree-sitter-wing";
generate = true;

@ -883,6 +883,21 @@ self: super: {
dependencies = with self; [ (nvim-treesitter.withPlugins (p: [ p.org ])) ];
};
overseer-nvim = super.overseer-nvim.overrideAttrs {
doCheck = true;
checkPhase = ''
runHook preCheck
plugins=.testenv/data/nvim/site/pack/plugins/start
mkdir -p "$plugins"
ln -s ${self.plenary-nvim} "$plugins/plenary.nvim"
bash run_tests.sh
rm -r .testenv
runHook postCheck
'';
};
inherit parinfer-rust;
phpactor = buildVimPluginFrom2Nix {
@ -932,7 +947,7 @@ self: super: {
pname = "sg-nvim-rust";
inherit (old) version src;
cargoHash = "sha256-bgroNNFRoKiySTC6Rldoy8Unepxd2OXwqcy3fA+CETs=";
cargoHash = "sha256-DgNA/RqnpKmixJKKEDOzflaw8qfnTaBG/Dus1cqgHTU=";
nativeBuildInputs = [ pkg-config ];

@ -114,6 +114,7 @@ https://github.com/bbchung/clighter8/,,
https://github.com/ekickx/clipboard-image.nvim/,,
https://github.com/asheq/close-buffers.vim/,HEAD,
https://github.com/winston0410/cmd-parser.nvim/,,
https://github.com/FelipeLema/cmp-async-path/,HEAD,
https://github.com/crispgm/cmp-beancount/,HEAD,
https://github.com/hrsh7th/cmp-buffer/,,
https://github.com/hrsh7th/cmp-calc/,,
@ -646,6 +647,7 @@ https://github.com/Almo7aya/openingh.nvim/,,
https://github.com/salkin-mada/openscad.nvim/,HEAD,
https://github.com/nvim-orgmode/orgmode/,,
https://github.com/rgroli/other.nvim/,HEAD,
https://github.com/stevearc/overseer.nvim/,HEAD,
https://github.com/nyoom-engineering/oxocarbon.nvim/,HEAD,
https://github.com/vuki656/package-info.nvim/,,
https://github.com/wbthomason/packer.nvim/,,
@ -787,6 +789,7 @@ https://github.com/gbrlsnchs/telescope-lsp-handlers.nvim/,,
https://github.com/MrcJkb/telescope-manix/,HEAD,
https://github.com/nvim-telescope/telescope-media-files.nvim/,HEAD,
https://github.com/nvim-telescope/telescope-project.nvim/,,
https://github.com/Marskey/telescope-sg/,HEAD,
https://github.com/nvim-telescope/telescope-symbols.nvim/,,
https://github.com/nvim-telescope/telescope-ui-select.nvim/,,
https://github.com/fhill2/telescope-ultisnips.nvim/,,

@ -575,8 +575,8 @@ let
mktplcRef = {
name = "vscode-fish";
publisher = "bmalehorn";
version = "1.0.33";
sha256 = "sha256-ZQlG+HrjU4DFfpyiY8o0/ayDms6MGEObW8pV1Lmr5/Y=";
version = "1.0.35";
sha256 = "sha256-V51Qe6M1CMm9fLOSFEwqeZiC8tWCbVH0AzkLe7kR2vY=";
};
meta.license = lib.licenses.mit;
};
@ -1161,8 +1161,8 @@ let
# semver scheme, contrary to preview versions which are listed on
# the VSCode Marketplace and use a calver scheme. We should avoid
# using preview versions, because they expire after two weeks.
version = "13.4.0";
sha256 = "sha256-CYI62sWPlJNRP2KIkg4vQutIMC6gaCxtTVoOWZIS8Lw=";
version = "14.1.1";
sha256 = "sha256-eSN48IudpHYzT4u+S4b2I2pyEPyOwBCSL49awT/mzEE=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/eamodio.gitlens/changelog";
@ -1319,8 +1319,8 @@ let
mktplcRef = {
name = "prettier-vscode";
publisher = "esbenp";
version = "9.19.0";
sha256 = "sha256-ymIlBzCcssj+J8hHOokVWUpxKTEkzkhNr80uCblhkFs=";
version = "10.1.0";
sha256 = "sha256-SQuf15Jq84MKBVqK6UviK04uo7gQw9yuw/WEBEXcQAc=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/esbenp.prettier-vscode/changelog";
@ -1640,8 +1640,8 @@ let
# the VSCode Marketplace and use a calver scheme. We should avoid
# using preview versions, because they can require insider versions
# of VS Code
version = "0.66.0";
sha256 = "sha256-rhAFNX+/BoKkQeFlVdoHzA8UmZeQofq7+UPooWleYVw=";
version = "0.68.1";
sha256 = "sha256-d60ZxWQLZa2skOB3Iv9K04aGNZA1d1A82N7zRaxAzlI=";
};
meta = { license = lib.licenses.mit; };
};
@ -1742,8 +1742,8 @@ let
mktplcRef = {
name = "todo-tree";
publisher = "Gruntfuggly";
version = "0.0.224";
sha256 = "sha256-ObFmzAaOlbtWC31JRYR/1y+JK1h22SVDPPRWWqPzrQs=";
version = "0.0.226";
sha256 = "sha256-Fj9cw+VJ2jkTGUclB1TLvURhzQsaryFQs/+f2RZOLHs=";
};
meta = {
license = lib.licenses.mit;
@ -1967,8 +1967,8 @@ let
mktplcRef = {
name = "nix-ide";
publisher = "jnoortheen";
version = "0.2.1";
sha256 = "sha256-yC4ybThMFA2ncGhp8BYD7IrwYiDU3226hewsRvJYKy4=";
version = "0.2.2";
sha256 = "sha256-jwOM+6LnHyCkvhOTVSTUZvgx77jAg6hFCCpBqY8AxIg=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/jnoortheen.nix-ide/changelog";
@ -2779,8 +2779,8 @@ let
mktplcRef = {
name = "material-icon-theme";
publisher = "PKief";
version = "4.25.0";
sha256 = "sha256-/lD3i7ZdF/XOi7RduS3HIYHFXhkoW2+PJW249gQxcyk=";
version = "4.29.0";
sha256 = "sha256-YqleqYSpZuhGFGkNo3FRLjiglxX+iUCJl69CRCY/oWM=";
};
meta = {
license = lib.licenses.mit;
@ -3314,8 +3314,8 @@ let
mktplcRef = {
name = "even-better-toml";
publisher = "tamasfe";
version = "0.19.0";
sha256 = "sha256-MqSQarNThbEf1wHDTf1yA46JMhWJN46b08c7tV6+1nU=";
version = "0.19.2";
sha256 = "sha256-JKj6noi2dTe02PxX/kS117ZhW8u7Bhj4QowZQiJKP2E=";
};
meta = {
license = lib.licenses.mit;
@ -3450,8 +3450,8 @@ let
mktplcRef = {
name = "sort-lines";
publisher = "Tyriar";
version = "1.9.1";
sha256 = "0dds99j6awdxb0ipm15g543a5b6f0hr00q9rz961n0zkyawgdlcb";
version = "1.10.2";
sha256 = "sha256-AI16YBmmfZ3k7OyUrh4wujhu7ptqAwfI5jBbAc6MhDk=";
};
meta = {
license = lib.licenses.mit;

@ -1,6 +1,6 @@
{
"name": "rust-analyzer",
"version": "0.3.1426",
"version": "0.3.1607",
"dependencies": {
"anser": "^2.1.1",
"d3": "^7.6.1",

@ -20,13 +20,13 @@ let
# Use the plugin version as in vscode marketplace, updated by update script.
inherit (vsix) version;
releaseTag = "2023-03-06";
releaseTag = "2023-07-31";
src = fetchFromGitHub {
owner = "rust-lang";
repo = "rust-analyzer";
rev = releaseTag;
sha256 = "sha256-Njlus+vY3N++qWE0JXrGjwcXY2QDFuOV/7NruBBMETY=";
sha256 = "sha256-PWEdqI+iiHbx4dkIwWHZCGJuTpRfJI3MLSHf3gQEJt4=";
};
build-deps = nodePackages."rust-analyzer-build-deps-../../applications/editors/vscode/extensions/rust-lang.rust-analyzer/build-deps";
@ -88,3 +88,4 @@ vscode-utils.buildVscodeExtension {
platforms = lib.platforms.all;
};
}

@ -1,5 +1,5 @@
{ stdenv, lib, fetchFromGitHub, autoconf, automake, pkg-config, SDL2, gtk2, mpfr }:
stdenv.mkDerivation {
stdenv.mkDerivation (finalAttrs: {
pname = "basiliskii";
version = "unstable-2022-09-30";
@ -9,7 +9,7 @@ stdenv.mkDerivation {
rev = "2fa17a0783cf36ae60b77b5ed930cda4dc1824af";
sha256 = "+jkns6H2YjlewbUzgoteGSQYWJL+OWVu178aM+BtABM=";
};
sourceRoot = "source/BasiliskII/src/Unix";
sourceRoot = "${finalAttrs.src.name}/BasiliskII/src/Unix";
patches = [ ./remove-redhat-6-workaround-for-scsi-sg.h.patch ];
nativeBuildInputs = [ autoconf automake pkg-config ];
buildInputs = [ SDL2 gtk2 mpfr ];
@ -25,4 +25,4 @@ stdenv.mkDerivation {
maintainers = with maintainers; [ quag ];
platforms = platforms.linux;
};
}
})

@ -128,5 +128,6 @@ stdenv.mkDerivation rec {
license = licenses.mpl20;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ zhaofengli baduhai ];
mainProgram = "cemu";
};
}

@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, callPackage
, patchelf
, unzip
@ -15,18 +16,18 @@
}:
let
version = "2.7.4";
version = "2.7.5";
craftos2-lua = fetchFromGitHub {
owner = "MCJack123";
repo = "craftos2-lua";
rev = "v${version}";
sha256 = "sha256-JMBsSoO/yTLw7K1Ri3BzKr5bz5UirXiPr/Q0YoMumhY=";
hash = "sha256-JMBsSoO/yTLw7K1Ri3BzKr5bz5UirXiPr/Q0YoMumhY=";
};
craftos2-rom = fetchFromGitHub {
owner = "McJack123";
repo = "craftos2-rom";
rev = "v${version}";
sha256 = "sha256-BXTsBMlsymQHABWQCiv22Ia5jm2xv1jNy7Unwymtyp0=";
rev = "v${version}.1"; # Author released a hotfix; remove trailing '.1' on next update
hash = "sha256-WZs/KIdpqLLzvpH2hiJpe/AehluoQMtewBbAb4htz8k=";
};
in
@ -38,7 +39,7 @@ stdenv.mkDerivation rec {
owner = "MCJack123";
repo = "craftos2";
rev = "v${version}";
sha256 = "sha256-9XMc7zmtPxlt3WgS93lUJNMFtUJ/llG9SFGtgdFqZEA=";
hash = "sha256-t2yhSuNPFCF2NaQFWuN9Nos5ZPinAvecV6EZNO0Cy9I=";
};
buildInputs = [ patchelf poco openssl SDL2 SDL2_mixer ncurses libpng pngpp libwebp ];

@ -227,5 +227,6 @@ in stdenv.mkDerivation {
license = licenses.gpl3Plus;
maintainers = with maintainers; [ zhaofengli ];
platforms = [ "x86_64-linux" ];
mainProgram = "darling";
};
}

@ -77,5 +77,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus;
maintainers = with maintainers; [ matthewbauer ];
platforms = platforms.unix;
mainProgram = "dosbox";
};
}

@ -37,5 +37,6 @@ stdenv.mkDerivation {
maintainers = [ lib.maintainers.edwtjo ];
license = lib.licenses.mit;
platforms = lib.platforms.linux;
mainProgram = "emulationstation";
};
}

@ -196,5 +196,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ thiagokokada ];
platforms = platforms.unix;
broken = stdenv.isDarwin;
mainProgram = "mame";
};
}

@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus;
maintainers = with maintainers; [ artemist benley shamilton xfix ];
platforms = platforms.linux;
mainProgram = "melonDS";
};
}

@ -81,5 +81,6 @@ stdenv.mkDerivation (finalAttrs: {
license = licenses.mpl20;
maintainers = with maintainers; [ MP2E AndersonTorres ];
platforms = platforms.linux;
mainProgram = "mgba";
};
})

@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
homepage = "http://www.mupen64plus.org/";
maintainers = [ maintainers.sander ];
platforms = [ "x86_64-linux" ];
mainProgram = "mupen64plus";
};
}

@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl2;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ MP2E ];
mainProgram = "nestopia";
};
}

@ -92,5 +92,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ rardiol ];
license = licenses.gpl2Plus;
platforms = platforms.all;
mainProgram = "pcsxr";
};
}

@ -101,5 +101,6 @@ stdenv.mkDerivation {
maintainers = with maintainers; [ abbradar neonfuz ilian zane ];
license = licenses.gpl2Only;
platforms = [ "x86_64-linux" "aarch64-linux" ];
mainProgram = "rpcs3";
};
}

@ -123,5 +123,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ qknight xfix thiagokokada ];
platforms = platforms.unix;
broken = (withGtk && stdenv.isDarwin);
mainProgram = "snes9x";
};
}

@ -0,0 +1,78 @@
{ lib
, stdenv
, fetchFromGitHub
, zip
, copyDesktopItems
, libpng
, SDL2
, SDL2_image
, darwin
# Optionally bundle a ROM file
, rom ? null
}:
stdenv.mkDerivation (finalAttrs: {
pname = "tamatool";
version = "0.1";
src = fetchFromGitHub {
owner = "jcrona";
repo = "tamatool";
rev = "v${finalAttrs.version}";
hash = "sha256-VDmpIBuMWg3TwfCf9J6/bi/DaWip6ESAQWvGh2SH+A8=";
fetchSubmodules = true;
};
# * Point to the installed rom and res directory
# * Tell the user to use --rom instead of telling them to place the rom in the
# program directory (it's immutable!)
postPatch = ''
substituteInPlace src/tamatool.c \
--replace '#define RES_PATH' "#define RES_PATH \"$out/share/tamatool/res\" //" \
--replace '#define ROM_PATH' "#define ROM_PATH \"$out/share/tamatool/rom.bin\" //" \
--replace '#define ROM_NOT_FOUND_MSG' '#define ROM_NOT_FOUND_MSG "You need to use the --rom option!" //'
'';
nativeBuildInputs = [
zip
copyDesktopItems
];
buildInputs = [
libpng
SDL2
SDL2_image
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.CoreFoundation
];
makeFlags = [
"-Clinux"
"VERSION=${finalAttrs.version}"
"CFLAGS+=-I${SDL2.dev}/include/SDL2"
"CFLAGS+=-I${SDL2_image}/include/SDL2"
"DIST_PATH=$(out)"
"CC=${stdenv.cc.targetPrefix}cc"
];
desktopItems = [ "linux/tamatool.desktop" ];
installPhase = ''
runHook preInstall
install -Dm755 linux/tamatool $out/bin/tamatool
mkdir -p $out/share/tamatool
cp -r res $out/share/tamatool/res
install -Dm644 linux/tamatool.png $out/share/icons/hicolor/128x126/apps/tamatool.png
${lib.optionalString (rom != null) "install -Dm677 ${rom} $out/share/tamatool/rom.bin"}
runHook postInstall
'';
meta = with lib; {
description = "A cross-platform Tamagotchi P1 explorer";
homepage = "https://github.com/jcrona/tamatool";
license = licenses.gpl2Only;
maintainers = with maintainers; [ fgaz ];
platforms = platforms.all;
};
})

@ -7,13 +7,13 @@
stdenv.mkDerivation {
pname = "uxn";
version = "unstable-2023-07-26";
version = "unstable-2023-07-30";
src = fetchFromSourcehut {
owner = "~rabbits";
repo = "uxn";
rev = "e2e5e8653193e2797131813938cb0d633ca3f40c";
hash = "sha256-VZYvpHUyNeJMsX2ccLEBRuHgdgwOVuv+iakPiHnGAfg=";
rev = "9ca8e9623d0ab1c299f08d3dd9d54098557f5749";
hash = "sha256-K51YiLnBwFWgD3h3l2BhsvzhnHHolZPsjjUWJSe4sPQ=";
};
buildInputs = [

@ -28,13 +28,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "xemu";
version = "0.7.104";
version = "0.7.110";
src = fetchFromGitHub {
owner = "xemu-project";
repo = "xemu";
rev = "v${finalAttrs.version}";
hash = "sha256-Oo8YwCDl2E8wW4NIO2KeGRX3GZ/pDVsnHEzEDXkLkN8=";
hash = "sha256-ztYjvQunjskPZUIntzX4GEh0nv0K6knVubYW+QlCCII=";
fetchSubmodules = true;
};
@ -133,5 +133,6 @@ stdenv.mkDerivation (finalAttrs: {
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ AndersonTorres genericnerdyusername ];
platforms = lib.platforms.linux;
mainProgram = "xemu";
};
})

@ -1,19 +1,19 @@
# Generated by ./update.sh - do not update manually!
# Last updated: 2023-07-31
# Last updated: 2023-08-02
{
compatList = {
rev = "c40af830523cf820b6a391a3ef420bcc1b68b367";
rev = "95617e06f8f19e3dcd76b694d6ba87408011cd4d";
hash = "sha256:1hdsza3wf9a0yvj6h55gsl7xqvhafvbz1i8paz9kg7l49b0gnlh1";
};
mainline = {
version = "1513";
hash = "sha256:0mqrdsl55aimm39rws7ap6rw9qq6m4pzp7zlyvp3dchh1x58zzgq";
version = "1515";
hash = "sha256:0w9kg2rq43x9khws2yx6p7qad4xw6vkd04adiw021hjv1scajrlm";
};
ea = {
version = "3783";
distHash = "sha256:01prkdximgypikgggq2y53hlpf7gmg1z7zfbc9yi18f6s5cncs18";
fullHash = "sha256:0pggknr2sxlc3pdy3jh423318z8rr8f0iz43zw85qwhqnj1h9q19";
version = "3788";
distHash = "sha256:0w8jm51b2fwfbr5rmqdagjkay4kams2g12qqkqla6n696zn302jx";
fullHash = "sha256:1fdv7645ijnl58749f4qa5ni7bag4chmm1c8gvji5408grfp0ldq";
};
}

@ -43,5 +43,6 @@ mkDerivation rec {
description = "Norton/Total Commander clone for KDE";
license = licenses.gpl2Only;
maintainers = with maintainers; [ sander turion ];
mainProgram = "krusader";
};
}

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