Merge staging-next into staging

This commit is contained in:
github-actions[bot]
2024-03-01 00:02:47 +00:00
committed by GitHub
53 changed files with 1083 additions and 416 deletions
+18
View File
@@ -203,6 +203,15 @@
fingerprint = "D292 365E 3C46 A5AA 75EE B30B 78DB 7EDE 3540 794B";
}];
};
_6543 = {
email = "6543@obermui.de";
github = "6543";
githubId = 24977596;
name = "6543";
keys = [{
fingerprint = "8722 B61D 7234 1082 553B 201C B8BE 6D61 0E61 C862";
}];
};
_6AA4FD = {
email = "f6442954@gmail.com";
github = "6AA4FD";
@@ -7038,6 +7047,15 @@
github = "ghostbuster91";
githubId = 5662622;
};
ghthor = {
email = "ghthor@gmail.com";
github = "ghthor";
githubId = 160298;
name = "Will Owens";
keys = [{
fingerprint = "8E98 BB01 BFF8 AEA4 E303 FC4C 8074 09C9 2CE2 3033";
}];
};
ghuntley = {
email = "ghuntley@ghuntley.com";
github = "ghuntley";
@@ -93,6 +93,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- [Clevis](https://github.com/latchset/clevis), a pluggable framework for automated decryption, used to unlock encrypted devices in initrd. Available as [boot.initrd.clevis.enable](#opt-boot.initrd.clevis.enable).
- [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`.
- [TuxClocker](https://github.com/Lurkki14/tuxclocker), a hardware control and monitoring program. Available as [programs.tuxclocker](#opt-programs.tuxclocker.enable).
- [ALVR](https://github.com/alvr-org/alvr), a VR desktop streamer. Available as [programs.alvr](#opt-programs.alvr.enable)
+1
View File
@@ -512,6 +512,7 @@
./services/editors/infinoted.nix
./services/finance/odoo.nix
./services/games/archisteamfarm.nix
./services/games/armagetronad.nix
./services/games/crossfire-server.nix
./services/games/deliantra-server.nix
./services/games/factorio.nix
@@ -0,0 +1,268 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkEnableOption mkIf mkOption mkMerge literalExpression;
inherit (lib) mapAttrsToList filterAttrs unique recursiveUpdate types;
mkValueStringArmagetron = with lib; v:
if isInt v then toString v
else if isFloat v then toString v
else if isString v then v
else if true == v then "1"
else if false == v then "0"
else if null == v then ""
else throw "unsupported type: ${builtins.typeOf v}: ${(lib.generators.toPretty {} v)}";
settingsFormat = pkgs.formats.keyValue {
mkKeyValue = lib.generators.mkKeyValueDefault
{
mkValueString = mkValueStringArmagetron;
} " ";
listsAsDuplicateKeys = true;
};
cfg = config.services.armagetronad;
enabledServers = lib.filterAttrs (n: v: v.enable) cfg.servers;
nameToId = serverName: "armagetronad-${serverName}";
getStateDirectory = serverName: "armagetronad/${serverName}";
getServerRoot = serverName: "/var/lib/${getStateDirectory serverName}";
in
{
options = {
services.armagetronad = {
servers = mkOption {
description = lib.mdDoc "Armagetron server definitions.";
default = { };
type = types.attrsOf (types.submodule {
options = {
enable = mkEnableOption (lib.mdDoc "armagetronad");
package = lib.mkPackageOptionMD pkgs "armagetronad-dedicated" {
example = ''
pkgs.armagetronad."0.2.9-sty+ct+ap".dedicated
'';
extraDescription = ''
Ensure that you use a derivation which contains the path `bin/armagetronad-dedicated`.
'';
};
host = mkOption {
type = types.str;
default = "0.0.0.0";
description = lib.mdDoc "Host to listen on. Used for SERVER_IP.";
};
port = mkOption {
type = types.port;
default = 4534;
description = lib.mdDoc "Port to listen on. Used for SERVER_PORT.";
};
dns = mkOption {
type = types.nullOr types.str;
default = null;
description = lib.mdDoc "DNS address to use for this server. Optional.";
};
openFirewall = mkOption {
type = types.bool;
default = true;
description = lib.mdDoc "Set to true to open the configured UDP port for Armagetron Advanced.";
};
name = mkOption {
type = types.str;
description = "The name of this server.";
};
settings = mkOption {
type = settingsFormat.type;
default = { };
description = lib.mdDoc ''
Armagetron Advanced server rules configuration. Refer to:
<https://wiki.armagetronad.org/index.php?title=Console_Commands>
or `armagetronad-dedicated --doc` for a list.
This attrset is used to populate `settings_custom.cfg`; see:
<https://wiki.armagetronad.org/index.php/Configuration_Files>
'';
example = literalExpression ''
{
CYCLE_RUBBER = 40;
}
'';
};
roundSettings = mkOption {
type = settingsFormat.type;
default = { };
description = lib.mdDoc ''
Armagetron Advanced server per-round configuration. Refer to:
<https://wiki.armagetronad.org/index.php?title=Console_Commands>
or `armagetronad-dedicated --doc` for a list.
This attrset is used to populate `everytime.cfg`; see:
<https://wiki.armagetronad.org/index.php/Configuration_Files>
'';
example = literalExpression ''
{
SAY = [
"Hosted on NixOS"
"https://nixos.org"
"iD Tech High Rubber rul3z!! Happy New Year 2008!!1"
];
}
'';
};
};
});
};
};
};
config = mkIf (enabledServers != { }) {
systemd.tmpfiles.settings = mkMerge (mapAttrsToList
(serverName: serverCfg:
let
serverId = nameToId serverName;
serverRoot = getServerRoot serverName;
serverInfo = (
{
SERVER_IP = serverCfg.host;
SERVER_PORT = serverCfg.port;
SERVER_NAME = serverCfg.name;
} // (lib.optionalAttrs (serverCfg.dns != null) { SERVER_DNS = serverCfg.dns; })
);
customSettings = serverCfg.settings;
everytimeSettings = serverCfg.roundSettings;
serverInfoCfg = settingsFormat.generate "server_info.${serverName}.cfg" serverInfo;
customSettingsCfg = settingsFormat.generate "settings_custom.${serverName}.cfg" customSettings;
everytimeSettingsCfg = settingsFormat.generate "everytime.${serverName}.cfg" everytimeSettings;
in
{
"10-armagetronad-${serverId}" = {
"${serverRoot}/data" = {
d = {
group = serverId;
user = serverId;
mode = "0750";
};
};
"${serverRoot}/settings" = {
d = {
group = serverId;
user = serverId;
mode = "0750";
};
};
"${serverRoot}/var" = {
d = {
group = serverId;
user = serverId;
mode = "0750";
};
};
"${serverRoot}/resource" = {
d = {
group = serverId;
user = serverId;
mode = "0750";
};
};
"${serverRoot}/input" = {
"f+" = {
group = serverId;
user = serverId;
mode = "0640";
};
};
"${serverRoot}/settings/server_info.cfg" = {
"L+" = {
argument = "${serverInfoCfg}";
};
};
"${serverRoot}/settings/settings_custom.cfg" = {
"L+" = {
argument = "${customSettingsCfg}";
};
};
"${serverRoot}/settings/everytime.cfg" = {
"L+" = {
argument = "${everytimeSettingsCfg}";
};
};
};
}
)
enabledServers
);
systemd.services = mkMerge (mapAttrsToList
(serverName: serverCfg:
let
serverId = nameToId serverName;
in
{
"armagetronad-${serverName}" = {
description = "Armagetron Advanced Dedicated Server for ${serverName}";
wants = [ "basic.target" ];
after = [ "basic.target" "network.target" "multi-user.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig =
let
serverRoot = getServerRoot serverName;
in
{
Type = "simple";
StateDirectory = getStateDirectory serverName;
ExecStart = "${lib.getExe serverCfg.package} --daemon --input ${serverRoot}/input --userdatadir ${serverRoot}/data --userconfigdir ${serverRoot}/settings --vardir ${serverRoot}/var --autoresourcedir ${serverRoot}/resource";
Restart = "on-failure";
CapabilityBoundingSet = "";
LockPersonality = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateTmp = true;
PrivateUsers = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectSystem = "strict";
RestrictNamespaces = true;
RestrictSUIDSGID = true;
User = serverId;
Group = serverId;
};
};
})
enabledServers
);
networking.firewall.allowedUDPPorts =
unique (mapAttrsToList (serverName: serverCfg: serverCfg.port) (filterAttrs (serverName: serverCfg: serverCfg.openFirewall) enabledServers));
users.users = mkMerge (mapAttrsToList
(serverName: serverCfg:
{
${nameToId serverName} = {
group = nameToId serverName;
description = "Armagetron Advanced dedicated user for server ${serverName}";
isSystemUser = true;
};
})
enabledServers
);
users.groups = mkMerge (mapAttrsToList
(serverName: serverCfg:
{
${nameToId serverName} = { };
})
enabledServers
);
};
}
+24 -1
View File
@@ -24,12 +24,24 @@ let
confNoServer = concatStringsSep "\n" ((mapAttrsToList (toConf "") (builtins.removeAttrs cfg.settings [ "server" ])) ++ [""]);
confServer = concatStringsSep "\n" (mapAttrsToList (toConf " ") (builtins.removeAttrs cfg.settings.server [ "define-tag" ]));
confFile = pkgs.writeText "unbound.conf" ''
confFileUnchecked = pkgs.writeText "unbound.conf" ''
server:
${optionalString (cfg.settings.server.define-tag != "") (toOption " " "define-tag" cfg.settings.server.define-tag)}
${confServer}
${confNoServer}
'';
confFile = if cfg.checkconf then pkgs.runCommandLocal "unbound-checkconf" { } ''
cp ${confFileUnchecked} unbound.conf
# fake stateDir which is not accesible in the sandbox
mkdir -p $PWD/state
sed -i unbound.conf \
-e '/auto-trust-anchor-file/d' \
-e "s|${cfg.stateDir}|$PWD/state|"
${cfg.package}/bin/unbound-checkconf unbound.conf
cp ${confFileUnchecked} $out
'' else confFileUnchecked;
rootTrustAnchorFile = "${cfg.stateDir}/root.key";
@@ -62,6 +74,17 @@ in {
description = lib.mdDoc "Directory holding all state for unbound to run.";
};
checkconf = mkOption {
type = types.bool;
default = !cfg.settings ? include;
defaultText = "!config.services.unbound.settings ? include";
description = lib.mdDoc ''
Wether to check the resulting config file with unbound checkconf for syntax errors.
If settings.include is used, then this options is disabled, as the import can likely not be resolved at build time.
'';
};
resolveLocalQueries = mkOption {
type = types.bool;
default = true;
@@ -216,9 +216,11 @@ in
requires = [ "podman.service" ];
};
systemd.services.podman.environment = config.networking.proxy.envVars;
systemd.sockets.podman.wantedBy = [ "sockets.target" ];
systemd.sockets.podman.socketConfig.SocketGroup = "podman";
systemd.user.services.podman.environment = config.networking.proxy.envVars;
systemd.user.sockets.podman.wantedBy = [ "sockets.target" ];
systemd.timers.podman-prune.timerConfig = lib.mkIf cfg.autoPrune.enable {
+1
View File
@@ -128,6 +128,7 @@ in {
appliance-repart-image = runTest ./appliance-repart-image.nix;
apparmor = handleTest ./apparmor.nix {};
archi = handleTest ./archi.nix {};
armagetronad = handleTest ./armagetronad.nix {};
atd = handleTest ./atd.nix {};
atop = handleTest ./atop.nix {};
atuin = handleTest ./atuin.nix {};
+272
View File
@@ -0,0 +1,272 @@
import ./make-test-python.nix ({ pkgs, ...} :
let
user = "alice";
client =
{ pkgs, ... }:
{ imports = [ ./common/user-account.nix ./common/x11.nix ];
hardware.opengl.driSupport = true;
virtualisation.memorySize = 256;
environment = {
systemPackages = [ pkgs.armagetronad ];
variables.XAUTHORITY = "/home/${user}/.Xauthority";
};
test-support.displayManager.auto.user = user;
};
in {
name = "armagetronad";
meta = with pkgs.lib.maintainers; {
maintainers = [ numinit ];
};
enableOCR = true;
nodes =
{
server = {
services.armagetronad.servers = {
high-rubber = {
enable = true;
name = "Smoke Test High Rubber Server";
port = 4534;
settings = {
SERVER_OPTIONS = "High Rubber server made to run smoke tests.";
CYCLE_RUBBER = 40;
SIZE_FACTOR = 0.5;
};
roundSettings = {
SAY = [
"NixOS Smoke Test Server"
"https://nixos.org"
];
};
};
sty = {
enable = true;
name = "Smoke Test sty+ct+ap Server";
package = pkgs.armagetronad."0.2.9-sty+ct+ap".dedicated;
port = 4535;
settings = {
SERVER_OPTIONS = "sty+ct+ap server made to run smoke tests.";
CYCLE_RUBBER = 20;
SIZE_FACTOR = 0.5;
};
roundSettings = {
SAY = [
"NixOS Smoke Test sty+ct+ap Server"
"https://nixos.org"
];
};
};
trunk = {
enable = true;
name = "Smoke Test trunk Server";
package = pkgs.armagetronad."0.4".dedicated;
port = 4536;
settings = {
SERVER_OPTIONS = "0.4 server made to run smoke tests.";
CYCLE_RUBBER = 20;
SIZE_FACTOR = 0.5;
};
roundSettings = {
SAY = [
"NixOS Smoke Test 0.4 Server"
"https://nixos.org"
];
};
};
};
};
client1 = client;
client2 = client;
};
testScript = let
xdo = name: text: let
xdoScript = pkgs.writeText "${name}.xdo" text;
in "${pkgs.xdotool}/bin/xdotool ${xdoScript}";
in
''
import shlex
import threading
from collections import namedtuple
class Client(namedtuple('Client', ('node', 'name'))):
def send(self, *keys):
for key in keys:
self.node.send_key(key)
def send_on(self, text, *keys):
self.node.wait_for_text(text)
self.send(*keys)
Server = namedtuple('Server', ('node', 'name', 'address', 'port', 'welcome', 'attacker', 'victim', 'coredump_delay'))
# Clients and their in-game names
clients = (
Client(client1, 'Arduino'),
Client(client2, 'SmOoThIcE')
)
# Server configs.
servers = (
Server(server, 'high-rubber', 'server', 4534, 'NixOS Smoke Test Server', 'SmOoThIcE', 'Arduino', 8),
Server(server, 'sty', 'server', 4535, 'NixOS Smoke Test sty+ct+ap Server', 'Arduino', 'SmOoThIcE', 8),
Server(server, 'trunk', 'server', 4536, 'NixOS Smoke Test 0.4 Server', 'Arduino', 'SmOoThIcE', 8)
)
"""
Runs a command as the client user.
"""
def run(cmd):
return "su - ${user} -c " + shlex.quote(cmd)
screenshot_idx = 1
"""
Takes screenshots on all clients.
"""
def take_screenshots(screenshot_idx):
for client in clients:
client.node.screenshot(f"screen_{client.name}_{screenshot_idx}")
return screenshot_idx + 1
# Wait for the servers to come up.
start_all()
for srv in servers:
srv.node.wait_for_unit(f"armagetronad-{srv.name}")
srv.node.wait_until_succeeds(f"ss --numeric --udp --listening | grep -q {srv.port}")
# Make sure console commands work through the named pipe we created.
for srv in servers:
srv.node.succeed(
f"echo 'say Testing!' >> /var/lib/armagetronad/{srv.name}/input"
)
srv.node.succeed(
f"echo 'say Testing again!' >> /var/lib/armagetronad/{srv.name}/input"
)
srv.node.wait_until_succeeds(
f"journalctl -u armagetronad-{srv.name} -e | grep -q 'Admin: Testing!'"
)
srv.node.wait_until_succeeds(
f"journalctl -u armagetronad-{srv.name} -e | grep -q 'Admin: Testing again!'"
)
"""
Sets up a client, waiting for the given barrier on completion.
"""
def client_setup(client, servers, barrier):
client.node.wait_for_x()
# Configure Armagetron.
client.node.succeed(
run("mkdir -p ~/.armagetronad/var"),
run(f"echo 'PLAYER_1 {client.name}' >> ~/.armagetronad/var/autoexec.cfg")
)
for idx, srv in enumerate(servers):
client.node.succeed(
run(f"echo 'BOOKMARK_{idx+1}_ADDRESS {srv.address}' >> ~/.armagetronad/var/autoexec.cfg"),
run(f"echo 'BOOKMARK_{idx+1}_NAME {srv.name}' >> ~/.armagetronad/var/autoexec.cfg"),
run(f"echo 'BOOKMARK_{idx+1}_PORT {srv.port}' >> ~/.armagetronad/var/autoexec.cfg")
)
# Start Armagetron.
client.node.succeed(run("ulimit -c unlimited; armagetronad >&2 & disown"))
client.node.wait_until_succeeds(
run(
"${xdo "create_new_win-select_main_window" ''
search --onlyvisible --name "Armagetron Advanced"
windowfocus --sync
windowactivate --sync
''}"
)
)
# Get through the tutorial.
client.send_on('Language Settings', 'ret')
client.send_on('First Setup', 'ret')
client.send_on('Welcome to Armagetron Advanced', 'ret')
client.send_on('round 1', 'esc')
client.send_on('Menu', 'up', 'up', 'ret')
client.send_on('We hope you', 'ret')
client.send_on('Armagetron Advanced', 'ret')
client.send_on('Play Game', 'ret')
# Online > LAN > Network Setup > Mates > Server Bookmarks
client.send_on('Multiplayer', 'down', 'down', 'down', 'down', 'ret')
barrier.wait()
# Get to the Server Bookmarks screen on both clients. This takes a while so do it asynchronously.
barrier = threading.Barrier(3, timeout=120)
for client in clients:
threading.Thread(target=client_setup, args=(client, servers, barrier)).start()
barrier.wait()
# Main testing loop. Iterates through each server bookmark and connects to them in sequence.
# Assumes that the game is currently on the Server Bookmarks screen.
for srv in servers:
screenshot_idx = take_screenshots(screenshot_idx)
# Connect both clients at once, one second apart.
for client in clients:
client.send('ret')
client.node.sleep(1)
# Wait for clients to connect
for client in clients:
srv.node.wait_until_succeeds(
f"journalctl -u armagetronad-{srv.name} -e | grep -q '{client.name}.*entered the game'"
)
# Wait for the match to start
srv.node.wait_until_succeeds(
f"journalctl -u armagetronad-{srv.name} -e | grep -q 'Admin: {srv.welcome}'"
)
srv.node.wait_until_succeeds(
f"journalctl -u armagetronad-{srv.name} -e | grep -q 'Admin: https://nixos.org'"
)
srv.node.wait_until_succeeds(
f"journalctl -u armagetronad-{srv.name} -e | grep -q 'Go (round 1 of 10)'"
)
# Wait a bit
srv.node.sleep(srv.coredump_delay)
# Turn the attacker player's lightcycle left
attacker = next(client for client in clients if client.name == srv.attacker)
victim = next(client for client in clients if client.name == srv.victim)
attacker.send('left')
screenshot_idx = take_screenshots(screenshot_idx)
# Wait for coredump.
srv.node.wait_until_succeeds(
f"journalctl -u armagetronad-{srv.name} -e | grep -q '{attacker.name} core dumped {victim.name}'"
)
screenshot_idx = take_screenshots(screenshot_idx)
# Disconnect both clients from the server
for client in clients:
client.send('esc')
client.send_on('Menu', 'up', 'up', 'ret')
srv.node.wait_until_succeeds(
f"journalctl -u armagetronad-{srv.name} -e | grep -q '{client.name}.*left the game'"
)
# Next server.
for client in clients:
client.send_on('Server Bookmarks', 'down')
# Stop the servers
for srv in servers:
srv.node.succeed(
f"systemctl stop armagetronad-{srv.name}"
)
srv.node.wait_until_fails(f"ss --numeric --udp --listening | grep -q {srv.port}")
'';
})
+8 -5
View File
@@ -6,13 +6,13 @@
python3Packages.buildPythonApplication rec {
pname = "pyradio";
version = "0.9.1";
version = "0.9.2.25";
src = fetchFromGitHub {
owner = "coderholic";
repo = pname;
repo = "pyradio";
rev = "refs/tags/${version}";
hash = "sha256-tu/qlrbTcUCIRF15x9ATKHH+LDy1OsGJpo5x+CerTKg=";
hash = "sha256-GkOp0iK84HDvVH8RmtmIKJ5EtQIECgZS5g8pmaIhUcc=";
};
nativeBuildInputs = [
@@ -20,9 +20,12 @@ python3Packages.buildPythonApplication rec {
];
propagatedBuildInputs = with python3Packages; [
requests
psutil
dnspython
netifaces
psutil
python-dateutil
requests
rich
];
checkPhase = ''
@@ -4,13 +4,13 @@
buildGoModule rec {
pname = "orbiton";
version = "2.65.10";
version = "2.65.11";
src = fetchFromGitHub {
owner = "xyproto";
repo = "orbiton";
rev = "v${version}";
hash = "sha256-z81Xled6OFs9tKVJgUnws81C86Vle5XR85f3z96N2Gw=";
hash = "sha256-eb7Ku1hgvYdmRgemXcEZMl53oNXYcomh4wYHpRzLTUc=";
};
vendorHash = null;
@@ -16851,5 +16851,16 @@ final: prev:
meta.homepage = "https://github.com/jhradilek/vim-snippets/";
};
vim-tabby = buildVimPlugin {
pname = "vim-tabby";
version = "2024-02-01";
src = fetchFromGitHub {
owner = "TabbyML";
repo = "vim-tabby";
rev = "0b62bc2ed5c7d930c7435c3504d5c18ea6379b28";
sha256 = "06crxhvwz04s6sfj0q22kkp3g5zvip13088m95qwznw9bv2gpx3s";
};
meta.homepage = "https://github.com/TabbyML/vim-tabby/";
};
}
@@ -1671,6 +1671,14 @@
dependencies = with self; [ vim-repeat ];
};
vim-tabby = super.vim-tabby.overrideAttrs {
postPatch = ''
substituteInPlace autoload/tabby/globals.vim --replace-fail \
"let g:tabby_node_binary = get(g:, 'tabby_node_binary', 'node')" \
"let g:tabby_node_binary = get(g:, 'tabby_node_binary', '${nodejs}/bin/node')"
'';
};
vim-textobj-entire = super.vim-textobj-entire.overrideAttrs {
dependencies = with self; [ vim-textobj-user ];
meta.maintainers = with lib.maintainers; [ farlion ];
@@ -1401,3 +1401,4 @@ https://github.com/ziglang/zig.vim/,,
https://github.com/mickael-menu/zk-nvim/,HEAD,
https://github.com/troydm/zoomwintab.vim/,,
https://github.com/nanotee/zoxide.vim/,,
https://github.com/TabbyML/vim-tabby/,HEAD,
@@ -28,12 +28,12 @@
version = "2024-01-22";
};
ungoogled-patches = {
hash = "sha256-G+agHdsssYhsyi4TgJUJBqMEnEgQ7bYeqpTqmonXI6I=";
rev = "122.0.6261.69-1";
hash = "sha256-vqiizzSVWV2/iADPac8qgfdZcbunc0QgMqN15NwJ9js=";
rev = "122.0.6261.94-1";
};
};
hash = "sha256-uEN1hN6DOLgw4QDrMBZdiLLPx+yKQc5MimIf/vbCC84=";
hash_deb_amd64 = "sha256-k3/Phs72eIMB6LAU4aU0+ze/cRu6KlRhpBshKhmq9N4=";
version = "122.0.6261.69";
hash = "sha256-7fIs8qQon9L0iNmM/cHuyqtVm09qf7L4j9qb6KSbw2w=";
hash_deb_amd64 = "sha256-hOm7YZ9ya/SmwKhj6uIPkdgIDv5bIbss398szBYHuXk=";
version = "122.0.6261.94";
};
}
@@ -8,13 +8,13 @@
buildGoModule rec {
pname = "bosh-cli";
version = "7.5.2";
version = "7.5.4";
src = fetchFromGitHub {
owner = "cloudfoundry";
repo = pname;
rev = "v${version}";
sha256 = "sha256-gT0Oivo5QE+pr5PpD/7JAj8oYF9UmSi5F6Ps8RtACzc=";
sha256 = "sha256-aNzKp7QwyhC/ado0NrCyxrRZu+ePGBNSq31/Iw6k6n0=";
};
vendorHash = null;
@@ -1,39 +1,40 @@
{ lib
, stdenv
, buildPythonApplication
, substituteAll
, fetchFromGitHub
, isPy3k
, cepa
, colorama
, fetchFromGitHub
, flask
, flask-compress
, flask-httpauth
, flask-socketio
, gevent-socketio
, gevent-websocket
, cepa
, obfs4
, psutil
, pyqt5
, pycrypto
, pynacl
, pyside2
, pyqt5
, pyside6
, pysocks
, pytestCheckHook
, qrcode
, qt5
, requests
, unidecode
, tor
, obfs4
, snowflake
, substituteAll
, tor
, unidecode
, waitress
}:
let
version = "2.6";
version = "2.6.1";
src = fetchFromGitHub {
owner = "onionshare";
repo = "onionshare";
rev = "v${version}";
sha256 = "sha256-LA7XlzoCXUiG/9subTddAd22336wO9sOHCIBlQK4Ga4=";
sha256 = "sha256-LR3Ao4Q8kEDwrFV+gYdMSEeYF4hDtEa1rJgvRRrJMwc=";
};
meta = with lib; {
description = "Securely and anonymously send and receive files";
@@ -79,23 +80,27 @@ rec {
})
];
propagatedBuildInputs = [
cepa
colorama
flask
flask-compress
flask-httpauth
flask-socketio
gevent-socketio
gevent-websocket
cepa
psutil
pycrypto
pynacl
pyside6
qrcode
requests
unidecode
waitress
];
buildInputs = [
tor
obfs4
tor
];
nativeCheckInputs = [
@@ -107,9 +112,11 @@ rec {
export HOME="$(mktemp -d)"
'';
disabledTests = [
disabledTests = lib.optionals stdenv.isLinux [
"test_get_tor_paths_linux" # expects /usr instead of /nix/store
] ++ lib.optionals stdenv.isDarwin [
# requires meek-client which is not packaged
"test_get_tor_paths_darwin"
# on darwin (and only on darwin) onionshare attempts to discover
# user's *real* homedir via /etc/passwd, making it more painful
# to fake
@@ -128,16 +135,15 @@ rec {
inherit tor meek obfs4 snowflake;
inherit (tor) geoip;
})
./fix-qrcode-gui.patch
];
propagatedBuildInputs = [
onionshare
pyqt5
pyside2
psutil
qrcode
pyqt5
pyside6
pysocks
qrcode
];
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
@@ -1,14 +0,0 @@
diff --git desktop/onionshare/widgets.py desktop/onionshare/widgets.py
index 64a07703..bca974fb 100644
--- desktop/onionshare/widgets.py
+++ desktop/onionshare/widgets.py
@@ -101,7 +101,7 @@ class Image(qrcode.image.base.BaseImage):
A custom Image class, for use with the QR Code pixmap.
"""
- def __init__(self, border, width, box_size):
+ def __init__(self, border, width, box_size, *args, **kargs):
self.border = border
self.width = width
self.box_size = box_size
@@ -1,6 +1,6 @@
{ lib, stdenv, buildGoModule, fetchFromGitHub, buildPackages, installShellFiles
, makeWrapper
, enableCmount ? true, fuse, macfuse-stubs
, enableCmount ? true, fuse, fuse3, macfuse-stubs
, librclone
}:
@@ -46,12 +46,12 @@ buildGoModule rec {
ln -s $out/bin/rclone $out/bin/rclonefs
ln -s $out/bin/rclone $out/bin/mount.rclone
'' + lib.optionalString (enableCmount && !stdenv.isDarwin)
# use --suffix here to ensure we don't shadow /run/wrappers/bin/fusermount,
# use --suffix here to ensure we don't shadow /run/wrappers/bin/fusermount3,
# as the setuid wrapper is required as non-root on NixOS.
''
wrapProgram $out/bin/rclone \
--suffix PATH : "${lib.makeBinPath [ fuse ] }" \
--prefix LD_LIBRARY_PATH : "${fuse}/lib"
--suffix PATH : "${lib.makeBinPath [ fuse3 ] }" \
--prefix LD_LIBRARY_PATH : "${fuse3}/lib"
'';
passthru.tests = {
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "last";
version = "1541";
version = "1542";
src = fetchFromGitLab {
owner = "mcfrith";
repo = "last";
rev = "refs/tags/${version}";
hash = "sha256-gEesPeGY2RozoViZpBWNTXFJriKVb/r0Efw9XEXwXmM=";
hash = "sha256-ZzvyyecYiBscogfN9/FnDbHg/lqb8y14n9C2KLIqhFA=";
};
nativeBuildInputs = [
@@ -0,0 +1,46 @@
{ lib, stdenv, fetchurl, mfcj880dwlpr, makeWrapper, bash }:
stdenv.mkDerivation rec {
pname = "mfcj880dw-cupswrapper";
version = "1.0.0-0";
src = fetchurl {
url = "https://download.brother.com/welcome/dlf102044/mfcj880dw_cupswrapper_GPL_source_${version}.tar.gz";
sha256 = "bf291fe31d64afeaefb5b0e606f4baf80c41d80009e34b32b77d56f759e9cf94";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [
bash # shebang
];
makeFlags = [ "-C" "brcupsconfig" "all" ];
installPhase = ''
runHook preInstall
TARGETFOLDER=$out/opt/brother/Printers/mfcj880dw/cupswrapper
mkdir -p $TARGETFOLDER
cp PPD/brother_mfcj880dw_printer_en.ppd $TARGETFOLDER
cp brcupsconfig/brcupsconfpt1 $TARGETFOLDER
cp cupswrapper/cupswrappermfcj880dw $TARGETFOLDER
sed -i -e '26,306d' $TARGETFOLDER/cupswrappermfcj880dw
substituteInPlace $TARGETFOLDER/cupswrappermfcj880dw \
--replace-fail "\$ppd_file_name" "$TARGETFOLDER/brother_mfcj880dw_printer_en.ppd"
CPUSFILTERFOLDER=$out/lib/cups/filter
mkdir -p $TARGETFOLDER $CPUSFILTERFOLDER
ln -s ${mfcj880dwlpr}/lib/cups/filter/brother_lpdwrapper_mfcj880dw $out/lib/cups/filter/brother_lpdwrapper_mfcj880dw
runHook postInstall
'';
meta = with lib; {
homepage = "http://www.brother.com/";
description = "Brother MFC-J880DW CUPS wrapper driver";
license = with licenses; gpl2;
platforms = with platforms; linux;
downloadPage = "https://support.brother.com/g/b/downloadlist.aspx?c=us&lang=en&prod=mfcj880dw_us_eu_as&os=128";
maintainers = with maintainers; [ _6543 ];
};
}
+94
View File
@@ -0,0 +1,94 @@
{ lib, stdenv, fetchurl, pkgsi686Linux, dpkg, makeWrapper, coreutils, gnused, gawk, file, cups, util-linux, xxd, runtimeShell
, ghostscript, a2ps, bash }:
# Why:
# The executable "brprintconf_mfcj880dw" binary is looking for "/opt/brother/Printers/%s/inf/br%sfunc" and "/opt/brother/Printers/%s/inf/br%src".
# Whereby, %s is printf(3) string substitution for stdin's arg0 (the command's own filename) from the 10th char forwards, as a runtime dependency.
# e.g. Say the filename is "0123456789ABCDE", the runtime will be looking for /opt/brother/Printers/ABCDE/inf/brABCDEfunc.
# Presumably, the binary was designed to be deployed under the filename "printconf_mfcj880dw", whereby it will search for "/opt/brother/Printers/mfcj880dw/inf/brmfcj880dwfunc".
# For NixOS, we want to change the string to the store path of brmfcj880dwfunc and brmfcj880dwrc but we're faced with two complications:
# 1. Too little room to specify the nix store path. We can't even take advantage of %s by renaming the file to the store path hash since the variable is too short and can't contain the whole hash.
# 2. The binary needs the directory it's running from to be r/w.
# What:
# As such, we strip the path and substitution altogether, leaving only "brmfcj880dwfunc" and "brmfcj880dwrc", while filling the leftovers with nulls.
# Fully null terminating the cstrings is necessary to keep the array the same size and preventing overflows.
# We then use a shell script to link and execute the binary, func and rc files in a temporary directory.
# How:
# In the package, we dump the raw binary as a string of search-able hex values using hexdump. We execute the substitution with sed. We then convert the hex values back to binary form using xxd.
# We also write a shell script that invoked "mktemp -d" to produce a r/w temporary directory and link what we need in the temporary directory.
# Result:
# The user can run brprintconf_mfcj880dw in the shell.
stdenv.mkDerivation rec {
pname = "mfcj880dwlpr";
version = "1.0.0-0";
src = fetchurl {
url = "https://download.brother.com/welcome/dlf102038/mfcj880dwlpr-${version}.i386.deb";
sha256 = "1680b301f660a407fe0b69f5de59c7473d2d66dc472a1589b0cd9f51736bfea7";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ cups ghostscript dpkg a2ps ];
dontUnpack = true;
brprintconf_mfcj880dw_script = ''
#!${runtimeShell}
cd $(mktemp -d)
ln -s @out@/usr/bin/brprintconf_mfcj880dw_patched brprintconf_mfcj880dw_patched
ln -s @out@/opt/brother/Printers/mfcj880dw/inf/brmfcj880dwfunc brmfcj880dwfunc
ln -s @out@/opt/brother/Printers/mfcj880dw/inf/brmfcj880dwrc brmfcj880dwrc
./brprintconf_mfcj880dw_patched "$@"
'';
installPhase = ''
dpkg-deb -x $src $out
substituteInPlace $out/opt/brother/Printers/mfcj880dw/lpd/filtermfcj880dw \
--replace-fail /opt "$out/opt"
substituteInPlace $out/opt/brother/Printers/mfcj880dw/lpd/psconvertij2 \
--replace-fail "GHOST_SCRIPT=`which gs`" "GHOST_SCRIPT=${ghostscript}/bin/gs"
substituteInPlace $out/opt/brother/Printers/mfcj880dw/inf/setupPrintcapij \
--replace-fail "/opt/brother/Printers" "$out/opt/brother/Printers" \
--replace-fail "printcap.local" "printcap"
patchelf --set-interpreter ${pkgsi686Linux.stdenv.cc.libc.out}/lib/ld-linux.so.2 \
--set-rpath $out/opt/brother/Printers/mfcj880dw/inf:$out/opt/brother/Printers/mfcj880dw/lpd \
$out/opt/brother/Printers/mfcj880dw/lpd/brmfcj880dwfilter
patchelf --set-interpreter ${pkgsi686Linux.stdenv.cc.libc.out}/lib/ld-linux.so.2 $out/usr/bin/brprintconf_mfcj880dw
#stripping the hardcoded path.
# /opt/brother/Printers/%s/inf/br%sfunc -> brmfcj880dwfunc
# /opt/brother/Printers/%s/inf/br%src -> brmfcj880dwrc
${util-linux}/bin/hexdump -ve '1/1 "%.2X"' $out/usr/bin/brprintconf_mfcj880dw | \
sed 's.2F6F70742F62726F746865722F5072696E746572732F25732F696E662F6272257366756E63.62726d66636a383830647766756e6300000000000000000000000000000000000000000000.' | \
sed 's.2F6F70742F62726F746865722F5072696E746572732F25732F696E662F627225737263.62726d66636a3838306477726300000000000000000000000000000000000000000000.' | \
${xxd}/bin/xxd -r -p > $out/usr/bin/brprintconf_mfcj880dw_patched
chmod +x $out/usr/bin/brprintconf_mfcj880dw_patched
#executing from current dir. segfaults if it's not r\w.
mkdir -p $out/bin
echo -n "$brprintconf_mfcj880dw_script" > $out/bin/brprintconf_mfcj880dw
chmod +x $out/bin/brprintconf_mfcj880dw
substituteInPlace $out/bin/brprintconf_mfcj880dw --replace-fail @out@ $out
# NOTE: opt/brother/Printers/mfcj880dw/lpd/brmfcj880dwfilter also has cardcoded paths, but we can not simply replace them
mkdir -p $out/lib/cups/filter/
ln -s $out/opt/brother/Printers/mfcj880dw/lpd/filtermfcj880dw $out/lib/cups/filter/brother_lpdwrapper_mfcj880dw
wrapProgram $out/opt/brother/Printers/mfcj880dw/lpd/psconvertij2 \
--prefix PATH ":" ${ lib.makeBinPath [ coreutils gnused gawk ] }
wrapProgram $out/opt/brother/Printers/mfcj880dw/lpd/filtermfcj880dw \
--prefix PATH ":" ${ lib.makeBinPath [ coreutils gnused file ghostscript a2ps ] }
'';
meta = with lib; {
description = "Brother MFC-J880DW LPR driver";
downloadPage = "https://support.brother.com/g/b/downloadlist.aspx?c=us&lang=en&prod=mfcj880dw_us_eu_as&os=128";
homepage = "http://www.brother.com/";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = with licenses; unfree;
maintainers = with maintainers; [ _6543 ];
platforms = with platforms; linux;
};
}
+73
View File
@@ -0,0 +1,73 @@
{ lib
, fetchFromGitHub
, gcc12
, cmake
, git
, openssl
, pkg-config
, protobuf
, rustPlatform
, addOpenGLRunpath
, cudatoolkit
, nvidia ? true
}:
rustPlatform.buildRustPackage rec {
version = "0.7.0";
pname = "tabby";
src = fetchFromGitHub {
owner = "TabbyML";
repo = "tabby";
rev = "v${version}";
hash = "sha256-BTPJWvqO4IuQAiUEER9PYfu4aQsz5RI77WsA/gQu5Jc=";
fetchSubmodules = true;
};
cargoHash = "sha256-Du0ya9J+0tz72mSid5If0VFX2lLC7YtwNQ/MALpFv2M=";
# https://github.com/TabbyML/tabby/blob/v0.7.0/.github/workflows/release.yml#L39
cargoBuildFlags = [
"--release"
"--package" "tabby"
] ++ lib.optional nvidia [
"--features" "cuda"
];
OPENSSL_NO_VENDOR = 1;
nativeBuildInputs = [
pkg-config
protobuf
git
cmake
gcc12
] ++ lib.optional nvidia [
addOpenGLRunpath
];
buildInputs = [ openssl ]
++ lib.optional nvidia cudatoolkit
;
postInstall = ''
${if nvidia then ''
addOpenGLRunpath "$out/bin/tabby"
'' else ''
''}
'';
# Fails with:
# file cannot create directory: /var/empty/local/lib64/cmake/Llama
doCheck = false;
meta = with lib; {
homepage = "https://github.com/TabbyML/tabby";
changelog = "https://github.com/TabbyML/tabby/releases/tag/v${version}";
description = "Self-hosted AI coding assistant";
mainProgram = "tabby";
license = licenses.asl20;
maintainers = [ maintainers.ghthor ];
};
}
@@ -28,7 +28,6 @@ let
rev = googleapisRev;
hash = "sha256-4Qiz0pBgW3OZi+Z8Zq6k9E94+8q6/EFMwPh8eQxDjdI=";
};
excludedTests = builtins.fromTOML (builtins.readFile ./skipped_tests.toml);
in
stdenv.mkDerivation rec {
pname = "google-cloud-cpp";
@@ -106,16 +105,17 @@ stdenv.mkDerivation rec {
lib.optionalString doInstallCheck (
lib.optionalString (!staticOnly) ''
export ${ldLibraryPathName}=${lib.concatStringsSep ":" additionalLibraryPaths}
'' + ''
export GTEST_FILTER="-${lib.concatStringsSep ":" excludedTests.cases}"
''
);
installCheckPhase = lib.optionalString doInstallCheck ''
runHook preInstallCheck
# disable tests that contact the internet
ctest --exclude-regex '^(${lib.concatStringsSep "|" excludedTests.whole})'
# Disable any integration tests, which need to contact the internet.
# Also disable the `storage_benchmark_*` tests.
# With Protobuf < 23.x they require -DGOOGLE_CLOUD_CPP_ENABLE_CTYPE_WORKAROUND=ON.
# With Protobuf >= 23.x they require They require setting -DGOOGLE_CLOUD_CPP_ENABLE_CTYPE_WORKAROUND=OFF
ctest --label-exclude integration-test --exclude-regex storage_benchmarks_
runHook postInstallCheck
'';
@@ -1,139 +0,0 @@
whole = [
"common_samples_samples",
"common_internal_grpc_impersonate_service_account_integration_test",
"common_internal_unified_rest_credentials_integration_test",
"iam_samples_iam_credentials_samples",
"iam_samples_iam_samples",
"iam_admin_v1_samples_iam_client_samples",
"iam_credentials_v1_samples_iam_credentials_client_samples",
"iam_v1_samples_iam_policy_client_samples",
"iam_v2_samples_policies_client_samples",
"bigtable_admin_admin_iam_policy_integration_test",
"bigtable_bigtable_instance_admin_client_samples",
"bigtable_bigtable_table_admin_client_samples",
"bigtable_apply_read_latency_benchmark",
"bigtable_endurance_benchmark",
"bigtable_mutation_batcher_throughput_benchmark",
"bigtable_read_sync_vs_async_benchmark",
"bigtable_scan_throughput_benchmark",
"bigtable_admin_iam_policy_integration_test",
"bigtable_data_async_future_integration_test",
"bigtable_data_integration_test",
"bigtable_filters_integration_test",
"bigtable_mutations_integration_test",
"bigtable_table_sample_rows_integration_test",
"bigquery_samples_bigquery_read_samples",
"bigquery_analyticshub_v1_samples_analytics_hub_client_samples",
"bigquery_biglake_v1_samples_metastore_client_samples",
"bigquery_connection_v1_samples_connection_client_samples",
"bigquery_datapolicies_v1_samples_data_policy_client_samples",
"bigquery_datatransfer_v1_samples_data_transfer_client_samples",
"bigquery_migration_v2_samples_migration_client_samples",
"bigquery_reservation_v1_samples_reservation_client_samples",
"bigquery_storage_v1_samples_bigquery_read_client_samples",
"bigquery_storage_v1_samples_bigquery_write_client_samples",
"logging_quickstart",
"logging_v2_samples_config_service_v2_client_samples",
"logging_v2_samples_logging_service_v2_client_samples",
"logging_v2_samples_metrics_service_v2_client_samples",
"pubsub_endurance",
"pubsub_throughput",
"pubsub_subscriber_integration_test",
"pubsub_subscription_admin_integration_test",
"pubsub_topic_admin_integration_test",
"spanner_client_integration_test",
"spanner_client_stress_test",
"spanner_data_types_integration_test",
"spanner_database_admin_integration_test",
"spanner_instance_admin_integration_test",
"spanner_session_pool_integration_test",
"spanner_admin_database_admin_integration_test",
"spanner_admin_instance_admin_integration_test",
"spanner_database_admin_client_samples",
"spanner_instance_admin_client_samples",
"spanner_multiple_rows_cpu_benchmark",
"spanner_single_row_throughput_benchmark",
"storage_alternative_endpoint_integration_test",
"storage_auto_finalize_integration_test",
"storage_bucket_integration_test",
"storage_create_client_integration_test",
"storage_curl_sign_blob_integration_test",
"storage_decompressive_transcoding_integration_test",
"storage_grpc_bucket_acl_integration_test",
"storage_grpc_bucket_metadata_integration_test",
"storage_grpc_default_object_acl_integration_test",
"storage_grpc_integration_test",
"storage_grpc_object_acl_integration_test",
"storage_grpc_object_media_integration_test",
"storage_grpc_object_metadata_integration_test",
"storage_key_file_integration_test",
"storage_minimal_iam_credentials_rest_integration_test",
"storage_object_basic_crud_integration_test",
"storage_object_checksum_integration_test",
"storage_object_compose_many_integration_test",
"storage_object_file_integration_test",
"storage_object_hash_integration_test",
"storage_object_insert_integration_test",
"storage_object_insert_preconditions_integration_test",
"storage_object_integration_test",
"storage_object_list_objects_versions_integration_test",
"storage_object_media_integration_test",
"storage_object_parallel_upload_integration_test",
"storage_object_plenty_clients_serially_integration_test",
"storage_object_plenty_clients_simultaneously_integration_test",
"storage_object_read_headers_integration_test",
"storage_object_read_preconditions_integration_test",
"storage_object_read_range_integration_test",
"storage_object_read_stream_integration_test",
"storage_object_resumable_parallel_upload_integration_test",
"storage_object_resumable_write_integration_test",
"storage_object_rewrite_integration_test",
"storage_object_write_preconditions_integration_test",
"storage_object_write_stream_integration_test",
"storage_object_write_streambuf_integration_test",
"storage_service_account_integration_test",
"storage_signed_url_integration_test",
"storage_small_reads_integration_test",
"storage_thread_integration_test",
"storage_tracing_integration_test",
"storage_unified_credentials_integration_test",
"storage_aggregate_download_throughput_benchmark",
"storage_aggregate_upload_throughput_benchmark",
"storage_create_dataset",
"storage_storage_file_transfer_benchmark",
"storage_storage_parallel_uploads_benchmark",
"storage_storage_throughput_vs_cpu_benchmark",
"storage_throughput_experiment_test"
]
cases = [
"BackupExtraIntegrationTest.CreateBackupWithExpiredVersionTime",
"BackupExtraIntegrationTest.BackupWithExpiredVersionTime",
"BackupExtraIntegrationTest.BackupWithFutureVersionTime",
"BackupExtraIntegrationTest.CreateBackupWithFutureVersionTime",
"BlockingPublisherIntegrationTest.Basic",
"DatabaseAdminClientTest.CreateWithEncryptionKey",
"DatabaseAdminClientTest.CreateWithNonexistentEncryptionKey",
"DatabaseAdminClientTest.DatabaseBasicCRUD",
"DatabaseAdminClientTest.VersionRetentionPeriodCreate",
"DatabaseAdminClientTest.VersionRetentionPeriodCreateFailure",
"DatabaseAdminClientTest.VersionRetentionPeriodUpdate",
"DatabaseAdminClientTest.VersionRetentionPeriodUpdateFailure",
"ErrorParsingIntegrationTest.FailureContainsErrorInfo",
"GrpcServiceAccountIntegrationTest.GetServiceAccount",
"GrpcBucketMetadataIntegrationTest.ObjectMetadataCRUD",
"InstanceAdminClientTest.InstanceConfig",
"InstanceAdminClientTest.InstanceIam",
"InstanceAdminClientTest.InstanceReadOperations",
"LoggingIntegrationTest.ListMonitoredResourceDescriptors",
"LoggingIntegrationTest.WriteLogEntries",
"ObjectFileMultiThreadedTest.Download",
"ObjectReadLargeIntegrationTest.LimitedMemoryGrowth",
"SubscriberIntegrationTest.FireAndForget",
"SubscriberIntegrationTest.PublishOrdered",
"SubscriberIntegrationTest.PublishPullAck",
"SubscriberIntegrationTest.RawStub",
"SubscriberIntegrationTest.ReportNotFound",
"SubscriberIntegrationTest.StreamingSubscriptionBatchSource",
"SubscriptionAdminIntegrationTest.SubscriptionCRUD",
"TopicAdminIntegrationTest.TopicCRUD"
]
@@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "aioairzone";
version = "0.7.4";
version = "0.7.5";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "Noltari";
repo = "aioairzone";
rev = "refs/tags/${version}";
hash = "sha256-yIkP0eWyEJAZc2tJbwTvlU5b2pDta4SatmsTMPsSDt8=";
hash = "sha256-mliyDKh+7M8GQ0ZJijoYrqKDeAqRHfKGyPJM/5no+fM=";
};
nativeBuildInputs = [
@@ -65,7 +65,7 @@
}:
let
pname = "argilla";
version = "1.24.0";
version = "1.25.0";
optional-dependencies = {
server = [
fastapi
@@ -126,7 +126,7 @@ buildPythonPackage {
owner = "argilla-io";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-2baSX6b2BFYHXKg37WMHcGel3OTGsCJrulvyxmbdBek=";
hash = "sha256-KU67tu14pX1nCRl9k/Na9EqelO3Uz7It1dpFBU2IjZA=";
};
pythonRelaxDeps = [
@@ -6,7 +6,7 @@
buildPythonPackage rec {
pname = "cheetah3";
version = "3.3.3";
version = "3.3.3.post1";
format = "setuptools";
disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
owner = "CheetahTemplate3";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-7L3SBMgNOOLAFvQST8I0gFlrya/6Lwp/umzolfJx3t4=";
hash = "sha256-0NVKie/6Fp8T1O1fvrVorycybLrEXMY1yXZBDyxjpbE=";
};
doCheck = false; # Circular dependency
@@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "geoalchemy2";
version = "0.14.4";
version = "0.14.6";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "geoalchemy";
repo = "geoalchemy2";
rev = "refs/tags/${version}";
hash = "sha256-zMd/hHobFBPre0bZA1e2S9gPWnIkeImZhSySlIDxYsg=";
hash = "sha256-s3+w6LtewjR725O8ENl7jRer979fRZDqsnbAYJOWcIY=";
};
nativeBuildInputs = [
@@ -14,14 +14,14 @@
buildPythonPackage rec {
pname = "google-cloud-bigquery-datatransfer";
version = "3.14.1";
version = "3.15.0";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-v9gBSb9TYvaqF1/g7dJshSkJ2RlCAWXGdf7yPlne0I4=";
hash = "sha256-/LBhPJorIQvyiInfNy7PJcVyOvH217FErtwiC2XTZvQ=";
};
propagatedBuildInputs = [
@@ -13,14 +13,14 @@
buildPythonPackage rec {
pname = "google-cloud-compute";
version = "1.16.1";
version = "1.17.0";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-P/A08nd3ZP4GsySd3Q6TM+kuXRabcnnI1aFd+svMz5E=";
hash = "sha256-dPs7hSe0YcD3luNqHkF6T8fTHC4/u3HMJwsw6THWL44=";
};
nativeBuildInputs = [
@@ -9,20 +9,25 @@
, pytest-asyncio
, pytestCheckHook
, pythonOlder
, setuptools
}:
buildPythonPackage rec {
pname = "google-cloud-kms";
version = "2.19.2";
format = "setuptools";
version = "2.21.2";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-F6UDRZLoXvADHSW75YlL2y1xlGCFWYC/62iqTo/8Er0=";
hash = "sha256-8GrZ38gBVE+6EYN4i5ZPawF0g6Zgkapoa1Gr0HSAbIQ=";
};
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
grpc-google-iam-v1
google-api-core
@@ -36,9 +41,11 @@ buildPythonPackage rec {
pytestCheckHook
];
# Disable tests that need credentials
disabledTests = [
# Disable tests that need credentials
"test_list_global_key_rings"
# Tests require PROJECT_ID
"test_list_ekm_connections"
];
pythonImportsCheck = [
@@ -48,8 +55,8 @@ buildPythonPackage rec {
meta = with lib; {
description = "Cloud Key Management Service (KMS) API API client library";
homepage = "https://github.com/googleapis/python-kms";
changelog = "https://github.com/googleapis/python-kms/blob/v${version}/CHANGELOG.md";
homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-kms";
changelog = "https://github.com/googleapis/google-cloud-python/blob/google-cloud-kms-v${version}/packages/google-cloud-kms/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ ];
};
@@ -17,14 +17,14 @@
buildPythonPackage rec {
pname = "google-cloud-pubsub";
version = "2.19.6";
version = "2.19.7";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-Tq5LyYRj29rq11l/dmb/4U/GKqvtEOPjIslcsFD6fb4=";
hash = "sha256-2l8eshfAcnvvp8hbm5XmqJsytCLVSMnPmh4ClBAnC4c=";
};
nativeBuildInputs = [
@@ -13,14 +13,14 @@
buildPythonPackage rec {
pname = "google-cloud-secret-manager";
version = "2.18.1";
version = "2.18.2";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-MQVV88jLl39KRtRFTsosg/7WoJ88SzW4T2+h+P71UCQ=";
hash = "sha256-oA1iEVpwCD6GsdRMp+vK4EGzakTMYupX3kAFcx+NPIg=";
};
nativeBuildInputs = [
@@ -12,16 +12,16 @@
buildPythonPackage rec {
pname = "griffe";
version = "0.40.1";
format = "pyproject";
version = "0.41.0";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "mkdocstrings";
repo = pname;
repo = "griffe";
rev = "refs/tags/${version}";
hash = "sha256-DaLxGEwR2Z9IEkKbLkOy7Q3dvvmwTNBNMzYxNoeZMJE=";
hash = "sha256-or0kXc8YJl7+95gM54MaviDdErN0vqBnCtAavZM938k=";
};
nativeBuildInputs = [
@@ -52,6 +52,6 @@ buildPythonPackage rec {
homepage = "https://github.com/huggingface/huggingface_hub";
changelog = "https://github.com/huggingface/huggingface_hub/releases/tag/v${version}";
license = licenses.asl20;
maintainers = with maintainers; [ kira-bruneau ];
maintainers = with maintainers; [ ];
};
}
@@ -3,15 +3,16 @@
, buildPythonPackage
, fetchFromGitHub
, orjson
, unittestCheckHook
, pythonOlder
, redis
, setuptools
, unittestCheckHook
}:
buildPythonPackage rec {
pname = "karton-core";
version = "5.3.2";
format = "setuptools";
version = "5.3.3";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -19,9 +20,13 @@ buildPythonPackage rec {
owner = "CERT-Polska";
repo = "karton";
rev = "refs/tags/v${version}";
hash = "sha256-/MPD83sBo9n/dI1uXbHbjvz6upJSJrssMGmGwfQ+KE8=";
hash = "sha256-RVHhMKoQAqsddziK/vWGynSL9mxMuccNEGzoJTx8KAA=";
};
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
boto3
orjson
@@ -30,7 +30,7 @@
buildPythonPackage rec {
pname = "llama-index-core";
version = "0.10.12";
version = "0.10.14";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -39,7 +39,7 @@ buildPythonPackage rec {
owner = "run-llama";
repo = "llama_index";
rev = "refs/tags/v${version}";
hash = "sha256-Xn4Gqr5zjZGAEHg5duqkS9GLWWlC83puDHNktNYzvDw=";
hash = "sha256-9EbhiW2VPaX6Ffrm5a3pJxw2M73x1JOna+OurSJErSM=";
};
sourceRoot = "${src.name}/${pname}";
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "neo4j";
version = "5.17.0";
version = "5.18.0";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "neo4j";
repo = "neo4j-python-driver";
rev = "refs/tags/${version}";
hash = "sha256-BZo4TzFrH1ATl09zRXy+1AFJSBopmByDHe7oITZy7pA=";
hash = "sha256-rp0N2k23WZ86hqqz4ByW5gdyU2eYLVppyEJEdY/Yk8w=";
};
postPatch = ''
@@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "pydeconz";
version = "114";
version = "115";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "Kane610";
repo = "deconz";
rev = "refs/tags/v${version}";
hash = "sha256-XN6di3pxB7lhZ5TQnyHr7nKA0STBi0CVzGnhvRDsbFY=";
hash = "sha256-NjzONVSJ4GEaIeC5ytnTi8JpZY1yIq3LN8vbMy3n0vs=";
};
postPatch = ''
@@ -8,7 +8,7 @@
magma-hip,
magma-cuda-static,
# Use the system NCCL as long as we're targeting CUDA on a supported platform.
useSystemNccl ? (cudaSupport && !cudaPackages.nccl.meta.unsupported),
useSystemNccl ? (cudaSupport && !cudaPackages.nccl.meta.unsupported || rocmSupport),
MPISupport ? false, mpi,
buildDocs ? false,
@@ -8,14 +8,14 @@
buildPythonPackage rec {
pname = "userpath";
version = "1.9.1";
format = "pyproject";
version = "1.9.2";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-zoF2co2YyRS2QBeBvzsj/M2WjRZHU5yHiMcBA3XgJ5Y=";
hash = "sha256-bFIojasGklfMgxhG0V1IEzUiRV1Gd+5pqXgfEdvv2BU=";
};
nativeBuildInputs = [
@@ -36,14 +36,14 @@
buildPythonPackage rec {
pname = "vllm";
version = "0.3.1";
version = "0.3.2";
format = "pyproject";
src = fetchFromGitHub {
owner = "vllm-project";
repo = pname;
rev = "v${version}";
hash = "sha256-hfd4ScU0mkZ7z4+w08BUA1K9bPXSiFThfiO+Ll2MTtg=";
hash = "sha256-ZFwlR8Xnen7FFblwzPJm0k+3iEo2p27QhfRaDfzwbOM=";
};
# Otherwise it tries to enumerate host supported ROCM gfx archs, and that is not possible due to sandboxing.
@@ -62,11 +62,11 @@ buildPythonPackage rec {
substituteInPlace requirements.txt \
--replace "cupy-cuda12x == 12.1.0" "cupy == 12.3.0"
substituteInPlace requirements-build.txt \
--replace "torch==2.1.2" "torch == 2.2.0"
--replace "torch==2.1.2" "torch == 2.2.1"
substituteInPlace pyproject.toml \
--replace "torch == 2.1.2" "torch == 2.2.0"
--replace "torch == 2.1.2" "torch == 2.2.1"
substituteInPlace requirements.txt \
--replace "torch == 2.1.2" "torch == 2.2.0"
--replace "torch == 2.1.2" "torch == 2.2.1"
'' + lib.optionalString rocmSupport ''
substituteInPlace setup.py \
--replace "'hipcc', '--version'" "'${writeShellScript "hipcc-version-stub" "echo HIP version: 0.0"}'"
+4 -1
View File
@@ -452,6 +452,7 @@ let
topicmodels = [ pkgs.gsl ];
udunits2 = with pkgs; [ udunits expat ];
units = [ pkgs.udunits ];
vdiffr = [ pkgs.libpng.dev ];
V8 = [ pkgs.v8 ];
XBRL = with pkgs; [ zlib libxml2.dev ];
XLConnect = [ pkgs.jdk ];
@@ -500,9 +501,10 @@ let
RDieHarder = [ pkgs.gsl ];
QF = [ pkgs.gsl ];
PICS = [ pkgs.gsl ];
RcppCWB = [ pkgs.pkg-config ];
RcppCWB = [ pkgs.pkg-config pkgs.pcre2 ];
redux = [ pkgs.pkg-config ];
rrd = [ pkgs.pkg-config ];
Rbwa = [ pkgs.zlib.dev ];
trackViewer = [ pkgs.zlib.dev ];
themetagenomics = [ pkgs.zlib.dev ];
NanoMethViz = [ pkgs.zlib.dev ];
@@ -593,6 +595,7 @@ let
Signac = [ pkgs.zlib.dev ];
TransView = [ pkgs.zlib.dev ];
bigsnpr = [ pkgs.zlib.dev ];
zlib = [ pkgs.zlib.dev ];
divest = [ pkgs.zlib.dev ];
hipread = [ pkgs.zlib.dev ];
jackalope = with pkgs; [ zlib.dev xz.dev ];
+3 -3
View File
@@ -7,16 +7,16 @@
buildGoModule rec {
pname = "bearer";
version = "1.39.0";
version = "1.40.1";
src = fetchFromGitHub {
owner = "bearer";
repo = "bearer";
rev = "refs/tags/v${version}";
hash = "sha256-GgdEOTrzaTsSTRW2NUzdxzUxGI1UCIk/6mAoyRysRVc=";
hash = "sha256-yfgbkF7ANJyyy3qYNLOg85+MJ8SdHCZkXsOhH0vzy8o=";
};
vendorHash = "sha256-fCSgRjsioXyt9mxQoZxyA+F63FAwlmwJAjquR+zAgQg=";
vendorHash = "sha256-TKdZVNt98jrIzXekfxRXfxEfEhb2doWTTGojOLOcKzU=";
subPackages = [
"cmd/bearer"
+2 -2
View File
@@ -1,13 +1,13 @@
{ fetchFromGitLab }: rec {
pname = "mobilizon";
version = "4.0.2";
version = "4.1.0";
src = fetchFromGitLab {
domain = "framagit.org";
owner = "framasoft";
repo = pname;
rev = version;
sha256 = "sha256-Ri1qCiQaKlSTSSGWHzFqYBCoTEMtOtwe0Kli466dv4M=";
sha256 = "sha256-aS57126Nhz/QvouSyZ9wUu78/eoCYbRwyncUUmO1Dv8=";
};
}
+2 -2
View File
@@ -57,8 +57,8 @@ mixRelease rec {
src = fetchFromGitHub {
owner = "danhper";
repo = "elixir-web-push-encryption";
rev = "70f00d06cbd88c9ac382e0ad2539e54448e9d8da";
sha256 = "sha256-b4ZMrt/8n2sPUFtCDRTwXS1qWm5VlYdbx8qC0R0boOA=";
rev = "6e143dcde0a2854c4f0d72816b7ecab696432779";
sha256 = "sha256-Da+/28SPZuUQBi8fQj31zmMvhMrYUaQIW4U4E+mRtMg=";
};
beamDeps = with final; [ httpoison jose ];
};
+1 -1
View File
@@ -6,7 +6,7 @@ in
buildNpmPackage {
inherit (common) pname version src;
npmDepsHash = "sha256-z/xWumL1wri63cGGMHMBq6WVDe81bp8tILsZa53a7FM=";
npmDepsHash = "sha256-pF07ul71zg9iLM/ja4Fz/6IXpqdMKb7KwOH02Q9lyCg=";
nativeBuildInputs = [ imagemagick ];
+112 -138
View File
@@ -73,14 +73,27 @@ let
beamDeps = [ xml_builder ];
};
bandit = buildMix rec {
name = "bandit";
version = "1.2.3";
src = fetchHex {
pkg = "bandit";
version = "${version}";
sha256 = "3e29150245a9b5f56944434e5240966e75c917dad248f689ab589b32187a81af";
};
beamDeps = [ hpax plug telemetry thousand_island websock ];
};
bunt = buildMix rec {
name = "bunt";
version = "0.2.1";
version = "1.0.0";
src = fetchHex {
pkg = "bunt";
version = "${version}";
sha256 = "a330bfb4245239787b15005e66ae6845c9cd524a288f0d141c148b02603777a5";
sha256 = "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5";
};
beamDeps = [];
@@ -101,12 +114,12 @@ let
castore = buildMix rec {
name = "castore";
version = "1.0.4";
version = "1.0.5";
src = fetchHex {
pkg = "castore";
version = "${version}";
sha256 = "9418c1b8144e11656f0be99943db4caf04612e3eaecefb5dae9a2a87565584f8";
sha256 = "8d7c597c3e4a64c395980882d4bca3cebb8d74197c590dc272cfd3b6a6310578";
};
beamDeps = [];
@@ -177,19 +190,6 @@ let
beamDeps = [];
};
connection = buildMix rec {
name = "connection";
version = "1.1.0";
src = fetchHex {
pkg = "connection";
version = "${version}";
sha256 = "722c1eb0a418fbe91ba7bd59a47e28008a189d47e37e0e7bb85585a016b2869c";
};
beamDeps = [];
};
cors_plug = buildMix rec {
name = "cors_plug";
version = "3.0.3";
@@ -203,53 +203,14 @@ let
beamDeps = [ plug ];
};
cowboy = buildErlangMk rec {
name = "cowboy";
version = "2.10.0";
src = fetchHex {
pkg = "cowboy";
version = "${version}";
sha256 = "3afdccb7183cc6f143cb14d3cf51fa00e53db9ec80cdcd525482f5e99bc41d6b";
};
beamDeps = [ cowlib ranch ];
};
cowboy_telemetry = buildRebar3 rec {
name = "cowboy_telemetry";
version = "0.4.0";
src = fetchHex {
pkg = "cowboy_telemetry";
version = "${version}";
sha256 = "7d98bac1ee4565d31b62d59f8823dfd8356a169e7fcbb83831b8a5397404c9de";
};
beamDeps = [ cowboy telemetry ];
};
cowlib = buildRebar3 rec {
name = "cowlib";
version = "2.12.1";
src = fetchHex {
pkg = "cowlib";
version = "${version}";
sha256 = "163b73f6367a7341b33c794c4e88e7dbfe6498ac42dcd69ef44c5bc5507c8db0";
};
beamDeps = [];
};
credo = buildMix rec {
name = "credo";
version = "1.7.1";
version = "1.7.5";
src = fetchHex {
pkg = "credo";
version = "${version}";
sha256 = "e9871c6095a4c0381c89b6aa98bc6260a8ba6addccf7f6a53da8849c748a58a2";
sha256 = "f799e9b5cd1891577d8c773d245668aa74a2fcd15eb277f51a0131690ebfb3fd";
};
beamDeps = [ bunt file_system jason ];
@@ -309,12 +270,12 @@ let
dialyxir = buildMix rec {
name = "dialyxir";
version = "1.4.2";
version = "1.4.3";
src = fetchHex {
pkg = "dialyxir";
version = "${version}";
sha256 = "516603d8067b2fd585319e4b13d3674ad4f314a5902ba8130cd97dc902ce6bbd";
sha256 = "bf2cfb75cd5c5006bec30141b131663299c661a864ec7fbbc72dfa557487a986";
};
beamDeps = [ erlex ];
@@ -348,12 +309,12 @@ let
earmark_parser = buildMix rec {
name = "earmark_parser";
version = "1.4.38";
version = "1.4.39";
src = fetchHex {
pkg = "earmark_parser";
version = "${version}";
sha256 = "2cd0907795aaef0c7e8442e376633c5b3bd6edc8dbbdc539b22f095501c1cdb6";
sha256 = "06553a88d1f1846da9ef066b87b57c6f605552cfbe40d20bd8d59cc6bde41944";
};
beamDeps = [];
@@ -374,12 +335,12 @@ let
ecto = buildMix rec {
name = "ecto";
version = "3.11.0";
version = "3.11.1";
src = fetchHex {
pkg = "ecto";
version = "${version}";
sha256 = "7769dad267ef967310d6e988e92d772659b11b09a0c015f101ce0fff81ce1f81";
sha256 = "ebd3d3772cd0dfcd8d772659e41ed527c28b2a8bde4b00fe03e0463da0f1983b";
};
beamDeps = [ decimal jason telemetry ];
@@ -400,12 +361,12 @@ let
ecto_dev_logger = buildMix rec {
name = "ecto_dev_logger";
version = "0.9.0";
version = "0.10.0";
src = fetchHex {
pkg = "ecto_dev_logger";
version = "${version}";
sha256 = "2e8bc98b4ae4fcc7108896eef7da5a109afad829f4fb2eb46d677fdc9101c2d5";
sha256 = "a55e58bad5d5c9b8ef2a3c3347dbdf7efa880a5371cf1457e44b41f489a43927";
};
beamDeps = [ ecto jason ];
@@ -439,12 +400,12 @@ let
ecto_sql = buildMix rec {
name = "ecto_sql";
version = "3.11.0";
version = "3.11.1";
src = fetchHex {
pkg = "ecto_sql";
version = "${version}";
sha256 = "77aa3677169f55c2714dda7352d563002d180eb33c0dc29cd36d39c0a1a971f5";
sha256 = "ce14063ab3514424276e7e360108ad6c2308f6d88164a076aac8a387e1fea634";
};
beamDeps = [ db_connection ecto postgrex telemetry ];
@@ -465,15 +426,15 @@ let
elixir_make = buildMix rec {
name = "elixir_make";
version = "0.7.7";
version = "0.7.8";
src = fetchHex {
pkg = "elixir_make";
version = "${version}";
sha256 = "5bc19fff950fad52bbe5f211b12db9ec82c6b34a9647da0c2224b8b8464c7e6c";
sha256 = "7a71945b913d37ea89b06966e1342c85cfe549b15e6d6d081e8081c493062c07";
};
beamDeps = [ castore ];
beamDeps = [ castore certifi ];
};
erlex = buildMix rec {
@@ -530,12 +491,12 @@ let
ex_cldr_calendars = buildMix rec {
name = "ex_cldr_calendars";
version = "1.22.1";
version = "1.23.0";
src = fetchHex {
pkg = "ex_cldr_calendars";
version = "${version}";
sha256 = "e7408cd9e8318b2ef93b76728e84484ddc3ea6d7c894fbc811c54122a7140169";
sha256 = "06d2407e699032d5cdc515593b7ce7869f10ce28e98a4ed68d9b21e5001036d4";
};
beamDeps = [ ex_cldr_numbers ex_doc jason ];
@@ -582,12 +543,12 @@ let
ex_cldr_numbers = buildMix rec {
name = "ex_cldr_numbers";
version = "2.32.3";
version = "2.32.4";
src = fetchHex {
pkg = "ex_cldr_numbers";
version = "${version}";
sha256 = "7b626ff1e59a0ec9c3c5db5ce9ca91a6995e2ab56426b71f3cbf67181ea225f5";
sha256 = "6fd5a82f0785418fa8b698c0be2b1845dff92b77f1b3172c763d37868fb503d2";
};
beamDeps = [ decimal digital_token ex_cldr ex_cldr_currencies jason ];
@@ -608,12 +569,12 @@ let
ex_doc = buildMix rec {
name = "ex_doc";
version = "0.30.9";
version = "0.31.1";
src = fetchHex {
pkg = "ex_doc";
version = "${version}";
sha256 = "d7aaaf21e95dc5cddabf89063327e96867d00013963eadf2c6ad135506a8bc10";
sha256 = "3178c3a407c557d8343479e1ff117a96fd31bafe52a039079593fb0524ef61b0";
};
beamDeps = [ earmark_parser makeup_elixir makeup_erlang ];
@@ -699,12 +660,12 @@ let
expo = buildMix rec {
name = "expo";
version = "0.4.1";
version = "0.5.2";
src = fetchHex {
pkg = "expo";
version = "${version}";
sha256 = "2ff7ba7a798c8c543c12550fa0e2cbc81b95d4974c65855d8d15ba7b37a1ce47";
sha256 = "8c9bfa06ca017c9cb4020fabe980bc7fdb1aaec059fd004c2ab3bff03b1c599c";
};
beamDeps = [];
@@ -725,12 +686,12 @@ let
fast_html = buildMix rec {
name = "fast_html";
version = "2.2.0";
version = "2.3.0";
src = fetchHex {
pkg = "fast_html";
version = "${version}";
sha256 = "064c4f23b4a6168f9187dac8984b056f2c531bb0787f559fd6a8b34b38aefbae";
sha256 = "f18e3c7668f82d3ae0b15f48d48feeb257e28aa5ab1b0dbf781c7312e5da029d";
};
beamDeps = [ elixir_make nimble_pool ];
@@ -777,12 +738,12 @@ let
floki = buildMix rec {
name = "floki";
version = "0.35.2";
version = "0.35.4";
src = fetchHex {
pkg = "floki";
version = "${version}";
sha256 = "6b05289a8e9eac475f644f09c2e4ba7e19201fd002b89c28c1293e7bd16773d9";
sha256 = "27fa185d3469bd8fc5947ef0f8d5c4e47f0af02eb6b070b63c868f69e3af0204";
};
beamDeps = [];
@@ -868,12 +829,12 @@ let
gettext = buildMix rec {
name = "gettext";
version = "0.23.1";
version = "0.24.0";
src = fetchHex {
pkg = "gettext";
version = "${version}";
sha256 = "19d744a36b809d810d610b57c27b934425859d158ebd56561bc41f7eeb8795db";
sha256 = "bdf75cdfcbe9e4622dd18e034b227d77dd17f0f133853a1c73b97b3d6c770e8b";
};
beamDeps = [ expo ];
@@ -933,12 +894,12 @@ let
hammer = buildMix rec {
name = "hammer";
version = "6.1.0";
version = "6.2.1";
src = fetchHex {
pkg = "hammer";
version = "${version}";
sha256 = "b47e415a562a6d072392deabcd58090d8a41182cf9044cdd6b0d0faaaf68ba57";
sha256 = "b9476d0c13883d2dc0cc72e786bac6ac28911fba7cc2e04b70ce6a6d9c4b2bdc";
};
beamDeps = [ poolboy ];
@@ -957,6 +918,19 @@ let
beamDeps = [];
};
hpax = buildMix rec {
name = "hpax";
version = "0.1.2";
src = fetchHex {
pkg = "hpax";
version = "${version}";
sha256 = "2c87843d5a23f5f16748ebe77969880e29809580efdaccd615cd3bed628a8c13";
};
beamDeps = [];
};
html_entities = buildMix rec {
name = "html_entities";
version = "0.5.2";
@@ -972,12 +946,12 @@ let
http_signatures = buildMix rec {
name = "http_signatures";
version = "0.1.1";
version = "0.1.2";
src = fetchHex {
pkg = "http_signatures";
version = "${version}";
sha256 = "cc3b8a007322cc7b624c0c15eec49ee58ac977254ff529a3c482f681465942a3";
sha256 = "f08aa9ac121829dae109d608d83c84b940ef2f183ae50f2dd1e9a8bc619d8be7";
};
beamDeps = [];
@@ -1011,12 +985,12 @@ let
inet_cidr = buildMix rec {
name = "inet_cidr";
version = "1.0.4";
version = "1.0.8";
src = fetchHex {
pkg = "inet_cidr";
version = "${version}";
sha256 = "64a2d30189704ae41ca7dbdd587f5291db5d1dda1414e0774c29ffc81088c1bc";
sha256 = "d5b26da66603bb56c933c65214c72152f0de9a6ea53618b56d63302a68f6a90e";
};
beamDeps = [];
@@ -1128,12 +1102,12 @@ let
makeup_erlang = buildMix rec {
name = "makeup_erlang";
version = "0.1.2";
version = "0.1.5";
src = fetchHex {
pkg = "makeup_erlang";
version = "${version}";
sha256 = "f3f5a1ca93ce6e092d92b6d9c049bcda58a3b617a8d888f8e7231c85630e8108";
sha256 = "94d2e986428585a21516d7d7149781480013c56e30c6a233534bedf38867a59a";
};
beamDeps = [ makeup ];
@@ -1206,12 +1180,12 @@ let
mix_test_watch = buildMix rec {
name = "mix_test_watch";
version = "1.1.1";
version = "1.1.2";
src = fetchHex {
pkg = "mix_test_watch";
version = "${version}";
sha256 = "f82262b54dee533467021723892e15c3267349849f1f737526523ecba4e6baae";
sha256 = "8ce79fc69a304eec81ab6c1a05de2eb026a8959f65fb47f933ce8eb56018ba35";
};
beamDeps = [ file_system ];
@@ -1336,12 +1310,12 @@ let
oban = buildMix rec {
name = "oban";
version = "2.16.3";
version = "2.17.5";
src = fetchHex {
pkg = "oban";
version = "${version}";
sha256 = "4d8a7fb62f63cf2f2080c78954425f5fd8916ef57196b7f79b5bc657abb2ac5f";
sha256 = "fd3ccbbfdbb2bc77107c8790946f9821a831ed0720688485ee6adcd7863886cf";
};
beamDeps = [ ecto_sql jason postgrex telemetry ];
@@ -1375,15 +1349,15 @@ let
phoenix = buildMix rec {
name = "phoenix";
version = "1.7.10";
version = "1.7.11";
src = fetchHex {
pkg = "phoenix";
version = "${version}";
sha256 = "cf784932e010fd736d656d7fead6a584a4498efefe5b8227e9f383bf15bb79d0";
sha256 = "b1ec57f2e40316b306708fe59b92a16b9f6f4bf50ccfa41aa8c7feb79e0ec02a";
};
beamDeps = [ castore jason phoenix_pubsub phoenix_template phoenix_view plug plug_cowboy plug_crypto telemetry websock_adapter ];
beamDeps = [ castore jason phoenix_pubsub phoenix_template phoenix_view plug plug_crypto telemetry websock_adapter ];
};
phoenix_ecto = buildMix rec {
@@ -1427,12 +1401,12 @@ let
phoenix_live_view = buildMix rec {
name = "phoenix_live_view";
version = "0.20.1";
version = "0.20.10";
src = fetchHex {
pkg = "phoenix_live_view";
version = "${version}";
sha256 = "be494fd1215052729298b0e97d5c2ce8e719c00854b82cd8cf15c1cd7fcf6294";
sha256 = "daa17b3fbdfd6347aaade4db01a5dd24d23af0f4344e2e24934e8adfb4a11607";
};
beamDeps = [ jason phoenix phoenix_html phoenix_template phoenix_view plug telemetry ];
@@ -1453,12 +1427,12 @@ let
phoenix_swoosh = buildMix rec {
name = "phoenix_swoosh";
version = "1.2.0";
version = "1.2.1";
src = fetchHex {
pkg = "phoenix_swoosh";
version = "${version}";
sha256 = "e88d117251e89a16b92222415a6d87b99a96747ddf674fc5c7631de734811dba";
sha256 = "4000eeba3f9d7d1a6bf56d2bd56733d5cadf41a7f0d8ffe5bb67e7d667e204a2";
};
beamDeps = [ hackney phoenix phoenix_html phoenix_view swoosh ];
@@ -1466,12 +1440,12 @@ let
phoenix_template = buildMix rec {
name = "phoenix_template";
version = "1.0.3";
version = "1.0.4";
src = fetchHex {
pkg = "phoenix_template";
version = "${version}";
sha256 = "16f4b6588a4152f3cc057b9d0c0ba7e82ee23afa65543da535313ad8d25d8e2c";
sha256 = "2c0c81f0e5c6753faf5cca2f229c9709919aba34fab866d3bc05060c9c444206";
};
beamDeps = [ phoenix_html ];
@@ -1492,30 +1466,17 @@ let
plug = buildMix rec {
name = "plug";
version = "1.15.2";
version = "1.15.3";
src = fetchHex {
pkg = "plug";
version = "${version}";
sha256 = "02731fa0c2dcb03d8d21a1d941bdbbe99c2946c0db098eee31008e04c6283615";
sha256 = "cc4365a3c010a56af402e0809208873d113e9c38c401cabd88027ef4f5c01fd2";
};
beamDeps = [ mime plug_crypto telemetry ];
};
plug_cowboy = buildMix rec {
name = "plug_cowboy";
version = "2.6.1";
src = fetchHex {
pkg = "plug_cowboy";
version = "${version}";
sha256 = "de36e1a21f451a18b790f37765db198075c25875c64834bcc82d90b309eb6613";
};
beamDeps = [ cowboy cowboy_telemetry plug ];
};
plug_crypto = buildMix rec {
name = "plug_crypto";
version = "2.0.0";
@@ -1544,12 +1505,12 @@ let
postgrex = buildMix rec {
name = "postgrex";
version = "0.17.3";
version = "0.17.4";
src = fetchHex {
pkg = "postgrex";
version = "${version}";
sha256 = "946cf46935a4fdca7a81448be76ba3503cff082df42c6ec1ff16a4bdfbfb098d";
sha256 = "6458f7d5b70652bc81c3ea759f91736c16a31be000f306d3c64bcdfe9a18b3cc";
};
beamDeps = [ db_connection decimal jason ];
@@ -1570,12 +1531,12 @@ let
ranch = buildRebar3 rec {
name = "ranch";
version = "1.8.0";
version = "2.1.0";
src = fetchHex {
pkg = "ranch";
version = "${version}";
sha256 = "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5";
sha256 = "244ee3fa2a6175270d8e1fc59024fd9dbc76294a321057de8f803b1479e76916";
};
beamDeps = [];
@@ -1617,7 +1578,7 @@ let
sha256 = "f9fc7641ef61e885510f5e5963c2948b9de1de597c63f781e9d3d6c9c8681ab4";
};
beamDeps = [ hackney jason plug plug_cowboy ];
beamDeps = [ hackney jason plug ];
};
shortuuid = buildMix rec {
@@ -1635,12 +1596,12 @@ let
sitemapper = buildMix rec {
name = "sitemapper";
version = "0.7.0";
version = "0.8.0";
src = fetchHex {
pkg = "sitemapper";
version = "${version}";
sha256 = "60f7a684e5e9fe7f10ac5b69f48b0be2bcbba995afafcb3c143fc0c8ef1f223f";
sha256 = "7cd42b454035da457151c9b6a314b688b5bbe5383add95badc65d013c25989c5";
};
beamDeps = [ xml_builder ];
@@ -1739,15 +1700,15 @@ let
swoosh = buildMix rec {
name = "swoosh";
version = "1.14.1";
version = "1.15.3";
src = fetchHex {
pkg = "swoosh";
version = "${version}";
sha256 = "87da72260b4351678f96aec61db5c2acc8a88cda2cf2c4f534eb4c9c461350c7";
sha256 = "97a667b96ca8cc48a4679f6cd1f40a36d8701cf052587298473614caa70f164a";
};
beamDeps = [ cowboy gen_smtp hackney jason mime plug plug_cowboy telemetry ];
beamDeps = [ bandit gen_smtp hackney jason mime plug telemetry ];
};
telemetry = buildRebar3 rec {
@@ -1776,6 +1737,19 @@ let
beamDeps = [ castore hackney jason mime telemetry ];
};
thousand_island = buildMix rec {
name = "thousand_island";
version = "1.3.5";
src = fetchHex {
pkg = "thousand_island";
version = "${version}";
sha256 = "2be6954916fdfe4756af3239fb6b6d75d0b8063b5df03ba76fd8a4c87849e180";
};
beamDeps = [ telemetry ];
};
timex = buildMix rec {
name = "timex";
version = "3.7.11";
@@ -1791,12 +1765,12 @@ let
tls_certificate_check = buildRebar3 rec {
name = "tls_certificate_check";
version = "1.20.0";
version = "1.21.0";
src = fetchHex {
pkg = "tls_certificate_check";
version = "${version}";
sha256 = "ab57b74b1a63dc5775650699a3ec032ec0065005eff1f020818742b7312a8426";
sha256 = "6cee6cffc35a390840d48d463541d50746a7b0e421acaadb833cfc7961e490e7";
};
beamDeps = [ ssl_verify_fun ];
@@ -1804,12 +1778,12 @@ let
tz_world = buildMix rec {
name = "tz_world";
version = "1.3.1";
version = "1.3.2";
src = fetchHex {
pkg = "tz_world";
version = "${version}";
sha256 = "901ed2b4a4430ecab3765244da4a19e6f19141867c2ab3753924919b87ed2224";
sha256 = "d1a345e07b3378c4c902ad54fbd5d54c8c3dd55dba883b7407fe57bcec45ff2a";
};
beamDeps = [ castore certifi geo jason ];
@@ -1830,12 +1804,12 @@ let
ueberauth = buildMix rec {
name = "ueberauth";
version = "0.10.5";
version = "0.10.8";
src = fetchHex {
pkg = "ueberauth";
version = "${version}";
sha256 = "3efd1f31d490a125c7ed453b926f7c31d78b97b8a854c755f5c40064bf3ac9e1";
sha256 = "f2d3172e52821375bccb8460e5fa5cb91cfd60b19b636b6e57e9759b6f8c10c1";
};
beamDeps = [ plug ];
@@ -2020,7 +1994,7 @@ let
sha256 = "4b977ba4a01918acbf77045ff88de7f6972c2a009213c515a445c48f224ffce9";
};
beamDeps = [ plug plug_cowboy websock ];
beamDeps = [ bandit plug websock ];
};
xml_builder = buildMix rec {
+3 -3
View File
@@ -8,13 +8,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "fuse-ext2";
version = "unstable-2020-07-12";
version = "0.0.11";
src = fetchFromGitHub {
owner = "alperakcan";
repo = "fuse-ext2";
rev = "899f17c982dadcea13aa447c3a83c53b9431435a";
sha256 = "AE7Z+HePAy/h2TCNI9tsz6GVLdnE2AIOM3GnQzerKn8=";
rev = "v${finalAttrs.version}";
hash = "sha256-VQMftlnd6q1PdwhSIQwjffjnkhupY8MUc8E+p1tgvUM=";
};
patches = [
+18 -20
View File
@@ -1,19 +1,19 @@
{ lib
, mkDerivation
, stdenv
, fetchFromGitHub
, cmake
, extra-cmake-modules
, fcitx5
, qtx11extras
, libxcb
, libXdmcp
, qtbase
, qt6
, qtwayland
, wrapQtAppsHook
, wayland
}:
mkDerivation rec {
pname = "fcitx5-qt";
let
majorVersion = lib.versions.major qtbase.version;
in
stdenv.mkDerivation rec {
pname = "fcitx5-qt${majorVersion}";
version = "5.1.4";
src = fetchFromGitHub {
@@ -23,30 +23,28 @@ mkDerivation rec {
sha256 = "sha256-bVH2US/uEZGERslnAh/fyUbzR9fK1UfG4J+mOmrIE8Y=";
};
preConfigure = ''
substituteInPlace qt5/platforminputcontext/CMakeLists.txt \
--replace \$"{CMAKE_INSTALL_QT5PLUGINDIR}" $out/${qtbase.qtPluginPrefix}
substituteInPlace qt6/platforminputcontext/CMakeLists.txt \
--replace \$"{CMAKE_INSTALL_QT6PLUGINDIR}" $out/${qt6.qtbase.qtPluginPrefix}
postPatch = ''
substituteInPlace qt${majorVersion}/platforminputcontext/CMakeLists.txt \
--replace \$"{CMAKE_INSTALL_QT${majorVersion}PLUGINDIR}" $out/${qtbase.qtPluginPrefix}
'';
cmakeFlags = [
# adding qt6 to buildInputs would result in error: detected mismatched Qt dependencies
"-DCMAKE_PREFIX_PATH=${qt6.qtbase};${qt6.qtwayland}"
"-DENABLE_QT4=0"
"-DENABLE_QT6=1"
"-DENABLE_QT4=OFF"
"-DENABLE_QT5=OFF"
"-DENABLE_QT6=OFF"
"-DENABLE_QT${majorVersion}=ON"
];
nativeBuildInputs = [
cmake
extra-cmake-modules
wrapQtAppsHook
];
buildInputs = [
qtbase
qtwayland
fcitx5
qtx11extras
libxcb
libXdmcp
wayland
];
@@ -4,7 +4,8 @@
, fcitx5
, withConfigtool ? true
, fcitx5-configtool
, fcitx5-qt
, libsForQt5
, qt6Packages
, fcitx5-gtk
, addons ? [ ]
}:
@@ -14,7 +15,8 @@ symlinkJoin {
paths = [
fcitx5
fcitx5-qt
libsForQt5.fcitx5-qt
qt6Packages.fcitx5-qt
fcitx5-gtk
] ++ lib.optionals withConfigtool [
fcitx5-configtool
+1 -1
View File
@@ -8044,7 +8044,7 @@ with pkgs;
fcitx5 = libsForQt5.callPackage ../tools/inputmethods/fcitx5 { };
fcitx5-with-addons = libsForQt5.callPackage ../tools/inputmethods/fcitx5/with-addons.nix { };
fcitx5-with-addons = callPackage ../tools/inputmethods/fcitx5/with-addons.nix { };
fcitx5-bamboo = callPackage ../tools/inputmethods/fcitx5/fcitx5-bamboo.nix { };
+2
View File
@@ -32,6 +32,8 @@ makeScopeWithSplicing' {
accounts-qt = callPackage ../development/libraries/accounts-qt { };
appstream-qt = callPackage ../development/libraries/appstream/qt.nix { };
fcitx5-qt = callPackage ../tools/inputmethods/fcitx5/fcitx5-qt.nix { };
kdsoap = callPackage ../development/libraries/kdsoap { };
kcolorpicker = callPackage ../development/libraries/kcolorpicker { };