Merge master into staging-next

This commit is contained in:
github-actions[bot] 2024-09-06 18:03:54 +00:00 committed by GitHub
commit 079813d5c4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
41 changed files with 2850 additions and 1761 deletions

View File

@ -75,7 +75,7 @@
- [Immersed VR](https://immersed.com/), a closed-source coworking platform. Available as [programs.immersed-vr](#opt-programs.immersed-vr.enable).
- [HomeBox](https://github.com/hay-kot/homebox/): the inventory and organization system built for the Home User. Available as [services.homebox](#opt-services.homebox.enable).
- [HomeBox](https://github.com/sysadminsmedia/homebox): the inventory and organization system built for the Home User. Available as [services.homebox](#opt-services.homebox.enable).
- [Renovate](https://github.com/renovatebot/renovate), a dependency updating tool for various git forges and language ecosystems. Available as [services.renovate](#opt-services.renovate.enable).
@ -337,6 +337,13 @@
- The `replay-sorcery` package and module was removed as it unmaintained upstream. Consider using `gpu-screen-recorder` or `obs-studio` instead.
- To follow [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) a few options of `samba` have been moved from `extraConfig` and `configText` to the new freeform option `settings` and renamed, e.g.:
- `services.samba.invalidUsers` to `services.samba.settings.global."invalid users"`
- `services.samba.securityType` to `services.samba.settings.global."security type"`
- `services.samba.shares` to `services.samba.settings`
- `services.samba.enableWinbindd` to `services.samba.winbindd.enable`
- `services.samba.enableNmbd` to `services.samba.nmbd.enable`
- `zx` was updated to v8, which introduces several breaking changes.
See the [v8 changelog](https://github.com/google/zx/releases/tag/8.0.0) for more information.

View File

@ -0,0 +1,41 @@
# Samba {#module-services-samba}
[Samba](https://www.samba.org/), a SMB/CIFS file, print, and login server for Unix.
## Basic Usage {#module-services-samba-basic-usage}
A minimal configuration looks like this:
```nix
{
services.samba.enable = true;
}
```
This configuration automatically enables `smbd`, `nmbd` and `winbindd` services by default.
## Configuring {#module-services-samba-configuring}
Samba configuration is located in the `/etc/samba/smb.conf` file.
### File share {#module-services-samba-configuring-file-share}
This configuration will configure Samba to serve a `public` file share
which is read-only and accessible without authentication:
```nix
{
services.samba = {
enable = true;
settings = {
"public" = {
"path" = "/public";
"read only" = "yes";
"browseable" = "yes";
"guest ok" = "yes";
"comment" = "Public samba share.";
};
};
};
}
```

View File

@ -3,232 +3,162 @@
with lib;
let
smbToString = x: if builtins.typeOf x == "bool"
then boolToString x
else toString x;
cfg = config.services.samba;
samba = cfg.package;
shareConfig = name:
let share = getAttr name cfg.shares; in
"[${name}]\n " + (smbToString (
map
(key: "${key} = ${smbToString (getAttr key share)}\n")
(attrNames share)
));
configFile = pkgs.writeText "smb.conf"
(if cfg.configText != null then cfg.configText else
''
[global]
security = ${cfg.securityType}
passwd program = /run/wrappers/bin/passwd %u
invalid users = ${smbToString cfg.invalidUsers}
${cfg.extraConfig}
${smbToString (map shareConfig (attrNames cfg.shares))}
'');
# This may include nss_ldap, needed for samba if it has to use ldap.
nssModulesPath = config.system.nssModules.path;
daemonService = appName: args:
{ description = "Samba Service Daemon ${appName}";
after = [ (mkIf (cfg.enableNmbd && "${appName}" == "smbd") "samba-nmbd.service") "network.target" ];
requiredBy = [ "samba.target" ];
partOf = [ "samba.target" ];
environment = {
LD_LIBRARY_PATH = nssModulesPath;
LOCALE_ARCHIVE = "/run/current-system/sw/lib/locale/locale-archive";
};
serviceConfig = {
ExecStart = "${samba}/sbin/${appName} --foreground --no-process-group ${args}";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
LimitNOFILE = 16384;
PIDFile = "/run/${appName}.pid";
Type = "notify";
NotifyAccess = "all"; #may not do anything...
Slice = "system-samba.slice";
};
unitConfig.RequiresMountsFor = "/var/lib/samba";
restartTriggers = [ configFile ];
};
settingsFormat = pkgs.formats.ini { };
configFile = settingsFormat.generate "smb.conf" cfg.settings;
in
{
meta = {
doc = ./samba.md;
maintainers = [ lib.maintainers.anthonyroussel ];
};
imports = [
(mkRemovedOptionModule [ "services" "samba" "defaultShare" ] "")
(mkRemovedOptionModule [ "services" "samba" "syncPasswordsByPam" ] "This option has been removed by upstream, see https://bugzilla.samba.org/show_bug.cgi?id=10669#c10")
(lib.mkRemovedOptionModule [ "services" "samba" "configText" ] ''
Use services.samba.settings instead.
This is part of the general move to use structured settings instead of raw
text for config as introduced by RFC0042:
https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md
'')
(lib.mkRemovedOptionModule [ "services" "samba" "extraConfig" ] "Use services.samba.settings instead.")
(lib.mkRenamedOptionModule [ "services" "samba" "invalidUsers" ] [ "services" "samba" "settings" "global" "invalid users" ])
(lib.mkRenamedOptionModule [ "services" "samba" "securityType" ] [ "services" "samba" "settings" "global" "security type" ])
(lib.mkRenamedOptionModule [ "services" "samba" "shares" ] [ "services" "samba" "settings" ])
(lib.mkRenamedOptionModule [ "services" "samba" "enableWinbindd" ] [ "services" "samba" "winbindd" "enable" ])
(lib.mkRenamedOptionModule [ "services" "samba" "enableNmbd" ] [ "services" "samba" "nmbd" "enable" ])
];
###### interface
options = {
# !!! clean up the descriptions.
services.samba = {
enable = lib.mkEnableOption "Samba, the SMB/CIFS protocol";
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to enable Samba, which provides file and print
services to Windows clients through the SMB/CIFS protocol.
::: {.note}
If you use the firewall consider adding the following:
services.samba.openFirewall = true;
:::
'';
};
openFirewall = mkOption {
type = types.bool;
default = false;
description = ''
Whether to automatically open the necessary ports in the firewall.
'';
};
enableNmbd = mkOption {
type = types.bool;
default = true;
description = ''
Whether to enable Samba's nmbd, which replies to NetBIOS over IP name
service requests. It also participates in the browsing protocols
which make up the Windows "Network Neighborhood" view.
'';
};
enableWinbindd = mkOption {
type = types.bool;
default = true;
description = ''
Whether to enable Samba's winbindd, which provides a number of services
to the Name Service Switch capability found in most modern C libraries,
to arbitrary applications via PAM and ntlm_auth and to Samba itself.
'';
};
package = mkPackageOption pkgs "samba" {
package = lib.mkPackageOption pkgs "samba" {
example = "samba4Full";
};
invalidUsers = mkOption {
type = types.listOf types.str;
default = [ "root" ];
description = ''
List of users who are denied to login via Samba.
'';
openFirewall = lib.mkEnableOption "opening the default ports in the firewall for Samba";
smbd = {
enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Whether to enable Samba's smbd daemon.";
};
extraArgs = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
description = "Extra arguments to pass to the smbd service.";
};
};
extraConfig = mkOption {
type = types.lines;
default = "";
description = ''
Additional global section and extra section lines go in here.
'';
example = ''
guest account = nobody
map to guest = bad user
'';
nmbd = {
enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Whether to enable Samba's nmbd, which replies to NetBIOS over IP name
service requests. It also participates in the browsing protocols
which make up the Windows "Network Neighborhood" view.
'';
};
extraArgs = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
description = "Extra arguments to pass to the nmbd service.";
};
};
configText = mkOption {
type = types.nullOr types.lines;
default = null;
description = ''
Verbatim contents of smb.conf. If null (default), use the
autogenerated file from NixOS instead.
'';
winbindd = {
enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Whether to enable Samba's winbindd, which provides a number of services
to the Name Service Switch capability found in most modern C libraries,
to arbitrary applications via PAM and ntlm_auth and to Samba itself.
'';
};
extraArgs = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
description = "Extra arguments to pass to the winbindd service.";
};
};
securityType = mkOption {
type = types.enum [ "auto" "user" "domain" "ads" ];
default = "user";
description = "Samba security type";
};
nsswins = lib.mkEnableOption ''
WINS NSS (Name Service Switch) plug-in.
nsswins = mkOption {
default = false;
type = types.bool;
description = ''
Whether to enable the WINS NSS (Name Service Switch) plug-in.
Enabling it allows applications to resolve WINS/NetBIOS names (a.k.a.
Windows machine names) by transparently querying the winbindd daemon.
'';
};
Enabling it allows applications to resolve WINS/NetBIOS names (a.k.a.
Windows machine names) by transparently querying the winbindd daemon
'';
shares = mkOption {
settings = lib.mkOption {
type = lib.types.submodule { freeformType = settingsFormat.type; };
default = {};
example = {
"global" = {
"security" = "user";
"passwd program" = "/run/wrappers/bin/passwd %u";
"invalid users" = "root";
};
"public" = {
"path" = "/srv/public";
"read only" = "yes";
"browseable" = "yes";
"guest ok" = "yes";
"comment" = "Public samba share.";
};
};
description = ''
A set describing shared resources.
See {command}`man smb.conf` for options.
'';
type = types.attrsOf (types.attrsOf types.unspecified);
example = literalExpression ''
{ public =
{ path = "/srv/public";
"read only" = true;
browseable = "yes";
"guest ok" = "yes";
comment = "Public samba share.";
};
}
Configuration file for the Samba suite in ini format.
This file is located in /etc/samba/smb.conf
Refer to <https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html>
for all available options.
'';
};
};
};
###### implementation
config = mkMerge
[ { assertions =
[ { assertion = cfg.nsswins -> cfg.enableWinbindd;
message = "If samba.nsswins is enabled, then samba.enableWinbindd must also be enabled";
[ { assertion = cfg.nsswins -> cfg.winbindd.enable;
message = "If services.samba.nsswins is enabled, then services.samba.winbindd.enable must also be enabled";
}
];
}
(mkIf cfg.enable {
(lib.mkIf cfg.enable {
environment.etc."samba/smb.conf".source = configFile;
system.nssModules = optional cfg.nsswins samba;
system.nssModules = optional cfg.nsswins cfg.package;
system.nssDatabases.hosts = optional cfg.nsswins "wins";
systemd = {
slices.system-samba = {
description = "Samba slice";
};
targets.samba = {
description = "Samba Server";
after = [ "network.target" ];
wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
};
slices.system-samba = {
description = "Samba slice";
};
# Refer to https://github.com/samba-team/samba/tree/master/packaging/systemd
# for correct use with systemd
services = {
samba-smbd = daemonService "smbd" "";
samba-nmbd = mkIf cfg.enableNmbd (daemonService "nmbd" "");
samba-winbindd = mkIf cfg.enableWinbindd (daemonService "winbindd" "");
};
tmpfiles.rules = [
"d /var/lock/samba - - - - -"
"d /var/log/samba - - - - -"
@ -252,6 +182,103 @@ in
networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ 139 445 ];
networking.firewall.allowedUDPPorts = mkIf cfg.openFirewall [ 137 138 ];
})
];
(lib.mkIf cfg.nmbd.enable {
systemd.services.samba-nmbd = {
description = "Samba NMB Daemon";
documentation = [ "man:nmbd(8)" "man:samba(7)" "man:smb.conf(5)" ];
after = [
"network.target"
"network-online.target"
];
partOf = [ "samba.target" ];
wantedBy = [ "samba.target" ];
wants = [ "network-online.target" ];
environment.LD_LIBRARY_PATH = config.system.nssModules.path;
serviceConfig = {
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
ExecStart = "${cfg.package}/sbin/nmbd --foreground --no-process-group ${lib.escapeShellArgs cfg.nmbd.extraArgs}";
LimitCORE = "infinity";
PIDFile = "/run/samba/nmbd.pid";
Slice = "system-samba.slice";
Type = "notify";
};
unitConfig.RequiresMountsFor = "/var/lib/samba";
restartTriggers = [ configFile ];
};
})
(lib.mkIf cfg.smbd.enable {
systemd.services.samba-smbd = {
description = "Samba SMB Daemon";
documentation = [ "man:smbd(8)" "man:samba(7)" "man:smb.conf(5)" ];
after = [
"network.target"
"network-online.target"
] ++ lib.optionals (cfg.nmbd.enable) [
"samba-nmbd.service"
] ++ lib.optionals (cfg.winbindd.enable) [
"samba-winbindd.service"
];
partOf = [ "samba.target" ];
wantedBy = [ "samba.target" ];
wants = [ "network-online.target" ];
environment.LD_LIBRARY_PATH = config.system.nssModules.path;
serviceConfig = {
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
ExecStart = "${cfg.package}/sbin/smbd --foreground --no-process-group ${lib.escapeShellArgs cfg.smbd.extraArgs}";
LimitCORE = "infinity";
LimitNOFILE = 16384;
PIDFile = "/run/samba/smbd.pid";
Slice = "system-samba.slice";
Type = "notify";
};
unitConfig.RequiresMountsFor = "/var/lib/samba";
restartTriggers = [ configFile ];
};
})
(lib.mkIf cfg.winbindd.enable {
systemd.services.samba-winbindd = {
description = "Samba Winbind Daemon";
documentation = [ "man:winbindd(8)" "man:samba(7)" "man:smb.conf(5)" ];
after = [
"network.target"
] ++ lib.optionals (cfg.nmbd.enable) [
"samba-nmbd.service"
];
partOf = [ "samba.target" ];
wantedBy = [ "samba.target" ];
environment.LD_LIBRARY_PATH = config.system.nssModules.path;
serviceConfig = {
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
ExecStart = "${cfg.package}/sbin/winbindd --foreground --no-process-group ${lib.escapeShellArgs cfg.winbindd.extraArgs}";
LimitCORE = "infinity";
PIDFile = "/run/samba/winbindd.pid";
Slice = "system-samba.slice";
Type = "notify";
};
unitConfig.RequiresMountsFor = "/var/lib/samba";
restartTriggers = [ configFile ];
};
})
];
}

View File

@ -28,7 +28,7 @@ in
'';
description = ''
The homebox configuration as Environment variables. For definitions and available options see the upstream
[documentation](https://hay-kot.github.io/homebox/quick-start/#env-variables-configuration).
[documentation](https://homebox.software/en/quick-start.html#env-variables-configuration).
'';
};
};

View File

@ -57,15 +57,16 @@ import ./make-test-python.nix ({ lib, ... }: {
testScript = ''
with subtest("Web server gets ready"):
machine.wait_for_unit("dex.service")
machine.wait_for_unit("dex.service", timeout=120)
# Wait until server accepts connections
machine.wait_until_succeeds("curl -fs 'localhost:8080/dex/auth/mock?client_id=oidcclient&response_type=code&redirect_uri=https://example.com/callback&scope=openid'")
machine.wait_until_succeeds("curl -fs 'localhost:8080/dex/auth/mock?client_id=oidcclient&response_type=code&redirect_uri=https://example.com/callback&scope=openid'", timeout=120)
with subtest("Login"):
state = machine.succeed("curl -fs 'localhost:8080/dex/auth/mock?client_id=oidcclient&response_type=code&redirect_uri=https://example.com/callback&scope=openid' | sed -n 's/.*state=\\(.*\\)\">.*/\\1/p'").strip()
print(f"Got state {state}")
machine.succeed(f"curl -fs 'localhost:8080/dex/auth/mock/login?back=&state={state}' -d 'login=admin&password=password'")
code = machine.succeed(f"curl -fs localhost:8080/dex/approval?req={state} | sed -n 's/.*code=\\(.*\\)&amp;.*/\\1/p'").strip()
# Login request returns 303 with redirect_url that has code as query parameter:
# https://example.com/callback?code=kibsamwdupuy2iwqnlbqei3u6&state=
code = machine.succeed(f"curl -fs 'localhost:8080/dex/auth/mock/login?back=&state={state}' -d 'login=admin&password=password' -w '%{{redirect_url}}' | sed -n 's/.*code=\\(.*\\)&.*/\\1/p'")
print(f"Got approval code {code}")
bearer = machine.succeed(f"curl -fs localhost:8080/dex/token -u oidcclient:oidcclientsecret -d 'grant_type=authorization_code&redirect_uri=https://example.com/callback&code={code}' | jq .access_token -r").strip()
print(f"Got access token {bearer}")

View File

@ -1,46 +1,47 @@
import ./make-test-python.nix ({ pkgs, ... }:
{
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "samba";
meta.maintainers = [ ];
meta.maintainers = [ lib.maintainers.anthonyroussel ];
nodes =
{ client =
{ pkgs, ... }:
{ virtualisation.fileSystems =
{ "/public" = {
fsType = "cifs";
device = "//server/public";
options = [ "guest" ];
};
};
nodes = {
client =
{ ... }:
{
virtualisation.fileSystems = {
"/public" = {
fsType = "cifs";
device = "//server/public";
options = [ "guest" ];
};
};
};
server =
{ ... }:
{ services.samba.enable = true;
services.samba.openFirewall = true;
services.samba.shares.public =
{ path = "/public";
server =
{ ... }:
{
services.samba = {
enable = true;
openFirewall = true;
settings = {
"public" = {
"path" = "/public";
"read only" = true;
browseable = "yes";
"browseable" = "yes";
"guest ok" = "yes";
comment = "Public samba share.";
"comment" = "Public samba share.";
};
};
};
};
};
};
# client# [ 4.542997] mount[777]: sh: systemd-ask-password: command not found
testScript = ''
server.start()
server.wait_for_unit("samba.target")
server.succeed("mkdir -p /public; echo bar > /public/foo")
testScript =
''
server.start()
server.wait_for_unit("samba.target")
server.succeed("mkdir -p /public; echo bar > /public/foo")
client.start()
client.wait_for_unit("remote-fs.target")
client.succeed("[[ $(cat /public/foo) = bar ]]")
'';
client.start()
client.wait_for_unit("remote-fs.target")
client.succeed("[[ $(cat /public/foo) = bar ]]")
'';
})

View File

@ -1,45 +0,0 @@
{ lib
, stdenv
, alsa-lib
, darwin
, fetchFromGitHub
, pkg-config
, protobuf
, rustPlatform
}:
rustPlatform.buildRustPackage rec {
pname = "music-player";
version = "0.2.0-alpha.14";
src = fetchFromGitHub {
owner = "tsirysndr";
repo = "music-player";
rev = "v${version}";
hash = "sha256-l8Y1fc5v0YDm87b+d3DuMgKFiem6WFfJEASplHoqva0=";
};
cargoHash = "sha256-nnOHuAn+eGf+iiX3QbDTH4zHMQ6KV4QP6RnyBhLMrEc=";
nativeBuildInputs = [
protobuf
rustPlatform.bindgenHook
] ++ lib.optionals stdenv.isLinux [
pkg-config
];
buildInputs = lib.optionals stdenv.isLinux [
alsa-lib
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.AudioUnit
];
meta = with lib; {
description = "Extensible music player daemon written in Rust";
homepage = "https://github.com/tsirysndr/music-player";
changelog = "https://github.com/tsirysndr/music-player/releases/tag/v${version}";
license = licenses.mit;
maintainers = [ ];
mainProgram = "music-player";
};
}

View File

@ -1459,7 +1459,7 @@
patches = [ ./patches/ranger.nvim/fix-paths.patch ];
postPatch = ''
substituteInPlace lua/ranger-nvim.lua --replace '@ranger@' ${ranger}
substituteInPlace lua/ranger-nvim.lua --replace '@ranger@' ${ranger}/bin/ranger
'';
};

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "helm-diff";
version = "3.9.9";
version = "3.9.10";
src = fetchFromGitHub {
owner = "databus23";
repo = pname;
rev = "v${version}";
hash = "sha256-2vippOY56eP+dMTvH3E+pesq03SHnIsNaRwHK8rdIus=";
hash = "sha256-umb8f0qCqFVN8K5T441Koyl2pq7VOskDxKCXlqB5UoA=";
};
vendorHash = "sha256-Xfev2TsAtP9XddAUNCCKOeIFpKLnD00SdkH2io2REQk=";
vendorHash = "sha256-pWynrkL/d6TPojeyCJ6RjLNel4qA21UP+jzWnC8DnB8=";
ldflags = [ "-s" "-w" "-X github.com/databus23/helm-diff/v3/cmd.Version=${version}" ];

View File

@ -10,11 +10,13 @@
, mesa
, udev
, wrapGAppsHook3
, writeScript
}:
stdenv.mkDerivation rec {
pname = "termius";
version = "8.12.9";
version = "9.3.2";
revision = "200";
src = fetchurl {
# find the latest version with
@ -23,8 +25,8 @@ stdenv.mkDerivation rec {
# curl -H 'X-Ubuntu-Series: 16' https://api.snapcraft.io/api/v1/snaps/details/termius-app | jq '.download_url' -r
# and the sha512 with
# curl -H 'X-Ubuntu-Series: 16' https://api.snapcraft.io/api/v1/snaps/details/termius-app | jq '.download_sha512' -r
url = "https://api.snapcraft.io/api/v1/snaps/download/WkTBXwoX81rBe3s3OTt3EiiLKBx2QhuS_194.snap";
hash = "sha512-48SHa0KQzbDRD9Z6qb63jH+8/jcjGefSjqsCK52Ob2vnzDDBdsmrRLmFDs/K/FBIjzFV4GAjQx61v9jQtvAsmA==";
url = "https://api.snapcraft.io/api/v1/snaps/download/WkTBXwoX81rBe3s3OTt3EiiLKBx2QhuS_${revision}.snap";
hash = "sha512-LPNwyDqVRFVAmhtZGpxoYEQK5B8BIdaV/ylTD0JfvAJAHWpGrbBJT1jMpT7LetNH5XQyXW81nY26JlcmXHaAwg==";
};
desktopItem = makeDesktopItem {
@ -63,7 +65,7 @@ stdenv.mkDerivation rec {
mkdir -p $out/opt/termius
cp -r ./ $out/opt/termius
mkdir -p "$out/share/applications" "$out/share/pixmaps/termius-app.png"
mkdir -p "$out/share/applications" "$out/share/pixmaps"
cp "${desktopItem}/share/applications/"* "$out/share/applications"
cp meta/gui/icon.png $out/share/pixmaps/termius-app.png
@ -77,6 +79,28 @@ stdenv.mkDerivation rec {
"''${gappsWrapperArgs[@]}"
'';
passthru.updateScript = writeScript "update-termius" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts curl jq
set -eu -o pipefail
data=$(curl -H 'X-Ubuntu-Series: 16' \
'https://api.snapcraft.io/api/v1/snaps/details/termius-app?fields=download_sha512,revision,version')
version=$(jq -r .version <<<"$data")
if [[ "x$UPDATE_NIX_OLD_VERSION" != "x$version" ]]; then
revision=$(jq -r .revision <<<"$data")
hash=$(nix hash to-sri "sha512:$(jq -r .download_sha512 <<<"$data")")
update-source-version "$UPDATE_NIX_ATTR_PATH" "$version" "$hash"
update-source-version --ignore-same-hash --version-key=revision "$UPDATE_NIX_ATTR_PATH" "$revision" "$hash"
fi
'';
meta = with lib; {
description = "Cross-platform SSH client with cloud data sync and more";
homepage = "https://termius.com/";

View File

@ -13,10 +13,10 @@ stdenv.mkDerivation rec {
cp -Rv * $out/share/
sed -i "s#prefix=.*#prefix=$out/share#g" $out/share/igv.sh
sed -i 's#java#${jdk17}/bin/java#g' $out/share/igv.sh
sed -i 's#\bjava\b#${jdk17}/bin/java#g' $out/share/igv.sh
sed -i "s#prefix=.*#prefix=$out/share#g" $out/share/igvtools
sed -i 's#java#${jdk17}/bin/java#g' $out/share/igvtools
sed -i 's#\bjava\b#${jdk17}/bin/java#g' $out/share/igvtools
ln -s $out/share/igv.sh $out/bin/igv
ln -s $out/share/igvtools $out/bin/igvtools

View File

@ -1,7 +1,7 @@
{ lib
, fetchFromGitHub
, pkg-config
, flutter319
, flutter
, gst_all_1
, libunwind
, makeWrapper
@ -16,15 +16,15 @@
, flet-client-flutter
}:
flutter319.buildFlutterApplication rec {
flutter.buildFlutterApplication rec {
pname = "flet-client-flutter";
version = "0.22.1";
version = "0.24.1";
src = fetchFromGitHub {
owner = "flet-dev";
repo = "flet";
rev = "v${version}";
hash = "sha256-mjqPIm4LspW1LB4H08FVwEN0JOwTPTLaUxOjZ3n6u8A=";
hash = "sha256-cT1cWxMVpZ0fXoIaJpW96ifQKNe7+PLUXjIFJ3ALdyo=";
};
sourceRoot = "${src.name}/client";

File diff suppressed because it is too large Load Diff

View File

@ -74,7 +74,7 @@ buildGoModule {
meta = {
mainProgram = "api";
homepage = "https://hay-kot.github.io/homebox/";
homepage = "https://homebox.software/";
description = "Inventory and organization system built for the Home User";
maintainers = with lib.maintainers; [ patrickdag ];
license = lib.licenses.agpl3Only;

View File

@ -0,0 +1,51 @@
{
lib,
stdenv,
alsa-lib,
darwin,
fetchFromGitHub,
pkg-config,
protobuf,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "music-player";
version = "0.2.0-alpha.14-unstable-2024-08-24";
src = fetchFromGitHub {
owner = "tsirysndr";
repo = "music-player";
# No patch for 0.2.0, diff patch has a big size, temporarily until the next release
rev = "cf01ae4d2dcf5c804559250f2c7f922d870ae26d";
hash = "sha256-8C8uFnXSBalLD2MUgzzfg4ylvTVecyPJOSUri5jbvkM=";
};
cargoHash = "sha256-JmyuA5p6/7jtNuOMWuAuspYYid+dGOeollIlS0DRCIE=";
nativeBuildInputs =
[
protobuf
rustPlatform.bindgenHook
]
++ lib.optionals stdenv.isLinux [
pkg-config
];
buildInputs =
lib.optionals stdenv.isLinux [
alsa-lib
]
++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.AudioUnit
];
meta = with lib; {
description = "Extensible music player daemon written in Rust";
homepage = "https://github.com/tsirysndr/music-player";
changelog = "https://github.com/tsirysndr/music-player/releases/tag/v${version}";
license = licenses.mit;
maintainers = [ ];
mainProgram = "music-player";
};
}

View File

@ -22,7 +22,7 @@ buildGoModule rec {
description = "Single-file utility for creating and working with PMTiles archives";
homepage = "https://github.com/protomaps/go-pmtiles";
license = licenses.bsd3;
maintainers = [ maintainers.theaninova ];
maintainers = teams.geospatial.members ++ (with maintainers; [ theaninova ]);
mainProgram = "pmtiles";
};
}

View File

@ -6,11 +6,11 @@
let
pname = "simplex-chat-desktop";
version = "6.0.3";
version = "6.0.4";
src = fetchurl {
url = "https://github.com/simplex-chat/simplex-chat/releases/download/v${version}/simplex-desktop-x86_64.AppImage";
hash = "sha256-No3nS1AUOxhaxvaPvc8tLW+fj59P4AT/bt0dZobdGAw=";
hash = "sha256-yDymJ44NIqDg5++WV5rcbOAR4gEWZpwNDClJkFMe9Ns=";
};
appimageContents = appimageTools.extract {

View File

@ -1657,15 +1657,19 @@ won't take effect until you reboot the system.
}
Ok(users) => {
for (uid, name, user_dbus_path) in users {
let gid: u32 = dbus_conn
.with_proxy(
"org.freedesktop.login1",
&user_dbus_path,
Duration::from_millis(5000),
)
let proxy = dbus_conn.with_proxy(
"org.freedesktop.login1",
&user_dbus_path,
Duration::from_millis(5000),
);
let gid: u32 = proxy
.get("org.freedesktop.login1.User", "GID")
.with_context(|| format!("Failed to get GID for {name}"))?;
let runtime_path: String = proxy
.get("org.freedesktop.login1.User", "RuntimePath")
.with_context(|| format!("Failed to get runtime directory for {name}"))?;
eprintln!("reloading user units for {}...", name);
let myself = Path::new("/proc/self/exe")
.canonicalize()
@ -1674,7 +1678,8 @@ won't take effect until you reboot the system.
std::process::Command::new(&myself)
.uid(uid)
.gid(gid)
.env("XDG_RUNTIME_DIR", format!("/run/user/{}", uid))
.env_clear()
.env("XDG_RUNTIME_DIR", runtime_path)
.env("__NIXOS_SWITCH_TO_CONFIGURATION_PARENT_EXE", &myself)
.spawn()
.with_context(|| format!("Failed to spawn user activation for {name}"))?

View File

@ -15,13 +15,13 @@
buildNpmPackage rec {
pname = "teams-for-linux";
version = "1.9.5";
version = "1.9.6";
src = fetchFromGitHub {
owner = "IsmaelMartinez";
repo = "teams-for-linux";
rev = "refs/tags/v${version}";
hash = "sha256-+rEGDg+/qvjCMhGHccb4p+CKOo/65RpkFT/WnCDlCgU=";
hash = "sha256-VonydbN7EiXnQIArOSKgNsIV7zIZQsLihZ41geSx1AA=";
};
npmDepsHash = "sha256-vDRFFxkIQo5qU9gmkSwUhPz4FG2XbUNkTw6SCuvMqCc=";

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "tippecanoe";
version = "2.60.0";
version = "2.62.0";
src = fetchFromGitHub {
owner = "felt";
repo = "tippecanoe";
rev = finalAttrs.version;
hash = "sha256-29jQiPyHotvBm/puoT/WOVgX1Y3N3Q94O+oJ1IjaoKM=";
hash = "sha256-qlEXGtDYQENMaA6VsdDZy/7IW8jWP4zfWoymWC2InO0=";
};
buildInputs = [ sqlite zlib ];

View File

@ -3,12 +3,12 @@
let
generator = pkgsBuildBuild.buildGoModule rec {
pname = "v2ray-domain-list-community";
version = "20240829063032";
version = "20240905162746";
src = fetchFromGitHub {
owner = "v2fly";
repo = "domain-list-community";
rev = version;
hash = "sha256-gON0oAObjo3eFU50tPg318RNCrYevu5J68nl/gPlEkI=";
hash = "sha256-fhD6EJZl8k8yYi8JnRKMFETHrT71vySNJSvk84EZbCU=";
};
vendorHash = "sha256-NLh14rXRci4hgDkBJVJDIDvobndB7KYRKAX7UjyqSsg=";
meta = with lib; {

View File

@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "flat-remix-gtk";
version = "20220627";
version = "20240730";
src = fetchFromGitHub {
owner = "daniruiz";
repo = pname;
rev = version;
sha256 = "sha256-z/ILu8UPbyEN/ejsxZ3CII3y3dI04ZNa1i6nyjKFis8=";
sha256 = "sha256-EWe84bLG14RkCNbHp0S5FbUQ5/Ye/KbCk3gPTsGg9oQ=";
};
dontBuild = true;

View File

@ -9,13 +9,13 @@
stdenvNoCC.mkDerivation rec {
pname = "qogir-kde";
version = "0-unstable-2024-07-29";
version = "0-unstable-2024-09-01";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = "5a19a4b4006b7486af12a5f051ca5377104cab1b";
hash = "sha256-DHV2iVEYxGY9+21TF9YLEH0OoDWVTvcCJytb7k+nS8M=";
rev = "dff5c1fbbaa0b824684c65063b635cf27bcb19ce";
hash = "sha256-uK9lJVRdMszA0am1/E4mfIN50yNKONH85M7+e0ERtn4=";
};
# Propagate sddm theme dependencies to user env otherwise sddm does

View File

@ -0,0 +1,37 @@
{
stdenv,
emilua,
meson,
gperf,
ninja,
asciidoctor,
pkg-config,
fetchFromGitLab,
gitUpdater,
}:
stdenv.mkDerivation (self: {
pname = "emilua_beast";
version = "1.1.0";
src = fetchFromGitLab {
owner = "emilua";
repo = "beast";
rev = "v${self.version}";
hash = "sha256-HvfEigHJTZelPvHFk22PWxkTFEajHJXfiCndxXHVgq8=";
};
buildInputs = [
emilua
asciidoctor
gperf
];
nativeBuildInputs = [
meson
pkg-config
ninja
];
passthru.updateScript = gitUpdater { rev-prefix = "v"; };
})

View File

@ -22,6 +22,7 @@
cmake,
asciidoctor,
makeWrapper,
gitUpdater
}:
let
@ -29,24 +30,41 @@ let
owner = "breese";
repo = "trial.protocol";
rev = "79149f604a49b8dfec57857ca28aaf508069b669";
name = "trial-protocol";
hash = "sha256-Xd8bX3z9PZWU17N9R95HXdj6qo9at5FBL/+PTVaJgkw=";
sparseCheckout = [
"include"
];
hash = "sha256-QpQ70KDcJyR67PtOowAF6w48GitMJ700B8HiEwDA5sU=";
postFetch = ''
rm $out/*.*
mkdir -p $out/lib/pkgconfig
cat > $out/lib/pkgconfig/trial-protocol.pc << EOF
Name: trial.protocol
Version: 0-unstable-2023-02-10
Description: C++ header-only library with parsers and generators for network wire protocols
Requires:
Libs:
Cflags:
EOF
'';
};
boost = boost182;
in
stdenv.mkDerivation rec {
stdenv.mkDerivation (self: {
pname = "emilua";
version = "0.7.3";
version = "0.10.1";
src = fetchFromGitLab {
owner = "emilua";
repo = "emilua";
rev = "v${version}";
hash = "sha256-j8ohhqHjSBgc4Xk9PcQNrbADmsz4VH2zCv+UNqiCv4I=";
rev = "v${self.version}";
hash = "sha256-D6XKXik9nWQ6t6EF6dLbRGB60iFbPUM8/H8iFAz1QlE=";
};
buildInputs = [
propagatedBuildInputs = [
luajit_openresty
boost182
boost
fmt
ncurses
serd
@ -55,6 +73,7 @@ stdenv.mkDerivation rec {
liburing
openssl
cereal
trial-protocol-wrap
];
nativeBuildInputs = [
@ -80,12 +99,6 @@ stdenv.mkDerivation rec {
];
postPatch = ''
pushd subprojects
cp -r ${trial-protocol-wrap} trial-protocol
chmod +w trial-protocol
cp "packagefiles/trial.protocol/meson.build" "trial-protocol/"
popd
patchShebangs src/emilua_gperf.awk --interpreter '${lib.getExe gawk} -f'
'';
@ -97,12 +110,25 @@ stdenv.mkDerivation rec {
"--no-suite" "libpsx"
];
postInstall = ''
mkdir -p $out/nix-support
cp ${./setup-hook.sh} $out/nix-support/setup-hook
substituteInPlace $out/nix-support/setup-hook \
--replace @sitePackages@ "${self.passthru.sitePackages}"
'';
passthru = {
updateScript = gitUpdater {rev-prefix = "v";};
inherit boost;
sitePackages = "lib/emilua-${(lib.concatStringsSep "." (lib.take 2 (lib.splitVersion self.version)))}";
};
meta = with lib; {
description = "Lua execution engine";
mainProgram = "emilua";
homepage = "https://emilua.org/";
license = licenses.boost;
maintainers = with maintainers; [ manipuladordedados ];
maintainers = with maintainers; [ manipuladordedados lucasew ];
platforms = platforms.linux;
};
}
})

View File

@ -0,0 +1,17 @@
addEmiluaPath() {
addToSearchPathWithCustomDelimiter : EMILUA_PATH $1/@sitePackages@
}
toEmiluaPath() {
local paths="$1"
local result=
for i in $paths; do
p="$i/@sitePackages@"
result="${result}${result:+:}$p"
done
echo $result
}
if [ -z "${dontAddEmiluaPath:-}" ]; then
addEnvHooks "$hostOffset" addEmiluaPath
fi

View File

@ -1,6 +1,6 @@
{ mkDerivation }:
mkDerivation {
version = "27.0";
sha256 = "sha256-YZWBLcpkm8B4sjoQO7I9ywXcmxXL+Dvq/JYsLsr7TO0=";
version = "27.0.1";
sha256 = "sha256-Lp6J9eq6RXDi0RRjeVO/CIa4h/m7/fwOp/y0u0sTdFQ=";
}

View File

@ -23,7 +23,7 @@
buildPythonPackage rec {
pname = "cohere";
version = "5.9.0";
version = "5.9.1";
pyproject = true;
disabled = pythonOlder "3.8";
@ -32,7 +32,7 @@ buildPythonPackage rec {
owner = "cohere-ai";
repo = "cohere-python";
rev = "refs/tags/${version}";
hash = "sha256-lD/J21RfJ6iBLOr0lzYBJmbTdiZUV8z6IMhZFbfWixM=";
hash = "sha256-c6AWGKX5ML3Zs02hwIYt8dvZVMvWEmUAkOlU0SvpUaA=";
};
build-system = [ poetry-core ];

View File

@ -8,7 +8,6 @@
pythonOlder,
appnope,
comm,
debugpy,
ipython,
jupyter-client,
jupyter-core,
@ -37,15 +36,12 @@ buildPythonPackage rec {
};
# debugpy is optional, see https://github.com/ipython/ipykernel/pull/767
postPatch = ''
sed -i "/debugpy/d" pyproject.toml
'';
pythonRemoveDeps = [ "debugpy" ];
nativeBuildInputs = [ hatchling ];
propagatedBuildInputs = [
comm
debugpy
ipython
jupyter-client
jupyter-core

View File

@ -1,7 +1,6 @@
{
lib,
buildPythonPackage,
ccache,
fetchFromGitHub,
isPyPy,
ordered-set,
@ -27,7 +26,6 @@ buildPythonPackage rec {
setuptools
wheel
];
nativeCheckInputs = [ ccache ];
dependencies = [
ordered-set

View File

@ -3,6 +3,7 @@
beautifulsoup4,
buildPythonPackage,
fetchFromGitHub,
fetchpatch,
filelock,
lxml,
pythonOlder,
@ -14,20 +15,29 @@
buildPythonPackage rec {
pname = "snscrape";
version = "0.7.0.20230622";
format = "pyproject";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "JustAnotherArchivist";
repo = pname;
repo = "snscrape";
rev = "refs/tags/v${version}";
hash = "sha256-9xAUMr1SWFePEvIz6DFEexk9Txex3u8wPNfMAdxEUCA=";
};
nativeBuildInputs = [ setuptools-scm ];
patches = [
# Fix find_module deprecation, https://github.com/JustAnotherArchivist/snscrape/pull/1036
(fetchpatch {
name = "fix-find-module.patch";
url = "https://github.com/JustAnotherArchivist/snscrape/commit/7f4717aaaaa8d4c96fa1dbe72ded799a722732ee.patch";
hash = "sha256-6O9bZ5GlTPuR0MML/O4DDRBcDX/CJbU54ZE551cfPHo=";
})
];
propagatedBuildInputs = [
build-system = [ setuptools-scm ];
dependencies = [
beautifulsoup4
filelock
lxml
@ -44,9 +54,9 @@ buildPythonPackage rec {
meta = with lib; {
description = "Social networking service scraper";
mainProgram = "snscrape";
homepage = "https://github.com/JustAnotherArchivist/snscrape";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ ivan ];
mainProgram = "snscrape";
};
}

View File

@ -588,7 +588,7 @@ if [ "$action" = repl ]; then
if [[ -z $buildingAttribute ]]; then
exec nix repl --file $buildFile $attr "${extraBuildFlags[@]}"
elif [[ -z $flake ]]; then
exec nix repl '<nixpkgs/nixos>' "${extraBuildFlags[@]}"
exec nix repl --file '<nixpkgs/nixos>' "${extraBuildFlags[@]}"
else
if [[ -n "${lockFlags[0]}" ]]; then
# nix repl itself does not support locking flags

View File

@ -8,19 +8,20 @@
buildHomeAssistantComponent rec {
owner = "hultenvp";
domain = "solis";
version = "3.6.0";
version = "3.7.0";
src = fetchFromGitHub {
owner = "hultenvp";
repo = "solis-sensor";
rev = "v${version}";
sha256 = "sha256-DIUhUN1UfyXptaldJBsQEsImEnQqi4zFFKp70yXxDSk=";
sha256 = "sha256-bKe8c+gQj9jvZKlqcbLiD6NhPDJVy/2mxRM8jjlOPnI=";
};
dependencies = [ aiofiles ];
meta = with lib; {
description = "Home Assistant integration for the SolisCloud PV Monitoring portal via SolisCloud API";
changelog = "https://github.com/hultenvp/solis-sensor/releases/tag/v${version}";
homepage = "https://github.com/hultenvp/solis-sensor";
license = licenses.asl20;
maintainers = with maintainers; [ jnsgruk ];

File diff suppressed because it is too large Load Diff

View File

@ -15,12 +15,12 @@
}:
let
version = "0.10.1";
version = "0.11.0";
src = fetchFromGitHub {
owner = "openobserve";
repo = "openobserve";
rev = "v${version}";
hash = "sha256-68fJYk/R1F7FHm4F+pyyA9BRVdV8S8p5uEM1hVbuArg=";
hash = "sha256-VRkAOUtF/eOxE7/Xjxi/WEfeSseGEJ9IROCFbgeFUkI=";
};
web = buildNpmPackage {
inherit src version;
@ -28,7 +28,7 @@ let
sourceRoot = "${src.name}/web";
npmDepsHash = "sha256-7l1tdgR/R7qaYBbBm9OnKDBETPkaIN8AUgc9WdYQuwI=";
npmDepsHash = "sha256-2beTB6BHHshQkgbqVc195j2/0hBEn/fFz8+0ViSG5Gc=";
preBuild = ''
# Patch vite config to not open the browser to visualize plugin composition
@ -66,7 +66,7 @@ rustPlatform.buildRustPackage {
lockFile = ./Cargo.lock;
outputHashes = {
"chromiumoxide-0.5.7" = "sha256-GHrm5u8FtXRUjSRGMU4PNU6AJZ5W2KcgfZY1c/CBVYA=";
"enrichment-0.1.0" = "sha256-FDPSCBkx+DPeWwTBz9+ORcbbiSBC2a8tJaay9Pxwz4w=";
"enrichment-0.1.0" = "sha256-Ui4rsvmemOF00E4yBRFRS2gw9qliDrNEVQu5fvIpahA=";
};
};
@ -105,6 +105,7 @@ rustPlatform.buildRustPackage {
# requires network access or filesystem mutations
checkFlags = [
"--skip handler::http::auth::tests::test_validate"
"--skip handler::http::router::tests::test_get_proxy_routes"
"--skip handler::http::router::ui::tests::test_index_not_ok"
"--skip handler::http::router::ui::tests::test_index_ok"
"--skip handler::http::request::search::saved_view::tests::test_create_view_post"
@ -120,6 +121,7 @@ rustPlatform.buildRustPackage {
"--skip service::db::compact::files::tests::test_compact_files"
"--skip service::db::user::tests::test_user"
"--skip service::ingestion::grpc::tests::test_get_val"
"--skip service::metadata::trace_list_index::tests::test_write"
"--skip service::organization::tests::test_organization"
"--skip service::search::sql::tests::test_sql_full"
"--skip service::triggers::tests::test_triggers"

View File

@ -16,18 +16,18 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "ibmcloud-cli";
version = "2.17.0";
version = "2.27.0";
src = fetchurl {
url = "https://download.clis.cloud.ibm.com/ibm-cloud-cli/${finalAttrs.version}/binaries/IBM_Cloud_CLI_${finalAttrs.version}_${platform}.tgz";
sha256 = {
"x86_64-darwin" = "18f0dylgwwn9p1jmchqhq061s435n85qr2872i532whbrziwwjf3";
"aarch64-darwin" = "1rid6rv601z4ayd3yi5srqbfn5bspypxarikvm563ygxawh1bxyi";
"x86_64-linux" = "0ry8ix5id2zk04w9d9581g127f9jpj7bwg3x0pk3n9yfwn61g96d";
"aarch64-linux" = "0s5jaqhyl234670q1mg89in2g5b9w3gzvnzl8qmlmgqkaxvzxj94";
"i686-linux" = "0iw8y7iy9yx7y8v8b2wfl24f2rv9r20yj7l4sislxspfyvqv54p2";
"powerpc64le-linux" = "19ac0na163l9h7ygbf3jwwv7zf0wagqvn6kcdh871c690i86wg9z";
"s390x-linux" = "1zvy28jpxijzgdbr9q4rfyx6mk295mqp4nk8z299nm9ryk4q81lv";
"x86_64-darwin" = "0af5f110e094e7bf710c86d1e35af23ebbbc9ad8a4baf2a67895354b415618f6";
"aarch64-darwin" = "1175977597102282cf7c1fd017ec4bdbc041ce367360204852d0798846cd21e4";
"x86_64-linux" = "3c024bcb27519c8ed916ebc0266248249c127bbe93c343807e07d707cf159bb1";
"aarch64-linux" = "bd2a6a3c4428061f17ac8b801b27d9700bf333284294e2834c34b4237f530256";
"i686-linux" = "40dc32b2a76541847fd55b5b587105c90956468baf14016e4628bb8a2a3d73fa";
"powerpc64le-linux" = "e758a60d7de32f4dfc8c944edb8e45bbed41de2fcb1e12bcf6b4e2b35d09f9d5";
"s390x-linux" = "dbee26a3c4be2dcaad28b110e309283c141d55ac923b9d0420ac62b25c8eb9c0";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
};

View File

@ -10,11 +10,13 @@
, makeDesktopItem
, makeWrapper
, nftables
, nss
, openssl_3_2
}:
stdenv.mkDerivation rec {
pname = "cloudflare-warp";
version = "2024.4.133";
version = "2024.6.497";
suffix = {
aarch64-linux = "arm64";
@ -22,10 +24,10 @@ stdenv.mkDerivation rec {
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
src = fetchurl {
url = "https://pkg.cloudflareclient.com/pool/jammy/main/c/cloudflare-warp/cloudflare-warp_${version}-1_${suffix}.deb";
url = "https://pkg.cloudflareclient.com/pool/noble/main/c/cloudflare-warp/cloudflare-warp_${version}-1_${suffix}.deb";
hash = {
aarch64-linux = "sha256-qua+aL4+yvpTBGCVUS1rzJX1KZ3DeaW9Bce9lYWvWOM=";
x86_64-linux = "sha256-xZhyYDMjcv8SLfYwclvWBqPDETbeaxiA6jFCg3Nv5gc=";
aarch64-linux = "sha256-j0D1VcPCJpp0yoK6GjuKKwTVNEqKgr9+6X1AfBbsXAg=";
x86_64-linux = "sha256-y+1TQ/QzzjkorSscB2+QBYR81IowKWcgSoUm1Nz9Gts=";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
};
@ -40,6 +42,8 @@ stdenv.mkDerivation rec {
dbus
gtk3
libpcap
openssl_3_2
nss
stdenv.cc.cc.lib
];

View File

@ -1,4 +1,11 @@
{ lib, stdenv, buildGoModule, fetchFromGitHub, AppKit }:
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
AppKit,
}:
buildGoModule rec {
pname = "saml2aws";
@ -13,19 +20,29 @@ buildGoModule rec {
vendorHash = "sha256-gtl8T8wXnpLgDZc6qSgFKpA+XbcLNHf20ieBkyNdE+s=";
nativeBuildInputs = [ installShellFiles ];
buildInputs = lib.optionals stdenv.isDarwin [ AppKit ];
subPackages = [ "." "cmd/saml2aws" ];
subPackages = [
"."
"cmd/saml2aws"
];
ldflags = [
"-X main.Version=${version}"
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd saml2aws \
--bash <($out/bin/saml2aws --completion-script-bash) \
--zsh <($out/bin/saml2aws --completion-script-zsh)
'';
meta = with lib; {
description = "CLI tool which enables you to login and retrieve AWS temporary credentials using a SAML IDP";
mainProgram = "saml2aws";
homepage = "https://github.com/Versent/saml2aws";
license = licenses.mit;
homepage = "https://github.com/Versent/saml2aws";
license = licenses.mit;
maintainers = [ lib.maintainers.pmyjavec ];
};
}

View File

@ -14,11 +14,11 @@
stdenv.mkDerivation rec {
pname = "crowdin-cli";
version = "4.1.1";
version = "4.1.2";
src = fetchurl {
url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip";
hash = "sha256-EpRGEn+cteFt4tn70bycIrIIjk+ZUO2n5SK14Hc2Qq0=";
hash = "sha256-D0wx570pU1FuyoQ62ZPN1v9jC9tRrJuuQet8D8w2v+M=";
};
nativeBuildInputs = [ installShellFiles makeWrapper unzip ];

View File

@ -16616,7 +16616,11 @@ with pkgs;
zuo = callPackage ../development/interpreters/zuo { };
### LUA interpreters
emilua = callPackage ../development/interpreters/emilua { };
emiluaPlugins = recurseIntoAttrs
(callPackage ./emilua-plugins.nix {}
(callPackage ../development/interpreters/emilua { }));
inherit (emiluaPlugins) emilua;
luaInterpreters = callPackage ./../development/interpreters/lua-5 { };
inherit (luaInterpreters) lua5_1 lua5_2 lua5_2_compat lua5_3 lua5_3_compat lua5_4 lua5_4_compat luajit_2_1 luajit_2_0 luajit_openresty;
@ -31996,8 +32000,6 @@ with pkgs;
musescore = qt6.callPackage ../applications/audio/musescore { };
music-player = callPackage ../applications/audio/music-player { };
mmh = callPackage ../applications/networking/mailreaders/mmh { };
mutt = callPackage ../applications/networking/mailreaders/mutt { };

View File

@ -0,0 +1,12 @@
{
lib,
newScope,
pkgs,
config,
}:
emilua:
(lib.makeScope newScope (self: {
inherit emilua;
beast = self.callPackage ../development/emilua-plugins/beast { };
}))