Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2024-05-13 18:01:35 +00:00 committed by GitHub
commit 0184a255d7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
132 changed files with 3629 additions and 765 deletions

View File

@ -20,7 +20,7 @@ jobs:
if: github.repository_owner == 'NixOS' && github.event.pull_request.merged == true && (github.event_name != 'labeled' || startsWith('backport', github.event.label.name)) if: github.repository_owner == 'NixOS' && github.event.pull_request.merged == true && (github.event_name != 'labeled' || startsWith('backport', github.event.label.name))
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with: with:
ref: ${{ github.event.pull_request.head.sha }} ref: ${{ github.event.pull_request.head.sha }}
- name: Create backport PRs - name: Create backport PRs

View File

@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
# we don't limit this action to only NixOS repo since the checks are cheap and useful developer feedback # we don't limit this action to only NixOS repo since the checks are cheap and useful developer feedback
steps: steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26 - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
- uses: cachix/cachix-action@18cf96c7c98e048e10a83abd92116114cd8504be # v14 - uses: cachix/cachix-action@18cf96c7c98e048e10a83abd92116114cd8504be # v14
with: with:

View File

@ -91,7 +91,7 @@ jobs:
exit 1 exit 1
fi fi
echo "mergedSha=$mergedSha" >> "$GITHUB_ENV" echo "mergedSha=$mergedSha" >> "$GITHUB_ENV"
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with: with:
# pull_request_target checks out the base branch by default # pull_request_target checks out the base branch by default
ref: ${{ env.mergedSha }} ref: ${{ env.mergedSha }}

View File

@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS' if: github.repository_owner == 'NixOS'
steps: steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with: with:
fetch-depth: 0 fetch-depth: 0
filter: blob:none filter: blob:none

View File

@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS' if: github.repository_owner == 'NixOS'
steps: steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with: with:
# pull_request_target checks out the base branch by default # pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge ref: refs/pull/${{ github.event.pull_request.number }}/merge

View File

@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS' if: github.repository_owner == 'NixOS'
steps: steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with: with:
# pull_request_target checks out the base branch by default # pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge ref: refs/pull/${{ github.event.pull_request.number }}/merge

View File

@ -24,7 +24,7 @@ jobs:
- name: print list of changed files - name: print list of changed files
run: | run: |
cat "$HOME/changed_files" cat "$HOME/changed_files"
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with: with:
# pull_request_target checks out the base branch by default # pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge ref: refs/pull/${{ github.event.pull_request.number }}/merge

View File

@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS' if: github.repository_owner == 'NixOS'
steps: steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with: with:
# pull_request_target checks out the base branch by default # pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge ref: refs/pull/${{ github.event.pull_request.number }}/merge

View File

@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS' if: github.repository_owner == 'NixOS'
steps: steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with: with:
# pull_request_target checks out the base branch by default # pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge ref: refs/pull/${{ github.event.pull_request.number }}/merge

View File

@ -24,7 +24,7 @@ jobs:
if [[ -s "$HOME/changed_files" ]]; then if [[ -s "$HOME/changed_files" ]]; then
echo "CHANGED_FILES=$HOME/changed_files" > "$GITHUB_ENV" echo "CHANGED_FILES=$HOME/changed_files" > "$GITHUB_ENV"
fi fi
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with: with:
# pull_request_target checks out the base branch by default # pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge ref: refs/pull/${{ github.event.pull_request.number }}/merge

View File

@ -41,7 +41,7 @@ jobs:
into: staging-23.11 into: staging-23.11
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }} name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
steps: steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }} - name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
uses: devmasx/merge-branch@854d3ac71ed1e9deb668e0074781b81fdd6e771f # 1.4.0 uses: devmasx/merge-branch@854d3ac71ed1e9deb668e0074781b81fdd6e771f # 1.4.0

View File

@ -39,7 +39,7 @@ jobs:
into: staging into: staging
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }} name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
steps: steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }} - name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
uses: devmasx/merge-branch@854d3ac71ed1e9deb668e0074781b81fdd6e771f # 1.4.0 uses: devmasx/merge-branch@854d3ac71ed1e9deb668e0074781b81fdd6e771f # 1.4.0

View File

@ -16,7 +16,7 @@ jobs:
if: github.repository_owner == 'NixOS' && github.ref == 'refs/heads/master' # ensure workflow_dispatch only runs on master if: github.repository_owner == 'NixOS' && github.ref == 'refs/heads/master' # ensure workflow_dispatch only runs on master
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26 - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
with: with:
nix_path: nixpkgs=channel:nixpkgs-unstable nix_path: nixpkgs=channel:nixpkgs-unstable

View File

@ -209,6 +209,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- [isolate](https://github.com/ioi/isolate), a sandbox for securely executing untrusted programs. Available as [security.isolate](#opt-security.isolate.enable). - [isolate](https://github.com/ioi/isolate), a sandbox for securely executing untrusted programs. Available as [security.isolate](#opt-security.isolate.enable).
- [ydotool](https://github.com/ReimuNotMoe/ydotool), a generic command-line automation tool now has a module. Available as [programs.ydotool](#opt-programs.ydotool.enable).
- [private-gpt](https://github.com/zylon-ai/private-gpt), a service to interact with your documents using the power of LLMs, 100% privately, no data leaks. Available as [services.private-gpt](#opt-services.private-gpt.enable). - [private-gpt](https://github.com/zylon-ai/private-gpt), a service to interact with your documents using the power of LLMs, 100% privately, no data leaks. Available as [services.private-gpt](#opt-services.private-gpt.enable).
- [keto](https://www.ory.sh/keto/), a permission & access control server, the first open source implementation of ["Zanzibar: Google's Consistent, Global Authorization System"](https://research.google/pubs/zanzibar-googles-consistent-global-authorization-system/). - [keto](https://www.ory.sh/keto/), a permission & access control server, the first open source implementation of ["Zanzibar: Google's Consistent, Global Authorization System"](https://research.google/pubs/zanzibar-googles-consistent-global-authorization-system/).

View File

@ -308,6 +308,7 @@
./programs/xwayland.nix ./programs/xwayland.nix
./programs/yabar.nix ./programs/yabar.nix
./programs/yazi.nix ./programs/yazi.nix
./programs/ydotool.nix
./programs/yubikey-touch-detector.nix ./programs/yubikey-touch-detector.nix
./programs/zmap.nix ./programs/zmap.nix
./programs/zsh/oh-my-zsh.nix ./programs/zsh/oh-my-zsh.nix

View File

@ -0,0 +1,83 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.programs.ydotool;
in
{
meta = {
maintainers = with lib.maintainers; [ quantenzitrone ];
};
options.programs.ydotool = {
enable = lib.mkEnableOption ''
ydotoold system service and install ydotool.
Add yourself to the 'ydotool' group to be able to use it.
'';
};
config = lib.mkIf cfg.enable {
users.groups.ydotool = { };
systemd.services.ydotoold = {
description = "ydotoold - backend for ydotool";
wantedBy = [ "multi-user.target" ];
partOf = [ "multi-user.target" ];
serviceConfig = {
Group = "ydotool";
RuntimeDirectory = "ydotoold";
RuntimeDirectoryMode = "0750";
ExecStart = "${lib.getExe' pkgs.ydotool "ydotoold"} --socket-path=/run/ydotoold/socket --socket-perm=0660";
# hardening
## allow access to uinput
DeviceAllow = [ "/dev/uinput" ];
DevicePolicy = "closed";
## allow creation of unix sockets
RestrictAddressFamilies = [ "AF_UNIX" ];
CapabilityBoundingSet = "";
IPAddressDeny = "any";
LockPersonality = true;
MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
PrivateNetwork = true;
PrivateTmp = true;
PrivateUsers = true;
ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectSystem = "strict";
ProtectUser = true;
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallFilter = [
"@system-service"
"~@privileged"
"~@resources"
];
UMask = "0077";
# -> systemd-analyze security score 0.7 SAFE 😀
};
};
environment.variables = {
YDOTOOL_SOCKET = "/run/ydotoold/socket";
};
environment.systemPackages = with pkgs; [ ydotool ];
};
}

View File

@ -27,6 +27,17 @@ in
''; '';
}; };
greeterManagesPlymouth = mkOption {
type = types.bool;
internal = true;
default = false;
description = ''
Don't configure the greetd service to wait for Plymouth to exit.
Enable this if the greeter you're using can manage Plymouth itself to provide a smoother handoff.
'';
};
vt = mkOption { vt = mkOption {
type = types.int; type = types.int;
default = 1; default = 1;
@ -72,8 +83,9 @@ in
]; ];
After = [ After = [
"systemd-user-sessions.service" "systemd-user-sessions.service"
"plymouth-quit-wait.service"
"getty@${tty}.service" "getty@${tty}.service"
] ++ lib.optionals (!cfg.greeterManagesPlymouth) [
"plymouth-quit-wait.service"
]; ];
Conflicts = [ Conflicts = [
"getty@${tty}.service" "getty@${tty}.service"

View File

@ -728,9 +728,6 @@ in
rm -f /tmp/.X0-lock rm -f /tmp/.X0-lock
''; '';
# TODO: move declaring the systemd service to its own mkIf
script = mkIf (config.systemd.services.display-manager.enable == true) "${config.services.displayManager.execCmd}";
# Stop restarting if the display manager stops (crashes) 2 times # Stop restarting if the display manager stops (crashes) 2 times
# in one minute. Starting X typically takes 3-4s. # in one minute. Starting X typically takes 3-4s.
startLimitIntervalSec = 30; startLimitIntervalSec = 30;

View File

@ -4,52 +4,93 @@ let
perlWrapped = pkgs.perl.withPackages (p: with p; [ ConfigIniFiles FileSlurp ]); perlWrapped = pkgs.perl.withPackages (p: with p; [ ConfigIniFiles FileSlurp ]);
description = extra: ''
Whether to include the capability to switch configurations.
Disabling this makes the system unable to be reconfigured via `nixos-rebuild`.
${extra}
'';
in in
{ {
options = { options.system.switch = {
system.switch.enable = lib.mkOption { enable = lib.mkOption {
type = lib.types.bool; type = lib.types.bool;
default = true; default = true;
description = '' description = description ''
Whether to include the capability to switch configurations.
Disabling this makes the system unable to be reconfigured via `nixos-rebuild`.
This is good for image based appliances where updates are handled This is good for image based appliances where updates are handled
outside the image. Reducing features makes the image lighter and outside the image. Reducing features makes the image lighter and
slightly more secure. slightly more secure.
''; '';
}; };
enableNg = lib.mkOption {
type = lib.types.bool;
default = false;
description = description ''
Whether to use `switch-to-configuration-ng`, an experimental
re-implementation of `switch-to-configuration` with the goal of
replacing the original.
'';
};
}; };
config = lib.mkIf config.system.switch.enable { config = lib.mkMerge [
system.activatableSystemBuilderCommands = '' {
mkdir $out/bin assertions = [{
substitute ${./switch-to-configuration.pl} $out/bin/switch-to-configuration \ assertion = with config.system.switch; enable -> !enableNg;
--subst-var out \ message = "Only one of system.switch.enable and system.switch.enableNg may be enabled at a time";
--subst-var-by toplevel ''${!toplevelVar} \ }];
--subst-var-by coreutils "${pkgs.coreutils}" \ }
--subst-var-by distroId ${lib.escapeShellArg config.system.nixos.distroId} \ (lib.mkIf config.system.switch.enable {
--subst-var-by installBootLoader ${lib.escapeShellArg config.system.build.installBootLoader} \ system.activatableSystemBuilderCommands = ''
--subst-var-by localeArchive "${config.i18n.glibcLocales}/lib/locale/locale-archive" \ mkdir $out/bin
--subst-var-by perl "${perlWrapped}" \ substitute ${./switch-to-configuration.pl} $out/bin/switch-to-configuration \
--subst-var-by shell "${pkgs.bash}/bin/sh" \ --subst-var out \
--subst-var-by su "${pkgs.shadow.su}/bin/su" \ --subst-var-by toplevel ''${!toplevelVar} \
--subst-var-by systemd "${config.systemd.package}" \ --subst-var-by coreutils "${pkgs.coreutils}" \
--subst-var-by utillinux "${pkgs.util-linux}" \ --subst-var-by distroId ${lib.escapeShellArg config.system.nixos.distroId} \
; --subst-var-by installBootLoader ${lib.escapeShellArg config.system.build.installBootLoader} \
--subst-var-by localeArchive "${config.i18n.glibcLocales}/lib/locale/locale-archive" \
--subst-var-by perl "${perlWrapped}" \
--subst-var-by shell "${pkgs.bash}/bin/sh" \
--subst-var-by su "${pkgs.shadow.su}/bin/su" \
--subst-var-by systemd "${config.systemd.package}" \
--subst-var-by utillinux "${pkgs.util-linux}" \
;
chmod +x $out/bin/switch-to-configuration chmod +x $out/bin/switch-to-configuration
${lib.optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) '' ${lib.optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) ''
if ! output=$(${perlWrapped}/bin/perl -c $out/bin/switch-to-configuration 2>&1); then if ! output=$(${perlWrapped}/bin/perl -c $out/bin/switch-to-configuration 2>&1); then
echo "switch-to-configuration syntax is not valid:" echo "switch-to-configuration syntax is not valid:"
echo "$output" echo "$output"
exit 1 exit 1
fi fi
''} ''}
''; '';
}; })
(lib.mkIf config.system.switch.enableNg {
# Use a subshell so we can source makeWrapper's setup hook without
# affecting the rest of activatableSystemBuilderCommands.
system.activatableSystemBuilderCommands = ''
(
source ${pkgs.buildPackages.makeWrapper}/nix-support/setup-hook
mkdir $out/bin
ln -sf ${lib.getExe pkgs.switch-to-configuration-ng} $out/bin/switch-to-configuration
wrapProgram $out/bin/switch-to-configuration \
--set OUT $out \
--set TOPLEVEL ''${!toplevelVar} \
--set DISTRO_ID ${lib.escapeShellArg config.system.nixos.distroId} \
--set INSTALL_BOOTLOADER ${lib.escapeShellArg config.system.build.installBootLoader} \
--set LOCALE_ARCHIVE ${config.i18n.glibcLocales}/lib/locale/locale-archive \
--set SYSTEMD ${config.systemd.package}
)
'';
})
];
} }

View File

@ -873,7 +873,8 @@ in {
swap-random-encryption = handleTest ./swap-random-encryption.nix {}; swap-random-encryption = handleTest ./swap-random-encryption.nix {};
sway = handleTest ./sway.nix {}; sway = handleTest ./sway.nix {};
swayfx = handleTest ./swayfx.nix {}; swayfx = handleTest ./swayfx.nix {};
switchTest = handleTest ./switch-test.nix {}; switchTest = handleTest ./switch-test.nix { ng = false; };
switchTestNg = handleTest ./switch-test.nix { ng = true; };
sympa = handleTest ./sympa.nix {}; sympa = handleTest ./sympa.nix {};
syncthing = handleTest ./syncthing.nix {}; syncthing = handleTest ./syncthing.nix {};
syncthing-no-settings = handleTest ./syncthing-no-settings.nix {}; syncthing-no-settings = handleTest ./syncthing-no-settings.nix {};
@ -1039,6 +1040,7 @@ in {
xterm = handleTest ./xterm.nix {}; xterm = handleTest ./xterm.nix {};
xxh = handleTest ./xxh.nix {}; xxh = handleTest ./xxh.nix {};
yabar = handleTest ./yabar.nix {}; yabar = handleTest ./yabar.nix {};
ydotool = handleTest ./ydotool.nix {};
yggdrasil = handleTest ./yggdrasil.nix {}; yggdrasil = handleTest ./yggdrasil.nix {};
zammad = handleTest ./zammad.nix {}; zammad = handleTest ./zammad.nix {};
zeronet-conservancy = handleTest ./zeronet-conservancy.nix {}; zeronet-conservancy = handleTest ./zeronet-conservancy.nix {};

View File

@ -89,10 +89,13 @@ rec {
machine.succeed("xauth merge ${xauth}") machine.succeed("xauth merge ${xauth}")
machine.sleep(5) machine.sleep(5)
machine.wait_until_succeeds("pgrep fcitx5")
machine.succeed("su - ${user.name} -c 'kill $(pgrep fcitx5)'") machine.succeed("su - ${user.name} -c 'kill $(pgrep fcitx5)'")
machine.sleep(1) machine.sleep(1)
machine.succeed("su - ${user.name} -c 'alacritty >&2 &'") machine.succeed("su - ${user.name} -c 'alacritty >&2 &'")
machine.wait_for_window("alice@machine")
machine.succeed("su - ${user.name} -c 'fcitx5 >&2 &'") machine.succeed("su - ${user.name} -c 'fcitx5 >&2 &'")
machine.sleep(10) machine.sleep(10)

View File

@ -1,6 +1,6 @@
# Test configuration switching. # Test configuration switching.
import ./make-test-python.nix ({ lib, pkgs, ...} : let import ./make-test-python.nix ({ lib, pkgs, ng, ...} : let
# Simple service that can either be socket-activated or that will # Simple service that can either be socket-activated or that will
# listen on port 1234 if not socket-activated. # listen on port 1234 if not socket-activated.
@ -48,6 +48,11 @@ in {
nodes = { nodes = {
machine = { pkgs, lib, ... }: { machine = { pkgs, lib, ... }: {
system.switch = {
enable = !ng;
enableNg = ng;
};
environment.systemPackages = [ pkgs.socat ]; # for the socket activation stuff environment.systemPackages = [ pkgs.socat ]; # for the socket activation stuff
users.mutableUsers = false; users.mutableUsers = false;

115
nixos/tests/ydotool.nix Normal file
View File

@ -0,0 +1,115 @@
import ./make-test-python.nix (
{ pkgs, lib, ... }:
let
textInput = "This works.";
inputBoxText = "Enter input";
inputBox = pkgs.writeShellScript "zenity-input" ''
${lib.getExe pkgs.gnome.zenity} --entry --text '${inputBoxText}:' > /tmp/output &
'';
in
{
name = "ydotool";
meta = {
maintainers = with lib.maintainers; [
OPNA2608
quantenzitrone
];
};
nodes = {
headless =
{ config, ... }:
{
imports = [ ./common/user-account.nix ];
users.users.alice.extraGroups = [ "ydotool" ];
programs.ydotool.enable = true;
services.getty.autologinUser = "alice";
};
x11 =
{ config, ... }:
{
imports = [
./common/user-account.nix
./common/auto.nix
./common/x11.nix
];
users.users.alice.extraGroups = [ "ydotool" ];
programs.ydotool.enable = true;
test-support.displayManager.auto = {
enable = true;
user = "alice";
};
services.xserver.windowManager.dwm.enable = true;
services.displayManager.defaultSession = lib.mkForce "none+dwm";
};
wayland =
{ config, ... }:
{
imports = [ ./common/user-account.nix ];
services.cage = {
enable = true;
user = "alice";
};
programs.ydotool.enable = true;
services.cage.program = inputBox;
};
};
enableOCR = true;
testScript =
{ nodes, ... }:
''
def as_user(cmd: str):
"""
Return a shell command for running a shell command as a specific user.
"""
return f"sudo -u alice -i {cmd}"
start_all()
# Headless
headless.wait_for_unit("multi-user.target")
headless.wait_for_text("alice")
headless.succeed(as_user("ydotool type 'echo ${textInput} > /tmp/output'")) # text input
headless.succeed(as_user("ydotool key 28:1 28:0")) # text input
headless.screenshot("headless_input")
headless.wait_for_file("/tmp/output")
headless.wait_until_succeeds("grep '${textInput}' /tmp/output") # text input
# X11
x11.wait_for_x()
x11.execute(as_user("${inputBox}"))
x11.wait_for_text("${inputBoxText}")
x11.succeed(as_user("ydotool type '${textInput}'")) # text input
x11.screenshot("x11_input")
x11.succeed(as_user("ydotool mousemove -a 400 110")) # mouse input
x11.succeed(as_user("ydotool click 0xC0")) # mouse input
x11.wait_for_file("/tmp/output")
x11.wait_until_succeeds("grep '${textInput}' /tmp/output") # text input
# Wayland
wayland.wait_for_unit("graphical.target")
wayland.wait_for_text("${inputBoxText}")
wayland.succeed("ydotool type '${textInput}'") # text input
wayland.screenshot("wayland_input")
wayland.succeed("ydotool mousemove -a 100 100") # mouse input
wayland.succeed("ydotool click 0xC0") # mouse input
wayland.wait_for_file("/tmp/output")
wayland.wait_until_succeeds("grep '${textInput}' /tmp/output") # text input
'';
}
)

View File

@ -9,18 +9,18 @@
buildGoModule rec { buildGoModule rec {
pname = "go-musicfox"; pname = "go-musicfox";
version = "4.3.3"; version = "4.4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "go-musicfox"; owner = "go-musicfox";
repo = "go-musicfox"; repo = "go-musicfox";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-J6R3T92cHFUkKwc+GKm612tVjglP2Tc/kDUmzUMhvio="; hash = "sha256-11N3dykuEDKAryieNVaPfb3G7E/a4A7Znx9rBvFTHC4=";
}; };
deleteVendor = true; deleteVendor = true;
vendorHash = "sha256-KSIdBEEvYaYcDIDmzfRO857I8FSN4Ajw6phAPQLYEqg="; vendorHash = "sha256-ey78zeCSEuRgteG5ZRb4uO88E6lwEgqSxKfjJg3NGT4=";
subPackages = [ "cmd/musicfox.go" ]; subPackages = [ "cmd/musicfox.go" ];

View File

@ -45,13 +45,13 @@ stdenv.mkDerivation {
pname = binName; pname = binName;
# versions are specified in `squeezelite.h` # versions are specified in `squeezelite.h`
# see https://github.com/ralph-irving/squeezelite/issues/29 # see https://github.com/ralph-irving/squeezelite/issues/29
version = "2.0.0.1486"; version = "2.0.0.1488";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ralph-irving"; owner = "ralph-irving";
repo = "squeezelite"; repo = "squeezelite";
rev = "fd4a82e7d0e53124d9618320f3c115d90654509d"; rev = "0e85ddfd79337cdc30b7d29922b1d790600bb6b4";
hash = "sha256-nR2Px7VYjAktUsueEyBAV2392+/dX6JYIy7YSMh05c0="; hash = "sha256-FGqo/c74JN000w/iRnvYUejqnYGDzHNZu9pEmR7yR3s=";
}; };
buildInputs = [ flac libmad libvorbis mpg123 ] buildInputs = [ flac libmad libvorbis mpg123 ]

View File

@ -1,63 +0,0 @@
{ lib
, mkDerivationWith
, python3Packages
, fetchFromGitHub
, wrapQtAppsHook
}:
mkDerivationWith python3Packages.buildPythonApplication rec {
pname = "cq-editor";
version = "0.1.1";
src = fetchFromGitHub {
owner = "CadQuery";
repo = "CQ-editor";
rev = version;
sha256 = "1970izjaa60r5cg9i35rzz9lk5c5d8q1vw1rh2skvfbf63z1hnzv";
};
patches = [
./spyder4.patch
];
propagatedBuildInputs = with python3Packages; [
cadquery
logbook
pyqt5
pyparsing
pyqtgraph
spyder
path
qtconsole
requests
];
nativeBuildInputs = [ wrapQtAppsHook ];
preFixup = ''
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
'';
nativeCheckInputs = with python3Packages; [
pytest
pytest-xvfb
pytest-mock
pytest-cov
pytest-repeat
pytest-qt
];
checkPhase = ''
pytest --no-xvfb
'';
# requires X server
doCheck = false;
meta = with lib; {
description = "CadQuery GUI editor based on PyQT";
homepage = "https://github.com/CadQuery/CQ-editor";
license = licenses.asl20;
maintainers = with maintainers; [ costrouc marcus7070 ];
};
}

View File

@ -14,7 +14,7 @@ GEM
addressable (2.8.6) addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0) public_suffix (>= 2.0.2, < 6.0)
base64 (0.2.0) base64 (0.2.0)
bigdecimal (3.1.7) bigdecimal (3.1.8)
colorize (0.8.1) colorize (0.8.1)
concurrent-ruby (1.2.3) concurrent-ruby (1.2.3)
connection_pool (2.4.1) connection_pool (2.4.1)
@ -48,13 +48,13 @@ GEM
http-cookie (1.0.5) http-cookie (1.0.5)
domain_name (~> 0.5) domain_name (~> 0.5)
http-form_data (2.3.0) http-form_data (2.3.0)
i18n (1.14.4) i18n (1.14.5)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
jsonpath (1.1.5) jsonpath (1.1.5)
multi_json multi_json
jwt (2.8.1) jwt (2.8.1)
base64 base64
krane (3.5.2) krane (3.5.3)
activesupport (>= 5.0) activesupport (>= 5.0)
colorize (~> 0.8) colorize (~> 0.8)
concurrent-ruby (~> 1.1) concurrent-ruby (~> 1.1)
@ -75,7 +75,7 @@ GEM
rake (~> 13.0) rake (~> 13.0)
mime-types (3.5.2) mime-types (3.5.2)
mime-types-data (~> 3.2015) mime-types-data (~> 3.2015)
mime-types-data (3.2024.0305) mime-types-data (3.2024.0507)
minitest (5.22.3) minitest (5.22.3)
multi_json (1.15.0) multi_json (1.15.0)
mutex_m (0.2.0) mutex_m (0.2.0)
@ -109,4 +109,4 @@ DEPENDENCIES
krane krane
BUNDLED WITH BUNDLED WITH
2.5.7 2.5.9

View File

@ -36,10 +36,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0cq1c29zbkcxgdihqisirhcw76xc768z2zpd5vbccpq0l1lv76g7"; sha256 = "1gi7zqgmqwi5lizggs1jhc3zlwaqayy9rx2ah80sxy24bbnng558";
type = "gem"; type = "gem";
}; };
version = "3.1.7"; version = "3.1.8";
}; };
colorize = { colorize = {
groups = ["default"]; groups = ["default"];
@ -214,10 +214,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0lbm33fpb3w06wd2231sg58dwlwgjsvym93m548ajvl6s3mfvpn7"; sha256 = "1ffix518y7976qih9k1lgnc17i3v6yrlh0a3mckpxdb4wc2vrp16";
type = "gem"; type = "gem";
}; };
version = "1.14.4"; version = "1.14.5";
}; };
jsonpath = { jsonpath = {
dependencies = ["multi_json"]; dependencies = ["multi_json"];
@ -247,10 +247,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1s2xc5igk3yg3jpl3abakvrsf4xl6hljhgyddjsrp2g05sksa9x6"; sha256 = "11jj5fpfsb1sfwgc356xv1vxl8yq65wbbshmawpagk555y0pzbpb";
type = "gem"; type = "gem";
}; };
version = "3.5.2"; version = "3.5.3";
}; };
kubeclient = { kubeclient = {
dependencies = ["http" "jsonpath" "recursive-open-struct" "rest-client"]; dependencies = ["http" "jsonpath" "recursive-open-struct" "rest-client"];
@ -290,10 +290,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "00x7w5xqsj9m33v3vkmy23wipkkysafksib53ypzn27p5g81w455"; sha256 = "0kybw1a6f7d1ipyawnpi5cwiy05rkz9qwglgfvhmd1z0l2gcigmm";
type = "gem"; type = "gem";
}; };
version = "3.2024.0305"; version = "3.2024.0507";
}; };
minitest = { minitest = {
groups = ["default"]; groups = ["default"];

View File

@ -0,0 +1,11 @@
--- a/libgnucash/engine/test/CMakeLists.txt 2024-02-23 09:05:19.000000000 +0900
+++ b/libgnucash/engine/test/CMakeLists.txt 2024-05-08 22:08:04.572060359 +0900
@@ -57,7 +57,6 @@
add_engine_test(test-account-object test-account-object.cpp)
add_engine_test(test-group-vs-book test-group-vs-book.cpp)
-add_engine_test(test-lots test-lots.cpp)
add_engine_test(test-querynew test-querynew.c)
add_engine_test(test-query test-query.cpp)
add_engine_test(test-split-vs-account test-split-vs-account.cpp)

View File

@ -76,6 +76,9 @@ stdenv.mkDerivation rec {
./0003-remove-valgrind.patch ./0003-remove-valgrind.patch
# this patch makes gnucash exec the Finance::Quote wrapper directly # this patch makes gnucash exec the Finance::Quote wrapper directly
./0004-exec-fq-wrapper.patch ./0004-exec-fq-wrapper.patch
# this patch disables a flaky test
# see https://bugs.gnucash.org/show_bug.cgi?id=799289
./0005-disable-test-lots.patch
# Fix importing QIF by backporting a fix. remove on next release # Fix importing QIF by backporting a fix. remove on next release
# https://bugs.gnucash.org/show_bug.cgi?id=799262 # https://bugs.gnucash.org/show_bug.cgi?id=799262
(fetchpatch { (fetchpatch {

View File

@ -10,6 +10,7 @@
, evolution-data-server , evolution-data-server
, glib , glib
, glib-networking , glib-networking
, gst_all_1
, gtk4 , gtk4
, gtksourceview5 , gtksourceview5
, gxml , gxml
@ -49,6 +50,9 @@ stdenv.mkDerivation rec {
evolution-data-server evolution-data-server
glib glib
glib-networking glib-networking
# Needed for GtkMediaStream creation with success.ogg, see #311295.
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gtk4 gtk4
gtksourceview5 gtksourceview5
gxml gxml

View File

@ -10,13 +10,13 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "chirp"; pname = "chirp";
version = "0.4.0-unstable-2024-05-03"; version = "0.4.0-unstable-2024-05-10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kk7ds"; owner = "kk7ds";
repo = "chirp"; repo = "chirp";
rev = "e95140ff433b805ca16df04cba501b7332a9ec95"; rev = "d5dc5c8e053dbcf87c8b0ccf03109c0870c22bfb";
hash = "sha256-UU3Ve6Yb7UK2nOLTfJasrlMX4iu1cpLBLScvhRhTUJ0="; hash = "sha256-Tqq1dTjtzHTgaHUAio5B8V4Bo+P8EPa3s/kG181TrCc=";
}; };
buildInputs = [ buildInputs = [
glib glib

View File

@ -8,13 +8,13 @@
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
pname = "cloudlog"; pname = "cloudlog";
version = "2.6.10"; version = "2.6.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "magicbug"; owner = "magicbug";
repo = "Cloudlog"; repo = "Cloudlog";
rev = version; rev = version;
hash = "sha256-VPiv/Df4dasiYUBA6UHrxBczmGAqzhQkPrknzSYJxAE="; hash = "sha256-9JGhMCypoKOh1Gy1DdK7nrma+L4sJsYN/iuNhBPmHPA=";
}; };
postPatch = '' postPatch = ''

View File

@ -7,13 +7,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "eigenmath"; pname = "eigenmath";
version = "0-unstable-2024-05-03"; version = "0-unstable-2024-05-12";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "georgeweigt"; owner = "georgeweigt";
repo = pname; repo = pname;
rev = "69ebfbaa7f328ddc9d97b7c404369818a5febe4a"; rev = "978b3bd582a90c8e82079f2e4e4a3a5038cbbe08";
hash = "sha256-lHxVyUXIY9+YIStA6202Bhy/b0xaxJbW/VPI7FbNJk0="; hash = "sha256-DoGX8nUcWcioTq8ymB+HLsCnt9V6HTKSX4Zs2CQz78Q=";
}; };
checkPhase = let emulator = stdenv.hostPlatform.emulator buildPackages; in '' checkPhase = let emulator = stdenv.hostPlatform.emulator buildPackages; in ''

View File

@ -10,14 +10,14 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "git-cola"; pname = "git-cola";
version = "4.7.0"; version = "4.7.1";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "git-cola"; owner = "git-cola";
repo = "git-cola"; repo = "git-cola";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-BiSs3vWJacCtGthHi/nFJm4Hqt0uO6XXZi/Zqvjb928="; hash = "sha256-93aayGGMgkSghTpx8M5Cfbxf2szAwrSzuoWK6GCTqZ8=";
}; };
buildInputs = lib.optionals stdenv.isLinux [ buildInputs = lib.optionals stdenv.isLinux [

View File

@ -3,13 +3,13 @@
buildKodiBinaryAddon rec { buildKodiBinaryAddon rec {
pname = "visualization-projectm"; pname = "visualization-projectm";
namespace = "visualization.projectm"; namespace = "visualization.projectm";
version = "20.2.0"; version = "21.0.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = namespace; repo = namespace;
rev = "${version}-${rel}"; rev = "${version}-${rel}";
hash = "sha256-Kcl1ep+RJlofFmxkrGT3T+XXdwiCofq1hggwU0PAd0E="; hash = "sha256-wjSQmOtQb4KjY3iH3Xh7AdQwE6ked+cpW6/gdNYS+NA=";
}; };
extraBuildInputs = [ pkg-config libGL projectm ]; extraBuildInputs = [ pkg-config libGL projectm ];

View File

@ -1,5 +1,6 @@
{ {
callPackage, callPackage,
nix-update-script,
stdenvNoCC, stdenvNoCC,
lib, lib,
php, php,
@ -89,6 +90,13 @@ let
composerStrictValidation = previousAttrs.composerStrictValidation or true; composerStrictValidation = previousAttrs.composerStrictValidation or true;
}); });
# Projects providing a lockfile from upstream can be automatically updated.
passthru = previousAttrs.passthru or { } // {
updateScript =
previousAttrs.passthru.updateScript
or (if finalAttrs.composerRepository.composerLock == null then nix-update-script { } else null);
};
env = { env = {
COMPOSER_CACHE_DIR = "/dev/null"; COMPOSER_CACHE_DIR = "/dev/null";
COMPOSER_DISABLE_NETWORK = "1"; COMPOSER_DISABLE_NETWORK = "1";

View File

@ -19,11 +19,17 @@ python3Packages.buildPythonApplication rec {
patches = [ patches = [
# Pull a patch which fixes the tests, but is not yet released in a new version: # Pull a patch which fixes the tests, but is not yet released in a new version:
# https://github.com/adafruit/Adafruit_nRF52_nrfutil/pull/38 # https://github.com/adafruit/Adafruit_nRF52_nrfutil/pull/38
# https://github.com/adafruit/Adafruit_nRF52_nrfutil/pull/42
(fetchpatch { (fetchpatch {
name = "fix-tests.patch"; name = "fix-tests.patch";
url = "https://github.com/adafruit/Adafruit_nRF52_nrfutil/commit/e5fbcc8ee5958041db38c04139ba686bf7d1b845.patch"; url = "https://github.com/adafruit/Adafruit_nRF52_nrfutil/commit/e5fbcc8ee5958041db38c04139ba686bf7d1b845.patch";
sha256 = "sha256-0tbJldGtYcDdUzA3wZRv0lenXVn6dqV016U9nMpQ6/w="; sha256 = "sha256-0tbJldGtYcDdUzA3wZRv0lenXVn6dqV016U9nMpQ6/w=";
}) })
(fetchpatch {
name = "fix-test-test_get_vk_pem.patch";
url = "https://github.com/adafruit/Adafruit_nRF52_nrfutil/commit/f42cee3c2d7c8d0911f27ba24d6a140083cb85cf.patch";
sha256 = "sha256-7WoRqPKc8O5EYK7Fj1WrMJREwhueiVpkEizIfVnEPBU=";
})
]; ];
nativeBuildInputs = with python3Packages; [ nativeBuildInputs = with python3Packages; [

View File

@ -12,7 +12,7 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "adwsteamgtk"; pname = "adwsteamgtk";
version = "0.6.10"; version = "0.6.11";
# built with meson, not a python format # built with meson, not a python format
format = "other"; format = "other";
@ -20,7 +20,7 @@ python3Packages.buildPythonApplication rec {
owner = "Foldex"; owner = "Foldex";
repo = "AdwSteamGtk"; repo = "AdwSteamGtk";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-sh4FLXG78i20Bt8pCCbhO6Sx815stjAZRLCD+X5Zk40="; hash = "sha256-f7+2gTpG5Ntgq+U2AkQihzSTrO+oMsLWxgxe4dVyz8A=";
}; };
buildInputs = [ buildInputs = [

View File

@ -18,7 +18,7 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "freefilesync"; pname = "freefilesync";
version = "13.5"; version = "13.6";
src = fetchurl { src = fetchurl {
url = "https://freefilesync.org/download/FreeFileSync_${finalAttrs.version}_Source.zip"; url = "https://freefilesync.org/download/FreeFileSync_${finalAttrs.version}_Source.zip";
@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
rm -f $out rm -f $out
tryDownload "$url" tryDownload "$url"
''; '';
hash = "sha256-8At8QobAQR2mQnFjFSPTkEuxmP9M8gINP0qH28J3ynY="; hash = "sha256-lJ4LiisUy8w6OPd44wJufH+ol1YwjOfFQfqzj3HWb2w=";
}; };
sourceRoot = "."; sourceRoot = ".";
@ -56,14 +56,6 @@ stdenv.mkDerivation (finalAttrs: {
patch = "Disable_wxWidgets_uncaught_exception_handling.patch"; patch = "Disable_wxWidgets_uncaught_exception_handling.patch";
hash = "sha256-Fem7eDDKSqPFU/t12Jco8OmYC8FM9JgB4/QVy/ouvbI="; hash = "sha256-Fem7eDDKSqPFU/t12Jco8OmYC8FM9JgB4/QVy/ouvbI=";
}) })
# Disable update patch
(fetchDebianPatch {
pname = "freefilesync";
version = "13.3";
debianRevision = "1";
patch = "ffs_no_check_updates.patch";
hash = "sha256-lPyHpxhZz8BSnDI8QfAzKpKwVkp2jiF49RWjKNuZGII=";
})
]; ];
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -10,14 +10,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gmetronome"; pname = "gmetronome";
version = "0.3.3"; version = "0.3.4";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "gitlab.gnome.org"; domain = "gitlab.gnome.org";
owner = "dqpb"; owner = "dqpb";
repo = "gmetronome"; repo = "gmetronome";
rev = version; rev = version;
hash = "sha256-ilFO1HwleWIQ51Bkzck1sm1Yu3ugqkvZrpxPOYzXydM="; hash = "sha256-fjtdM2/LMZx0dFt78Ih4BG5+NZoocPknh5INA+2e5qk=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -12,13 +12,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libui-ng"; pname = "libui-ng";
version = "4.1-unstable-2024-02-05"; version = "4.1-unstable-2024-05-03";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "libui-ng"; owner = "libui-ng";
repo = "libui-ng"; repo = "libui-ng";
rev = "4d46de31eafad84c88b939356bcd64e6c5ee3821"; rev = "56f1ad65f0f32bb1eb67a268cca4658fbe4567c1";
hash = "sha256-Yb8VdJe75uBzRnsfTOVxUXstZmu6dJ9nBuOrf86KO5s="; hash = "sha256-wo4iS/a1ErdipFDPYKvaGpO/JGtk6eU/qMLC4eUoHnA=";
}; };
postPatch = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) '' postPatch = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''

View File

@ -0,0 +1,39 @@
{ lib
, stdenvNoCC
, fetchFromGitHub
, makeBinaryWrapper
, gnused
, ncurses
, procps
}:
stdenvNoCC.mkDerivation {
pname = "maxfetch";
version = "unstable-2023-07-31";
src = fetchFromGitHub {
owner = "jobcmax";
repo = "maxfetch";
rev = "17baa4047073e20572403b70703c69696af6b68d";
hash = "sha256-LzOhrFFjGs9GIDjk1lUFKhlnzJuEUrKjBcv1eT3kaY8=";
};
nativeBuildInputs = [ makeBinaryWrapper ];
installPhase = ''
runHook preInstall
install -Dm755 maxfetch $out/bin/maxfetch
wrapProgram $out/bin/maxfetch \
--prefix PATH : ${lib.makeBinPath [ gnused ncurses procps ]}
runHook postInstall
'';
meta = with lib; {
description = "Nice fetching program written in sh";
homepage = "https://github.com/jobcmax/maxfetch";
license = licenses.gpl2Plus;
mainProgram = "maxfetch";
maintainers = with maintainers; [ jtbx ];
platforms = platforms.unix;
};
}

View File

@ -29,13 +29,13 @@ let
in in
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "megapixels"; pname = "megapixels";
version = "1.8.1"; version = "1.8.2";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "megapixels-org"; owner = "megapixels-org";
repo = "Megapixels"; repo = "Megapixels";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-TXiPJbd4TPpsEvmD97F7xkm4rS1g+ViTVTNlxeXrQaw="; hash = "sha256-odsOYrk//ZhodsumLpJjhPDcwF1gkE/no166u+IDxSY=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -5,11 +5,11 @@
let let
pname = "nrfconnect"; pname = "nrfconnect";
version = "4.3.0"; version = "4.4.1";
src = fetchurl { src = fetchurl {
url = "https://nsscprodmedia.blob.core.windows.net/prod/software-and-other-downloads/desktop-software/nrf-connect-for-desktop/${lib.versions.major version}-${lib.versions.minor version}-${lib.versions.patch version}/nrfconnect-${version}-x86_64.appimage"; url = "https://nsscprodmedia.blob.core.windows.net/prod/software-and-other-downloads/desktop-software/nrf-connect-for-desktop/${lib.versions.major version}-${lib.versions.minor version}-${lib.versions.patch version}/nrfconnect-${version}-x86_64.appimage";
hash = "sha256-G8//dZqPxn6mR8Bjzf/bAn9Gv7t2AFWIF9twCGbqMd8="; hash = "sha256-x/vVSOEajuQtLATRXk8DVLlXHegCqP+acecaOFNeBb8=";
name = "${pname}-${version}.AppImage"; name = "${pname}-${version}.AppImage";
}; };
@ -25,7 +25,6 @@ in appimageTools.wrapType2 {
]; ];
extraInstallCommands = '' extraInstallCommands = ''
mv $out/bin/nrfconnect-* $out/bin/nrfconnect
install -Dm444 ${appimageContents}/nrfconnect.desktop -t $out/share/applications install -Dm444 ${appimageContents}/nrfconnect.desktop -t $out/share/applications
install -Dm444 ${appimageContents}/usr/share/icons/hicolor/512x512/apps/nrfconnect.png \ install -Dm444 ${appimageContents}/usr/share/icons/hicolor/512x512/apps/nrfconnect.png \
-t $out/share/icons/hicolor/512x512/apps -t $out/share/icons/hicolor/512x512/apps

View File

@ -6,14 +6,14 @@
python3.pkgs.buildPythonApplication { python3.pkgs.buildPythonApplication {
pname = "renode-dts2repl"; pname = "renode-dts2repl";
version = "0-unstable-2024-04-30"; version = "0-unstable-2024-05-09";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "antmicro"; owner = "antmicro";
repo = "dts2repl"; repo = "dts2repl";
rev = "dc2212318aec6c2aa6920795e16fab7dfcb8796e"; rev = "b95c930c2122e227bbacee42f35933a4c2d40771";
hash = "sha256-XY2rQqu2CSKRImx0GmC5ggTZTyvrtX+LvqkYj0sEBuU="; hash = "sha256-Sax+ckln+R6ll/UPztESJEjO8dtq8THmi309CaFTv0I=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "spicetify-cli"; pname = "spicetify-cli";
version = "2.36.10"; version = "2.36.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "spicetify"; owner = "spicetify";
repo = "spicetify-cli"; repo = "spicetify-cli";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-lwbd5sXqzC3H2GwmVqxAdt6Qcic00wh39l5Kp1UIYAs="; hash = "sha256-ZqWGKuYDxuKVqz6cNxZ3cTcKTxkxuu42b48hlAialKc=";
}; };
vendorHash = "sha256-UPrLXzAdvCOmLm1tekzKyulQ4+2BSyPUF1k66GwKS88="; vendorHash = "sha256-UPrLXzAdvCOmLm1tekzKyulQ4+2BSyPUF1k66GwKS88=";

View File

@ -0,0 +1 @@
/target

View File

@ -0,0 +1,527 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "aho-corasick"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
dependencies = [
"memchr",
]
[[package]]
name = "ansi_term"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
dependencies = [
"winapi",
]
[[package]]
name = "anyhow"
version = "1.0.82"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
[[package]]
name = "atty"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
"hermit-abi",
"libc",
"winapi",
]
[[package]]
name = "bitflags"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "cfg_aliases"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
[[package]]
name = "clap"
version = "2.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
dependencies = [
"ansi_term",
"atty",
"bitflags 1.3.2",
"strsim",
"textwrap",
"unicode-width",
"vec_map",
]
[[package]]
name = "const-random"
version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359"
dependencies = [
"const-random-macro",
]
[[package]]
name = "const-random-macro"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
dependencies = [
"getrandom",
"once_cell",
"tiny-keccak",
]
[[package]]
name = "crunchy"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
[[package]]
name = "dbus"
version = "0.9.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b"
dependencies = [
"libc",
"libdbus-sys",
"winapi",
]
[[package]]
name = "dbus-codegen"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bcd91775d91fc83c7d526aa7c08078bac0b30f382706689901ac819fe6ddc812"
dependencies = [
"clap",
"dbus",
"xml-rs",
]
[[package]]
name = "deranged"
version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
dependencies = [
"powerfmt",
]
[[package]]
name = "dlv-list"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f"
dependencies = [
"const-random",
]
[[package]]
name = "error-chain"
version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
dependencies = [
"version_check",
]
[[package]]
name = "getrandom"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
dependencies = [
"cfg-if",
"libc",
"wasi",
]
[[package]]
name = "glob"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
[[package]]
name = "hashbrown"
version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
[[package]]
name = "hostname"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
dependencies = [
"libc",
"match_cfg",
"winapi",
]
[[package]]
name = "itoa"
version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
[[package]]
name = "libc"
version = "0.2.154"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
[[package]]
name = "libdbus-sys"
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72"
dependencies = [
"pkg-config",
]
[[package]]
name = "log"
version = "0.4.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
[[package]]
name = "match_cfg"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
[[package]]
name = "memchr"
version = "2.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
[[package]]
name = "nix"
version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
dependencies = [
"bitflags 2.5.0",
"cfg-if",
"cfg_aliases",
"libc",
]
[[package]]
name = "num-conv"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
[[package]]
name = "num_threads"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
dependencies = [
"libc",
]
[[package]]
name = "once_cell"
version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
name = "ordered-multimap"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79"
dependencies = [
"dlv-list",
"hashbrown",
]
[[package]]
name = "pkg-config"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
[[package]]
name = "powerfmt"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
[[package]]
name = "proc-macro2"
version = "1.0.81"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
dependencies = [
"proc-macro2",
]
[[package]]
name = "regex"
version = "1.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
dependencies = [
"aho-corasick",
"memchr",
"regex-automata",
"regex-syntax",
]
[[package]]
name = "regex-automata"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
dependencies = [
"aho-corasick",
"memchr",
"regex-syntax",
]
[[package]]
name = "regex-syntax"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
[[package]]
name = "rust-ini"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d625ed57d8f49af6cfa514c42e1a71fadcff60eb0b1c517ff82fe41aa025b41"
dependencies = [
"cfg-if",
"ordered-multimap",
"trim-in-place",
]
[[package]]
name = "serde"
version = "1.0.200"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.200"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "strsim"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
[[package]]
name = "switch-to-configuration"
version = "0.1.0"
dependencies = [
"anyhow",
"dbus",
"dbus-codegen",
"glob",
"log",
"nix",
"regex",
"rust-ini",
"syslog",
]
[[package]]
name = "syn"
version = "2.0.60"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "syslog"
version = "6.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dfc7e95b5b795122fafe6519e27629b5ab4232c73ebb2428f568e82b1a457ad3"
dependencies = [
"error-chain",
"hostname",
"libc",
"log",
"time",
]
[[package]]
name = "textwrap"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
dependencies = [
"unicode-width",
]
[[package]]
name = "time"
version = "0.3.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
dependencies = [
"deranged",
"itoa",
"libc",
"num-conv",
"num_threads",
"powerfmt",
"serde",
"time-core",
"time-macros",
]
[[package]]
name = "time-core"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
dependencies = [
"num-conv",
"time-core",
]
[[package]]
name = "tiny-keccak"
version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
dependencies = [
"crunchy",
]
[[package]]
name = "trim-in-place"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "343e926fc669bc8cde4fa3129ab681c63671bae288b1f1081ceee6d9d37904fc"
[[package]]
name = "unicode-ident"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "unicode-width"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6"
[[package]]
name = "vec_map"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
[[package]]
name = "version_check"
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "xml-rs"
version = "0.8.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193"

View File

@ -0,0 +1,19 @@
[package]
name = "switch-to-configuration"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
anyhow = "1.0.82"
dbus = "0.9.7"
glob = "0.3.1"
log = "0.4.21"
nix = { version = "0.28.0", features = ["fs", "signal"] }
regex = "1.10.4"
rust-ini = "0.21.0"
syslog = "6.1.1"
[build-dependencies]
dbus-codegen = "0.11.0"

View File

@ -0,0 +1,30 @@
use std::io::Write;
fn code_for_dbus_xml(xml: impl AsRef<std::path::Path>) -> String {
dbus_codegen::generate(
&std::fs::read_to_string(xml).unwrap(),
&dbus_codegen::GenOpts {
methodtype: None,
connectiontype: dbus_codegen::ConnectionType::Blocking,
..Default::default()
},
)
.unwrap()
}
fn main() {
let systemd_dbus_interface_dir = std::env::var("SYSTEMD_DBUS_INTERFACE_DIR").unwrap();
let systemd_dbus_interface_dir = std::path::Path::new(systemd_dbus_interface_dir.as_str());
let out_path = std::path::PathBuf::from(std::env::var("OUT_DIR").unwrap());
let systemd_manager_code =
code_for_dbus_xml(systemd_dbus_interface_dir.join("org.freedesktop.systemd1.Manager.xml"));
let mut file = std::fs::File::create(out_path.join("systemd_manager.rs")).unwrap();
file.write_all(systemd_manager_code.as_bytes()).unwrap();
let logind_manager_code =
code_for_dbus_xml(systemd_dbus_interface_dir.join("org.freedesktop.login1.Manager.xml"));
let mut file = std::fs::File::create(out_path.join("logind_manager.rs")).unwrap();
file.write_all(logind_manager_code.as_bytes()).unwrap();
}

View File

@ -0,0 +1,36 @@
{
buildPackages,
dbus,
lib,
pkg-config,
rustPlatform,
}:
rustPlatform.buildRustPackage {
pname = "switch-to-configuration";
version = "0.1.0";
src = lib.fileset.toSource {
root = ./.;
fileset = lib.fileset.unions [
./Cargo.lock
./Cargo.toml
./build.rs
./src
];
};
cargoLock.lockFile = ./Cargo.lock;
nativeBuildInputs = [ pkg-config ];
buildInputs = [ dbus ];
env.SYSTEMD_DBUS_INTERFACE_DIR = "${buildPackages.systemd}/share/dbus-1/interfaces";
meta = {
description = "NixOS switch-to-configuration program";
mainProgram = "switch-to-configuration";
maintainers = with lib.maintainers; [ jmbaur ];
license = lib.licenses.mit;
};
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,33 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "treefmt";
version = "2.0.0-rc1";
src = fetchFromGitHub {
owner = "numtide";
repo = "treefmt";
rev = "v${version}";
hash = "sha256-iRjd7iYd3617XZrGD6Bi6d1SoE8dgATMbT4AMXklfgM=";
};
vendorHash = "sha256-xbXy5Csl2JD5/F5mtvh8J36VZqrUIfO3OBV/LE+KzWA=";
subPackages = [ "." ];
CGO_ENABLED = 1;
ldflags = [
"-s"
"-w"
"-X git.numtide.com/numtide/treefmt/build.Name=${pname}"
"-X git.numtide.com/numtide/treefmt/build.Version=v${version}"
];
meta = {
description = "one CLI to format the code tree";
homepage = "https://github.com/numtide/treefmt";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.brianmcgee lib.maintainers.zimbatm ];
mainProgram = "treefmt";
};
}

View File

@ -1,13 +1,22 @@
{ lib, stdenv, fetchFromGitHub, cmake, scdoc, util-linux, xorg }: {
lib,
stdenv,
fetchFromGitHub,
cmake,
scdoc,
util-linux,
xorg,
nixosTests,
}:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "ydotool"; pname = "ydotool";
version = "1.0.4"; version = "1.0.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ReimuNotMoe"; owner = "ReimuNotMoe";
repo = "ydotool"; repo = "ydotool";
rev = "v${version}"; rev = "v${finalAttrs.version}";
hash = "sha256-MtanR+cxz6FsbNBngqLE+ITKPZFHmWGsD1mBDk0OVng="; hash = "sha256-MtanR+cxz6FsbNBngqLE+ITKPZFHmWGsD1mBDk0OVng=";
}; };
@ -19,13 +28,22 @@ stdenv.mkDerivation rec {
''; '';
strictDeps = true; strictDeps = true;
nativeBuildInputs = [ cmake scdoc ]; nativeBuildInputs = [
cmake
scdoc
];
meta = with lib; { passthru.tests.basic = nixosTests.ydotool;
homepage = "https://github.com/ReimuNotMoe/ydotool";
meta = {
description = "Generic Linux command-line automation tool"; description = "Generic Linux command-line automation tool";
license = licenses.agpl3Plus; homepage = "https://github.com/ReimuNotMoe/ydotool";
maintainers = with maintainers; [ willibutz kraem ]; license = lib.licenses.agpl3Plus;
platforms = with platforms; linux; mainProgram = "ydotool";
maintainers = with lib.maintainers; [
willibutz
kraem
];
platforms = lib.platforms.linux;
}; };
} })

View File

@ -22,13 +22,13 @@ lib.checkListOfEnum "${pname}: tweaks" [ "nord" "dracula" "gruvbox" "everforest"
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
inherit pname; inherit pname;
version = "2024-04-14"; version = "2024-05-13";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vinceliuice"; owner = "vinceliuice";
repo = pname; repo = pname;
rev = version; rev = version;
hash = "sha256-DQYnR2V86KbIJfAA4ObRtKQq1IuECie1qdOBYVu8NtA="; hash = "sha256-24U1iMByy+cFQuLUWYPBSuvJwYzwS0rCr7L6OWyMUz0=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "cjson"; pname = "cjson";
version = "1.7.17"; version = "1.7.18";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "DaveGamble"; owner = "DaveGamble";
repo = "cJSON"; repo = "cJSON";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-jU9UbXvdXiNXFh7c9p/LppMsuqryFK40NTTyQGbNU84="; sha256 = "sha256-UgUWc/+Zie2QNijxKK5GFe4Ypk97EidG8nTiiHhn5Ys=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "openspecfun"; pname = "openspecfun";
version = "0.5.6"; version = "0.5.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "JuliaLang"; owner = "JuliaLang";
repo = "openspecfun"; repo = "openspecfun";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-4MPoRMtDTkdvDfhNXKk/80pZjXRNEPcysLNTb5ohxWk="; sha256 = "sha256-fx9z6bbU2V4x6Pr7/vmlSxkWxZ6qTYuPxnfqKLv08CA=";
}; };
makeFlags = [ "prefix=$(out)" ]; makeFlags = [ "prefix=$(out)" ];

View File

@ -16,7 +16,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aiounifi"; pname = "aiounifi";
version = "77"; version = "78";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.11"; disabled = pythonOlder "3.11";
@ -25,7 +25,7 @@ buildPythonPackage rec {
owner = "Kane610"; owner = "Kane610";
repo = "aiounifi"; repo = "aiounifi";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-c3UR/AwnQLm6h1jsM6mk6MOii2/xQzFcrci+oG4BsDs="; hash = "sha256-fY3VsXJfs/uqqQjR6Sp03XlkCOk+8GvXq476dgagJQ8=";
}; };
postPatch = '' postPatch = ''

View File

@ -1,40 +1,37 @@
{ lib {
, aiofiles lib,
, buildPythonPackage aiofiles,
, cryptography buildPythonPackage,
, fetchFromGitHub cryptography,
, protobuf fetchFromGitHub,
, pythonOlder protobuf,
, setuptools pythonOlder,
setuptools,
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "androidtvremote2"; pname = "androidtvremote2";
version = "0.0.15"; version = "0.1.1";
format = "pyproject"; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tronikos"; owner = "tronikos";
repo = "androidtvremote2"; repo = "androidtvremote2";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-aLNmuMuwaMhl/Utv6bVU4fR8zmhj0fUiInL4RHT4dVw="; hash = "sha256-Zem2IWBUWmyVdBjqoVKFk+/lg5T7CPXCKFXhFusQFLY=";
}; };
nativeBuildInputs = [ build-system = [ setuptools ];
setuptools
];
propagatedBuildInputs = [ dependencies = [
aiofiles aiofiles
cryptography cryptography
protobuf protobuf
]; ];
pythonImportsCheck = [ pythonImportsCheck = [ "androidtvremote2" ];
"androidtvremote2"
];
# Module only has a dummy test # Module only has a dummy test
doCheck = false; doCheck = false;

View File

@ -21,7 +21,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "b2sdk"; pname = "b2sdk";
version = "2.1.0"; version = "2.2.1";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -30,7 +30,7 @@ buildPythonPackage rec {
owner = "Backblaze"; owner = "Backblaze";
repo = "b2-sdk-python"; repo = "b2-sdk-python";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-/TuPT+Y0asGGtfRNxxvpX0WkS4O4asFmIuqSdQ4I9fQ="; hash = "sha256-ENEAynUd66sjS+/Qoy9qyffPpSvxdnY1Nwdi+JTE96I=";
}; };
build-system = [ pdm-backend ]; build-system = [ pdm-backend ];

View File

@ -17,7 +17,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "bc-detect-secrets"; pname = "bc-detect-secrets";
version = "1.5.9"; version = "1.5.10";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "bridgecrewio"; owner = "bridgecrewio";
repo = "detect-secrets"; repo = "detect-secrets";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-3O1taxOxVI+36h2Qz+dzOuilmapm9QO4X4XjRgX4kUc="; hash = "sha256-b0t5xv4fWiErQsYvDKTJuweiGLqS2WpR9ECGo/cpvQ8=";
}; };
build-system = [ setuptools ]; build-system = [ setuptools ];

View File

@ -16,7 +16,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "blackjax"; pname = "blackjax";
version = "1.2.0"; version = "1.2.1";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -25,7 +25,7 @@ buildPythonPackage rec {
owner = "blackjax-devs"; owner = "blackjax-devs";
repo = "blackjax"; repo = "blackjax";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-vXyxK3xALKG61YGK7fmoqQNGfOiagHFrvnU02WKZThw="; hash = "sha256-VoWBCjFMyE5LVJyf7du/pKlnvDHj22lguiP6ZUzH9ak=";
}; };
build-system = [ build-system = [
@ -56,6 +56,10 @@ buildPythonPackage rec {
disabledTests = [ disabledTests = [
# too slow # too slow
"test_adaptive_tempered_smc" "test_adaptive_tempered_smc"
] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
# Numerical test (AssertionError)
# https://github.com/blackjax-devs/blackjax/issues/668
"test_chees_adaptation"
]; ];
pythonImportsCheck = [ pythonImportsCheck = [

View File

@ -1,100 +0,0 @@
{ lib
, buildPythonPackage
, toPythonModule
, pythonOlder
, pythonAtLeast
, fetchFromGitHub
, pyparsing
, opencascade-occt
, stdenv
, python
, cmake
, swig
, freetype
, libGL
, libGLU
, libX11
, six
, pytest
, makeFontsConf
, freefont_ttf
, Cocoa
}:
let
pythonocc-core-cadquery = toPythonModule (stdenv.mkDerivation {
pname = "pythonocc-core-cadquery";
version = "0.18.2";
format = "setuptools";
src = fetchFromGitHub {
owner = "CadQuery";
repo = "pythonocc-core";
# no proper release to to use, this commit copied from the Anaconda receipe
rev = "701e924ae40701cbe6f9992bcbdc2ef22aa9b5ab";
sha256 = "07zmiiw74dyj4v0ar5vqkvk30wzcpjjzbi04nsdk5mnlzslmyi6c";
};
nativeBuildInputs = [
cmake
swig
];
buildInputs = [
python
opencascade-occt
freetype
libGL
libGLU
libX11
] ++ lib.optionals stdenv.isDarwin [ Cocoa ];
propagatedBuildInputs = [
six
];
cmakeFlags = [
"-Wno-dev"
"-DPYTHONOCC_INSTALL_DIRECTORY=${placeholder "out"}/${python.sitePackages}/OCC"
];
});
in
buildPythonPackage rec {
pname = "cadquery";
version = "2.0";
src = fetchFromGitHub {
owner = "CadQuery";
repo = pname;
rev = version;
sha256 = "1n63b6cjjrdwdfmwq0zx1xabjnhndk9mgfkm4w7z9ardcfpvg84l";
};
buildInputs = [
opencascade-occt
];
propagatedBuildInputs = [
pyparsing
pythonocc-core-cadquery
];
FONTCONFIG_FILE = makeFontsConf {
fontDirectories = [ freefont_ttf ];
};
nativeCheckInputs = [
pytest
];
disabled = pythonOlder "3.6" || pythonAtLeast "3.8";
meta = with lib; {
description = "Parametric scripting language for creating and traversing CAD models";
homepage = "https://github.com/CadQuery/cadquery";
license = licenses.asl20;
maintainers = with maintainers; [ marcus7070 ];
broken = true;
};
}

View File

@ -1,27 +0,0 @@
{ lib, buildPythonPackage, fetchPypi, isPy27, pythonAtLeast
, coverage, nose, pbkdf2 }:
buildPythonPackage rec {
pname = "cryptacular";
version = "1.6.2";
format = "setuptools";
src = fetchPypi {
inherit pname version;
sha256 = "7b529cb2b8a3c7e5be77921bf1ebc653d4d3a8f791375cc6f971b20db2404176";
};
buildInputs = [ coverage nose ];
propagatedBuildInputs = [ pbkdf2 ];
# TODO: tests fail: TypeError: object of type 'NoneType' has no len()
doCheck = false;
# Python >=2.7.15, >=3.6.5 are incompatible:
# https://bitbucket.org/dholth/cryptacular/issues/11
disabled = isPy27 || pythonAtLeast "3.6";
meta = with lib; {
maintainers = with maintainers; [ domenkozar ];
};
}

View File

@ -15,7 +15,6 @@
, nbval , nbval
, psutil , psutil
, py-cpuinfo , py-cpuinfo
, pyrevolve
, pytest-xdist , pytest-xdist
, pytestCheckHook , pytestCheckHook
, pythonOlder , pythonOlder
@ -26,7 +25,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "devito"; pname = "devito";
version = "4.8.3"; version = "4.8.6";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -35,7 +34,7 @@ buildPythonPackage rec {
owner = "devitocodes"; owner = "devitocodes";
repo = "devito"; repo = "devito";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-g9rRJF1JrZ6+s3tj4RZHuGOjt5LJjtK9I5CJmq4CJL4="; hash = "sha256-unuJLp+zTyGpOk5O78xYbW6Zrzp60WyqgT9mf2YpTG4=";
}; };
pythonRemoveDeps = [ pythonRemoveDeps = [
@ -51,7 +50,7 @@ buildPythonPackage rec {
pythonRelaxDepsHook pythonRelaxDepsHook
]; ];
propagatedBuildInputs = [ dependencies = [
anytree anytree
cached-property cached-property
cgen cgen
@ -62,7 +61,6 @@ buildPythonPackage rec {
multidict multidict
psutil psutil
py-cpuinfo py-cpuinfo
pyrevolve
scipy scipy
sympy sympy
] ++ lib.optionals stdenv.cc.isClang [ ] ++ lib.optionals stdenv.cc.isClang [
@ -99,6 +97,20 @@ buildPythonPackage rec {
"test_setupWOverQ" "test_setupWOverQ"
"test_shortcuts" "test_shortcuts"
"test_subdomainset_mpi" "test_subdomainset_mpi"
"test_subdomains_mpi"
] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
# FAILED tests/test_unexpansion.py::Test2Pass::test_v0 - assert False
"test_v0"
] ++ lib.optionals stdenv.isDarwin [
# FAILED tests/test_caching.py::TestCaching::test_special_symbols - ValueError: not enough values to unpack (expected 3, got 2)
"test_special_symbols"
# FAILED tests/test_unexpansion.py::Test2Pass::test_v0 - codepy.CompileError: module compilation failed
"test_v0"
] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
# Numerical tests
"test_lm_fb"
"test_lm_ds"
]; ];
disabledTestPaths = [ disabledTestPaths = [
@ -109,6 +121,8 @@ buildPythonPackage rec {
"tests/test_data.py" "tests/test_data.py"
"tests/test_dse.py" "tests/test_dse.py"
"tests/test_gradient.py" "tests/test_gradient.py"
] ++ lib.optionals ((stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin) [
"tests/test_dle.py"
]; ];
pythonImportsCheck = [ pythonImportsCheck = [

View File

@ -12,7 +12,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "dirigera"; pname = "dirigera";
version = "1.1.6"; version = "1.1.7";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "Leggin"; owner = "Leggin";
repo = "dirigera"; repo = "dirigera";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-OXq8eJyZQBsJEK81GxstfMHqDShlZyOWSXLwP9Zfpqw="; hash = "sha256-KAwXpcs0EvmaxBVgZ7TlT1hDI0m7f8hJigUTluVATsw=";
}; };
build-system = [ setuptools ]; build-system = [ setuptools ];

View File

@ -12,7 +12,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "dogpile-cache"; pname = "dogpile-cache";
version = "1.3.2"; version = "1.3.3";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
@ -20,7 +20,7 @@ buildPythonPackage rec {
src = fetchPypi { src = fetchPypi {
pname = "dogpile.cache"; pname = "dogpile.cache";
inherit version; inherit version;
hash = "sha256-T3HcAzOtNRycb3BPW6Kje/Ucbu0EN9Gt9W4HWVmv5js="; hash = "sha256-+EuO0LD7KX0VEFVEf6jcr3uuVm1Nve/s3MHzdmKrWIs=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -48,8 +48,21 @@ buildPythonPackage rec {
pythonImportsCheck = [ "equinox" ]; pythonImportsCheck = [ "equinox" ];
disabledTests = [ disabledTests = [
# Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted. # For simplicity, JAX has removed its internal frames from the traceback of the following exception.
"test_tracetime" # https://github.com/patrick-kidger/equinox/issues/716
"test_abstract"
"test_complicated"
"test_grad"
"test_jvp"
"test_mlp"
"test_num_traces"
"test_pytree_in"
"test_simple"
"test_vmap"
# AssertionError: assert 'foo:\n pri...pe=float32)\n' == 'foo:\n pri...pe=float32)\n'
# Also reported in patrick-kidger/equinox#716
"test_backward_nan"
]; ];
meta = with lib; { meta = with lib; {

View File

@ -25,7 +25,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "flax"; pname = "flax";
version = "0.8.2"; version = "0.8.3";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -34,16 +34,16 @@ buildPythonPackage rec {
owner = "google"; owner = "google";
repo = "flax"; repo = "flax";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-UABgJGe1grUSkwOJpjeIoFqhXsqG//HlC1YyYPxXV+g="; hash = "sha256-uDGTyksUZTTL6FiTJP+qteFLOjr75dcTj9yRJ6Jm8xU=";
}; };
nativeBuildInputs = [ build-system = [
jaxlib jaxlib
pythonRelaxDepsHook pythonRelaxDepsHook
setuptools-scm setuptools-scm
]; ];
propagatedBuildInputs = [ dependencies = [
jax jax
msgpack msgpack
numpy numpy

View File

@ -1,29 +0,0 @@
{ lib
, pythonAtLeast
, buildPythonPackage
, fetchPypi
, nose
, coverage
}:
buildPythonPackage rec {
pname = "globre";
version = "0.1.5";
format = "setuptools";
# https://github.com/metagriffin/globre/issues/7
disabled = pythonAtLeast "3.7";
src = fetchPypi {
inherit pname version;
sha256 = "1qhjpg0722871dm5m7mmldf6c7mx58fbdvk1ix5i3s9py82448gf";
};
nativeCheckInputs = [ nose coverage ];
meta = with lib; {
homepage = "https://github.com/metagriffin/globre";
description = "A python glob-like regular expression generation library.";
maintainers = with maintainers; [ glittershark ];
license = licenses.gpl3;
};
}

View File

@ -17,13 +17,13 @@
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "hikari"; pname = "hikari";
version = "2.0.0.dev124"; version = "2.0.0.dev125";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hikari-py"; owner = "hikari-py";
repo = "hikari"; repo = "hikari";
rev = version; rev = version;
hash = "sha256-zDgU3Ol/I3YNnwXm+aBh20KwonW746p5TObuwuWORog="; hash = "sha256-qxgIYquXUWrm8bS8EamERMHOnjI2aPyK7bQieVG66uA=";
# The git commit is part of the `hikari.__git_sha1__` original output; # The git commit is part of the `hikari.__git_sha1__` original output;
# leave that output the same in nixpkgs. Use the `.git` directory # leave that output the same in nixpkgs. Use the `.git` directory
# to retrieve the commit SHA, and remove the directory afterwards, # to retrieve the commit SHA, and remove the directory afterwards,

View File

@ -29,7 +29,7 @@ let
in in
buildPythonPackage rec { buildPythonPackage rec {
pname = "jax"; pname = "jax";
version = "0.4.25"; version = "0.4.28";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -39,7 +39,7 @@ buildPythonPackage rec {
repo = "jax"; repo = "jax";
# google/jax contains tags for jax and jaxlib. Only use jax tags! # google/jax contains tags for jax and jaxlib. Only use jax tags!
rev = "refs/tags/jax-v${version}"; rev = "refs/tags/jax-v${version}";
hash = "sha256-poQQo2ZgEhPYzK3aCs+BjaHTNZbezJAECd+HOdY1Yok="; hash = "sha256-qSHPwi3is6Ts7pz5s4KzQHBMbcjGp+vAOsejW3o36Ek=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -81,6 +81,14 @@ buildPythonPackage rec {
"tests/" "tests/"
]; ];
# Prevents `tests/export_back_compat_test.py::CompatTest::test_*` tests from failing on darwin with
# PermissionError: [Errno 13] Permission denied: '/tmp/back_compat_testdata/test_*.py'
# See https://github.com/google/jax/blob/jaxlib-v0.4.27/jax/_src/internal_test_util/export_back_compat_test_util.py#L240-L241
# NOTE: this doesn't seem to be an issue on linux
preCheck = lib.optionalString stdenv.isDarwin ''
export TEST_UNDECLARED_OUTPUTS_DIR=$(mktemp -d)
'';
disabledTests = [ disabledTests = [
# Exceeds tolerance when the machine is busy # Exceeds tolerance when the machine is busy
"test_custom_linear_solve_aux" "test_custom_linear_solve_aux"

View File

@ -20,17 +20,17 @@
, stdenv , stdenv
# Options: # Options:
, cudaSupport ? config.cudaSupport , cudaSupport ? config.cudaSupport
, cudaPackagesGoogle , cudaPackages
}: }:
let let
inherit (cudaPackagesGoogle) cudaVersion; inherit (cudaPackages) cudaVersion;
version = "0.4.24"; version = "0.4.28";
inherit (python) pythonVersion; inherit (python) pythonVersion;
cudaLibPath = lib.makeLibraryPath (with cudaPackagesGoogle; [ cudaLibPath = lib.makeLibraryPath (with cudaPackages; [
cuda_cudart.lib # libcudart.so cuda_cudart.lib # libcudart.so
cuda_cupti.lib # libcupti.so cuda_cupti.lib # libcupti.so
cudnn.lib # libcudnn.so cudnn.lib # libcudnn.so
@ -56,65 +56,65 @@ let
"3.9-x86_64-linux" = getSrcFromPypi { "3.9-x86_64-linux" = getSrcFromPypi {
platform = "manylinux2014_x86_64"; platform = "manylinux2014_x86_64";
dist = "cp39"; dist = "cp39";
hash = "sha256-6P5ArMoLZiUkHUoQ/mJccbNj5/7el/op+Qo6cGQ33xE="; hash = "sha256-Slbr8FtKTBeRaZ2HTgcvP4CPCYa0AQsU+1SaackMqdw=";
}; };
"3.9-aarch64-darwin" = getSrcFromPypi { "3.9-aarch64-darwin" = getSrcFromPypi {
platform = "macosx_11_0_arm64"; platform = "macosx_11_0_arm64";
dist = "cp39"; dist = "cp39";
hash = "sha256-23JQZRwMLtt7sK/JlCBqqRyfTVIAVJFN2sL+nAkQgvU="; hash = "sha256-sBVi7IrXVxm30DiXUkiel+trTctMjBE75JFjTVKCrTw=";
}; };
"3.9-x86_64-darwin" = getSrcFromPypi { "3.9-x86_64-darwin" = getSrcFromPypi {
platform = "macosx_10_14_x86_64"; platform = "macosx_10_14_x86_64";
dist = "cp39"; dist = "cp39";
hash = "sha256-OgMedn9GHGs5THZf3pkP3Aw/jJ0vL5qK1b+Lzf634Ik="; hash = "sha256-T5jMg3srbG3P4Kt/+esQkxSSCUYRmqOvn6oTlxj/J4c=";
}; };
"3.10-x86_64-linux" = getSrcFromPypi { "3.10-x86_64-linux" = getSrcFromPypi {
platform = "manylinux2014_x86_64"; platform = "manylinux2014_x86_64";
dist = "cp310"; dist = "cp310";
hash = "sha256-/VwUIIa7mTs/wLz0ArsEfNrz2pGriVVT5GX9XRFRxfY="; hash = "sha256-47zcb45g+FVPQVwU2TATTmAuPKM8OOVGJ0/VRfh1dps=";
}; };
"3.10-aarch64-darwin" = getSrcFromPypi { "3.10-aarch64-darwin" = getSrcFromPypi {
platform = "macosx_11_0_arm64"; platform = "macosx_11_0_arm64";
dist = "cp310"; dist = "cp310";
hash = "sha256-LgICOyDGts840SQQJh+yOMobMASb62llvJjpGvhzrSw="; hash = "sha256-8Djmi9ENGjVUcisLvjbmpEg4RDenWqnSg/aW8O2fjAk=";
}; };
"3.10-x86_64-darwin" = getSrcFromPypi { "3.10-x86_64-darwin" = getSrcFromPypi {
platform = "macosx_10_14_x86_64"; platform = "macosx_10_14_x86_64";
dist = "cp310"; dist = "cp310";
hash = "sha256-vhyULw+zBpz1UEi2tqgBMQEzY9a6YBgEIg6A4PPh3bQ="; hash = "sha256-pCHSN/jCXShQFm0zRgPGc925tsJvUrxJZwS4eCKXvWY=";
}; };
"3.11-x86_64-linux" = getSrcFromPypi { "3.11-x86_64-linux" = getSrcFromPypi {
platform = "manylinux2014_x86_64"; platform = "manylinux2014_x86_64";
dist = "cp311"; dist = "cp311";
hash = "sha256-VJO/VVwBFkOEtq4y/sLVgAV8Cung01JULiuT6W96E/8="; hash = "sha256-Rc4PPIQM/4I2z/JsN/Jsn/B4aV+T4MFiwyDCgfUEEnU=";
}; };
"3.11-aarch64-darwin" = getSrcFromPypi { "3.11-aarch64-darwin" = getSrcFromPypi {
platform = "macosx_11_0_arm64"; platform = "macosx_11_0_arm64";
dist = "cp311"; dist = "cp311";
hash = "sha256-VtuwXxurpSp1KI8ty1bizs5cdy8GEBN2MgS227sOCmE="; hash = "sha256-eThX+vN/Nxyv51L+pfyBH0NeQ7j7S1AgWERKf17M+Ck=";
}; };
"3.11-x86_64-darwin" = getSrcFromPypi { "3.11-x86_64-darwin" = getSrcFromPypi {
platform = "macosx_10_14_x86_64"; platform = "macosx_10_14_x86_64";
dist = "cp311"; dist = "cp311";
hash = "sha256-4Dj5dEGKb9hpg3HlVogNO1Gc9UibJhy1eym2mjivxAQ="; hash = "sha256-L/gpDtx7ksfq5SUX9lSSYz4mey6QZ7rT5MMj0hPnfPU=";
}; };
"3.12-x86_64-linux" = getSrcFromPypi { "3.12-x86_64-linux" = getSrcFromPypi {
platform = "manylinux2014_x86_64"; platform = "manylinux2014_x86_64";
dist = "cp312"; dist = "cp312";
hash = "sha256-TlrGVtb3NTLmhnILWPLJR+jISCZ5SUV4wxNFpSfkCBo="; hash = "sha256-RqGqhX9P7uikP8upXA4Kti1AwmzJcwtsaWVZCLo1n40=";
}; };
"3.12-aarch64-darwin" = getSrcFromPypi { "3.12-aarch64-darwin" = getSrcFromPypi {
platform = "macosx_11_0_arm64"; platform = "macosx_11_0_arm64";
dist = "cp312"; dist = "cp312";
hash = "sha256-FIwK5CGykQjteuWzLZnbtAggIxLQeGV96bXlZGEytN0="; hash = "sha256-jdi//jhTcC9jzZJNoO4lc0pNGc1ckmvgM9dyun0cF10=";
}; };
"3.12-x86_64-darwin" = getSrcFromPypi { "3.12-x86_64-darwin" = getSrcFromPypi {
platform = "macosx_10_14_x86_64"; platform = "macosx_10_14_x86_64";
dist = "cp312"; dist = "cp312";
hash = "sha256-9/jw/wr6oUD9pOadVAaMRL086iVMUXwVgnUMcG1UNvE="; hash = "sha256-1sCaVFMpciRhrwVuc1FG0sjHTCKsdCaoRetp8ya096A=";
}; };
}; };
@ -130,35 +130,19 @@ let
gpuSrcs = { gpuSrcs = {
"cuda12.2-3.9" = fetchurl { "cuda12.2-3.9" = fetchurl {
url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp39-cp39-manylinux2014_x86_64.whl"; url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp39-cp39-manylinux2014_x86_64.whl";
hash = "sha256-xdJKLPtx+CIza2CrWKM3M0cZJzyNFVTTTsvlgh38bfM="; hash = "sha256-d8LIl22gIvmWfoyKfXKElZJXicPQIZxdS4HumhwQGCw=";
}; };
"cuda12.2-3.10" = fetchurl { "cuda12.2-3.10" = fetchurl {
url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp310-cp310-manylinux2014_x86_64.whl"; url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp310-cp310-manylinux2014_x86_64.whl";
hash = "sha256-QCjrOczD2mp+CDwVXBc0/4rJnAizeV62AK0Dpx9X6TE="; hash = "sha256-PXtWv+UEcMWF8LhWe6Z1UGkf14PG3dkJ0Iop0LiimnQ=";
}; };
"cuda12.2-3.11" = fetchurl { "cuda12.2-3.11" = fetchurl {
url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp311-cp311-manylinux2014_x86_64.whl"; url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp311-cp311-manylinux2014_x86_64.whl";
hash = "sha256-Ipy3vk1yUplpNzECAFt63aOIhgEWgXG7hkoeTIk9bQQ="; hash = "sha256-QO2WSOzmJ48VaCha596mELiOfPsAGLpGctmdzcCHE/o=";
}; };
"cuda12.2-3.12" = fetchurl { "cuda12.2-3.12" = fetchurl {
url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp312-cp312-manylinux2014_x86_64.whl"; url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp312-cp312-manylinux2014_x86_64.whl";
hash = "sha256-LSnZHaUga/8Z65iKXWBnZDk4yUpNykFTu3vukCchO6Q="; hash = "sha256-ixWMaIChy4Ammsn23/3cCoala0lFibuUxyUr3tjfFKU=";
};
"cuda11.8-3.9" = fetchurl {
url = "https://storage.googleapis.com/jax-releases/cuda11/jaxlib-${version}+cuda11.cudnn86-cp39-cp39-manylinux2014_x86_64.whl";
hash = "sha256-UmyugL0VjlXkiD7fuDPWgW8XUpr/QaP5ggp6swoZTzU=";
};
"cuda11.8-3.10" = fetchurl {
url = "https://storage.googleapis.com/jax-releases/cuda11/jaxlib-${version}+cuda11.cudnn86-cp310-cp310-manylinux2014_x86_64.whl";
hash = "sha256-luKULEiV1t/sO6eckDxddJTiOFa0dtJeDlrvp+WYmHk=";
};
"cuda11.8-3.11" = fetchurl {
url = "https://storage.googleapis.com/jax-releases/cuda11/jaxlib-${version}+cuda11.cudnn86-cp311-cp311-manylinux2014_x86_64.whl";
hash = "sha256-4+uJ8Ij6mFGEmjFEgi3fLnSLZs+v18BRoOt7mZuqydw=";
};
"cuda11.8-3.12" = fetchurl {
url = "https://storage.googleapis.com/jax-releases/cuda11/jaxlib-${version}+cuda11.cudnn86-cp312-cp312-manylinux2014_x86_64.whl";
hash = "sha256-bUDFb94Ar/65SzzR9RLIs/SL/HdjaPT1Su5whmjkS00=";
}; };
}; };
@ -213,7 +197,7 @@ buildPythonPackage {
# for more info. # for more info.
postInstall = lib.optional cudaSupport '' postInstall = lib.optional cudaSupport ''
mkdir -p $out/${python.sitePackages}/jaxlib/cuda/bin mkdir -p $out/${python.sitePackages}/jaxlib/cuda/bin
ln -s ${lib.getExe' cudaPackagesGoogle.cuda_nvcc "ptxas"} $out/${python.sitePackages}/jaxlib/cuda/bin/ptxas ln -s ${lib.getExe' cudaPackages.cuda_nvcc "ptxas"} $out/${python.sitePackages}/jaxlib/cuda/bin/ptxas
''; '';
inherit (jaxlib-build) pythonImportsCheck; inherit (jaxlib-build) pythonImportsCheck;
@ -227,7 +211,7 @@ buildPythonPackage {
platforms = [ "aarch64-darwin" "x86_64-linux" "x86_64-darwin" ]; platforms = [ "aarch64-darwin" "x86_64-linux" "x86_64-darwin" ];
broken = broken =
!(cudaSupport -> lib.versionAtLeast cudaVersion "11.1") !(cudaSupport -> lib.versionAtLeast cudaVersion "11.1")
|| !(cudaSupport -> lib.versionAtLeast cudaPackagesGoogle.cudnn.version "8.2") || !(cudaSupport -> lib.versionAtLeast cudaPackages.cudnn.version "8.2")
|| !(cudaSupport -> stdenv.isLinux) || !(cudaSupport -> stdenv.isLinux)
|| !(cudaSupport -> (gpuSrcs ? "cuda${cudaVersion}-${pythonVersion}")) || !(cudaSupport -> (gpuSrcs ? "cuda${cudaVersion}-${pythonVersion}"))
# Fails at pythonImportsCheckPhase: # Fails at pythonImportsCheckPhase:

View File

@ -13,7 +13,6 @@
, curl , curl
, cython , cython
, fetchFromGitHub , fetchFromGitHub
, fetchpatch
, git , git
, IOKit , IOKit
, jsoncpp , jsoncpp
@ -45,22 +44,22 @@
, config , config
# CUDA flags: # CUDA flags:
, cudaSupport ? config.cudaSupport , cudaSupport ? config.cudaSupport
, cudaPackagesGoogle , cudaPackages
# MKL: # MKL:
, mklSupport ? true , mklSupport ? true
}@inputs: }@inputs:
let let
inherit (cudaPackagesGoogle) cudaFlags cudaVersion cudnn nccl; inherit (cudaPackages) cudaFlags cudaVersion cudnn nccl;
pname = "jaxlib"; pname = "jaxlib";
version = "0.4.24"; version = "0.4.28";
# It's necessary to consistently use backendStdenv when building with CUDA # It's necessary to consistently use backendStdenv when building with CUDA
# support, otherwise we get libstdc++ errors downstream # support, otherwise we get libstdc++ errors downstream
stdenv = throw "Use effectiveStdenv instead"; stdenv = throw "Use effectiveStdenv instead";
effectiveStdenv = if cudaSupport then cudaPackagesGoogle.backendStdenv else inputs.stdenv; effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv;
meta = with lib; { meta = with lib; {
description = "JAX is Autograd and XLA, brought together for high-performance machine learning research."; description = "JAX is Autograd and XLA, brought together for high-performance machine learning research.";
@ -78,7 +77,7 @@ let
# These are necessary at build time and run time. # These are necessary at build time and run time.
cuda_libs_joined = symlinkJoin { cuda_libs_joined = symlinkJoin {
name = "cuda-joined"; name = "cuda-joined";
paths = with cudaPackagesGoogle; [ paths = with cudaPackages; [
cuda_cudart.lib # libcudart.so cuda_cudart.lib # libcudart.so
cuda_cudart.static # libcudart_static.a cuda_cudart.static # libcudart_static.a
cuda_cupti.lib # libcupti.so cuda_cupti.lib # libcupti.so
@ -92,11 +91,11 @@ let
# These are only necessary at build time. # These are only necessary at build time.
cuda_build_deps_joined = symlinkJoin { cuda_build_deps_joined = symlinkJoin {
name = "cuda-build-deps-joined"; name = "cuda-build-deps-joined";
paths = with cudaPackagesGoogle; [ paths = with cudaPackages; [
cuda_libs_joined cuda_libs_joined
# Binaries # Binaries
cudaPackagesGoogle.cuda_nvcc.bin # nvcc cudaPackages.cuda_nvcc.bin # nvcc
# Headers # Headers
cuda_cccl.dev # block_load.cuh cuda_cccl.dev # block_load.cuh
@ -181,19 +180,10 @@ let
owner = "openxla"; owner = "openxla";
repo = "xla"; repo = "xla";
# Update this according to https://github.com/google/jax/blob/jaxlib-v${version}/third_party/xla/workspace.bzl. # Update this according to https://github.com/google/jax/blob/jaxlib-v${version}/third_party/xla/workspace.bzl.
rev = "12eee889e1f2ad41e27d7b0e970cb92d282d3ec5"; rev = "e8247c3ea1d4d7f31cf27def4c7ac6f2ce64ecd4";
hash = "sha256-68kjjgwYjRlcT0TVJo9BN6s+WTkdu5UMJqQcfHpBT90="; hash = "sha256-ZhgMIVs3Z4dTrkRWDqaPC/i7yJz2dsYXrZbjzqvPX3E=";
}; };
patches = [
# Resolves "could not convert result from SmallVector<[...],6> to
# SmallVector<[...],4>" compilation error. See https://github.com/google/jax/issues/19814#issuecomment-1945141259.
(fetchpatch {
url = "https://github.com/openxla/xla/commit/7a614cd346594fc7ea2fe75570c9c53a4a444f60.patch";
hash = "sha256-RtuQTH8wzNiJcOtISLhf+gMlH1gg8hekvxEB+4wX6BM=";
})
];
dontBuild = true; dontBuild = true;
# This is necessary for patchShebangs to know the right path to use. # This is necessary for patchShebangs to know the right path to use.
@ -220,7 +210,7 @@ let
repo = "jax"; repo = "jax";
# google/jax contains tags for jax and jaxlib. Only use jaxlib tags! # google/jax contains tags for jax and jaxlib. Only use jaxlib tags!
rev = "refs/tags/${pname}-v${version}"; rev = "refs/tags/${pname}-v${version}";
hash = "sha256-hmx7eo3pephc6BQfoJ3U0QwWBWmhkAc+7S4QmW32qQs="; hash = "sha256-qSHPwi3is6Ts7pz5s4KzQHBMbcjGp+vAOsejW3o36Ek=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -364,10 +354,10 @@ let
]; ];
sha256 = (if cudaSupport then { sha256 = (if cudaSupport then {
x86_64-linux = "sha256-8JilAoTbqOjOOJa/Zc/n/quaEDcpdcLXCNb34mfB+OM="; x86_64-linux = "sha256-VGNMf5/DgXbgsu1w5J1Pmrukw+7UO31BNU+crKVsX5k=";
} else { } else {
x86_64-linux = "sha256-iqS+I1FQLNWXNMsA20cJp7YkyGUeshee5b2QfRBNZtk="; x86_64-linux = "sha256-uOoAyMBLHPX6jzdN43b5wZV5eW0yI8sCDD7BSX2h4oQ=";
aarch64-linux = "sha256-qmJ0Fm/VGMTmko4PhKs1P8/GLEJmVxb8xg+ss/HsakY=="; aarch64-linux = "sha256-+SnGKY9LIT1Qhu/x6Uh7sHRaAEjlc//qyKj1m4t16PA=";
}).${effectiveStdenv.system} or (throw "jaxlib: unsupported system: ${effectiveStdenv.system}"); }).${effectiveStdenv.system} or (throw "jaxlib: unsupported system: ${effectiveStdenv.system}");
}; };
@ -414,7 +404,7 @@ buildPythonPackage {
# for more info. # for more info.
postInstall = lib.optionalString cudaSupport '' postInstall = lib.optionalString cudaSupport ''
mkdir -p $out/bin mkdir -p $out/bin
ln -s ${cudaPackagesGoogle.cuda_nvcc.bin}/bin/ptxas $out/bin/ptxas ln -s ${cudaPackages.cuda_nvcc.bin}/bin/ptxas $out/bin/ptxas
find $out -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do find $out -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
patchelf --add-rpath "${lib.makeLibraryPath [cuda_libs_joined cudnn nccl]}" "$lib" patchelf --add-rpath "${lib.makeLibraryPath [cuda_libs_joined cudnn nccl]}" "$lib"
@ -423,7 +413,7 @@ buildPythonPackage {
nativeBuildInputs = lib.optionals cudaSupport [ autoAddDriverRunpath ]; nativeBuildInputs = lib.optionals cudaSupport [ autoAddDriverRunpath ];
propagatedBuildInputs = [ dependencies = [
absl-py absl-py
curl curl
double-conversion double-conversion

View File

@ -6,6 +6,7 @@
, fetchpatch , fetchpatch
, pytest-xdist , pytest-xdist
, pytestCheckHook , pytestCheckHook
, setuptools
, absl-py , absl-py
, cvxpy , cvxpy
, jax , jax
@ -20,7 +21,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "jaxopt"; pname = "jaxopt";
version = "0.8.3"; version = "0.8.3";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -41,7 +42,11 @@ buildPythonPackage rec {
}) })
]; ];
propagatedBuildInputs = [ build-system = [
setuptools
];
dependencies = [
absl-py absl-py
jax jax
jaxlib jaxlib
@ -66,11 +71,20 @@ buildPythonPackage rec {
"jaxopt.tree_util" "jaxopt.tree_util"
]; ];
disabledTests = lib.optionals (stdenv.isLinux && stdenv.isAarch64) [ disabledTests = [
# https://github.com/google/jaxopt/issues/592
"test_solve_sparse"
] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
# https://github.com/google/jaxopt/issues/577 # https://github.com/google/jaxopt/issues/577
"test_binary_logit_log_likelihood" "test_binary_logit_log_likelihood"
"test_solve_sparse" "test_solve_sparse"
"test_logreg_with_intercept_manual_loop3" "test_logreg_with_intercept_manual_loop3"
# https://github.com/google/jaxopt/issues/593
# Makes the test suite crash
"test_dtype_consistency"
# AssertionError: Array(0.01411963, dtype=float32) not less than or equal to 0.01
"test_multiclass_logreg6"
]; ];
meta = with lib; { meta = with lib; {

View File

@ -51,8 +51,10 @@ buildPythonPackage rec {
scipy scipy
torch torch
tensorflow tensorflow
jax # Uncomment at next release (1.9.3)
jaxlib # See https://github.com/wjakob/nanobind/issues/578
# jax
# jaxlib
]; ];
meta = with lib; { meta = with lib; {

View File

@ -1,7 +1,6 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, fetchpatch
, jax , jax
, jaxlib , jaxlib
, keras , keras
@ -30,7 +29,12 @@ buildPythonPackage rec {
hash = "sha256-WD+pmR8cEay4iziRXqF3sHUzCMBjmLJ3wZ3iYOD+hzk="; hash = "sha256-WD+pmR8cEay4iziRXqF3sHUzCMBjmLJ3wZ3iYOD+hzk=";
}; };
nativeBuildInputs = [ patches = [
# Issue reported upstream: https://github.com/google/objax/issues/270
./replace-deprecated-device_buffers.patch
];
build-system = [
setuptools setuptools
]; ];
@ -40,7 +44,7 @@ buildPythonPackage rec {
jaxlib jaxlib
]; ];
propagatedBuildInputs = [ dependencies = [
jax jax
numpy numpy
parameterized parameterized

View File

@ -0,0 +1,14 @@
diff --git a/objax/util/util.py b/objax/util/util.py
index c31a356..344cf9a 100644
--- a/objax/util/util.py
+++ b/objax/util/util.py
@@ -117,7 +117,8 @@ def get_local_devices():
if _local_devices is None:
x = jn.zeros((jax.local_device_count(), 1), dtype=jn.float32)
sharded_x = map_to_device(x)
- _local_devices = [b.device() for b in sharded_x.device_buffers]
+ device_buffers = [buf.data for buf in sharded_x.addressable_shards]
+ _local_devices = [list(b.devices())[0] for b in device_buffers]
return _local_devices

View File

@ -13,7 +13,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "opower"; pname = "opower";
version = "0.4.4"; version = "0.4.5";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "tronikos"; owner = "tronikos";
repo = "opower"; repo = "opower";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-GG7r0/rZcB4cuog3m0qCOrmcYiscPQggQhRC9sQGG40="; hash = "sha256-PBxxLbVOvJSFmDXgKeI5sICUR7NJGUEUUahK9eBsvbE=";
}; };
build-system = [ setuptools ]; build-system = [ setuptools ];

View File

@ -1,27 +0,0 @@
{ lib
, buildPythonPackage
, fetchPypi
, unittestCheckHook
, pythonAtLeast
}:
buildPythonPackage rec {
pname = "pathlib";
version = "1.0.1";
format = "setuptools";
disabled = pythonAtLeast "3.4"; # Was added to std library in Python 3.4
src = fetchPypi {
inherit pname version;
sha256 = "17zajiw4mjbkkv6ahp3xf025qglkj0805m9s41c45zryzj6p2h39";
};
nativeCheckInputs = [ unittestCheckHook ];
meta = {
description = "Object-oriented filesystem paths";
homepage = "https://pathlib.readthedocs.org/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ ];
};
}

View File

@ -1,37 +0,0 @@
{ lib
, pythonAtLeast
, buildPythonPackage
, fetchPypi
, blessings
, six
, nose
, coverage
}:
buildPythonPackage rec {
pname = "pxml";
version = "0.2.13";
format = "setuptools";
disabled = pythonAtLeast "3.8";
src = fetchPypi {
inherit pname version;
sha256 = "0c9zzfv6ciyf9qm7556wil45xxgykg1cj8isp1b88gimwcb2hxg4";
};
propagatedBuildInputs = [ blessings six ];
nativeCheckInputs = [ nose coverage ];
# test_prefixedWhitespace fails due to a python3 StringIO issue requiring
# bytes rather than str
checkPhase = ''
nosetests -e 'test_prefixedWhitespace'
'';
meta = with lib; {
homepage = "https://github.com/metagriffin/pxml";
description = ''A python library and command-line tool to "prettify" and colorize XML.'';
maintainers = with maintainers; [ glittershark ];
license = licenses.gpl3;
};
}

View File

@ -18,7 +18,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pycrdt-websocket"; pname = "pycrdt-websocket";
version = "0.13.3"; version = "0.13.4";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "jupyter-server"; owner = "jupyter-server";
repo = "pycrdt-websocket"; repo = "pycrdt-websocket";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-4kxPRPb8XfbQHYmQqnSNfqywUZxQy5b0qWIryLDtP8w="; hash = "sha256-nkm1ZQ6bYBRDDoREovhEthDZoHApYxzAnwVgDgpWW/s=";
}; };
build-system = [ build-system = [

View File

@ -11,7 +11,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pyexploitdb"; pname = "pyexploitdb";
version = "0.2.16"; version = "0.2.17";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -19,7 +19,7 @@ buildPythonPackage rec {
src = fetchPypi { src = fetchPypi {
pname = "pyExploitDb"; pname = "pyExploitDb";
inherit version; inherit version;
hash = "sha256-PP9dR8Jl4eWsky3vO9Pgraw0plik/5aWvmOAEc2/Qpo="; hash = "sha256-I7uDmKvHVx8mpqlq+kOyp57wCii8fy9ecJTSm7uHbZ0=";
}; };
build-system = [ setuptools ]; build-system = [ setuptools ];

View File

@ -1,4 +1,15 @@
{ lib, python, buildPythonPackage, fetchFromGitHub, libmilter, bsddb3, pydns, iana-etc, libredirect }: { lib
, python
, buildPythonPackage
, fetchFromGitHub
, fetchpatch
, libmilter
, bsddb3
, pydns
, iana-etc
, libredirect
, pyasyncore
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pymilter"; pname = "pymilter";
@ -13,7 +24,14 @@ buildPythonPackage rec {
}; };
buildInputs = [ libmilter ]; buildInputs = [ libmilter ];
nativeCheckInputs = [ pyasyncore ];
propagatedBuildInputs = [ bsddb3 pydns ]; propagatedBuildInputs = [ bsddb3 pydns ];
patches = [ (fetchpatch {
name = "Remove-calls-to-the-deprecated-method-assertEquals";
url = "https://github.com/sdgathman/pymilter/pull/57.patch";
hash = "sha256-/5LlDR15nMR3l7rkVjT3w4FbDTFAAgNdERWlPNL2TVg=";
})
];
preBuild = '' preBuild = ''
sed -i 's/import thread/import _thread as thread/' Milter/greylist.py sed -i 's/import thread/import _thread as thread/' Milter/greylist.py

View File

@ -1,31 +1,32 @@
{ lib {
, aiohttp lib,
, buildPythonPackage aiohttp,
, fetchFromGitHub buildPythonPackage,
, freezegun fetchFromGitHub,
, metar freezegun,
, pytest-aiohttp metar,
, pytest-asyncio pytest-aiohttp,
, pytest-cov pytest-asyncio,
, pytestCheckHook pytest-cov,
, pythonOlder pytestCheckHook,
, setuptools pythonOlder,
, setuptools-scm setuptools,
, tenacity setuptools-scm,
tenacity,
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pynws"; pname = "pynws";
version = "1.7.0"; version = "1.8.0";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "MatthewFlamm"; owner = "MatthewFlamm";
repo = pname; repo = "pynws";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-JjXGDjLITzJxEmCIv7RPvb+Jqe9hm++ptpJOryuK9M0="; hash = "sha256-KUCylHYng6mn2TWKf8C7k0IoerM22OIQ7pJMKi5SF3A=";
}; };
build-system = [ build-system = [
@ -38,9 +39,7 @@ buildPythonPackage rec {
metar metar
]; ];
optional-dependencies.retry = [ optional-dependencies.retry = [ tenacity ];
tenacity
];
nativeCheckInputs = [ nativeCheckInputs = [
freezegun freezegun
@ -55,6 +54,7 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "Python library to retrieve data from NWS/NOAA"; description = "Python library to retrieve data from NWS/NOAA";
homepage = "https://github.com/MatthewFlamm/pynws"; homepage = "https://github.com/MatthewFlamm/pynws";
changelog = "https://github.com/MatthewFlamm/pynws/releases/tag/v${version}";
license = with licenses; [ mit ]; license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ]; maintainers = with maintainers; [ fab ];
}; };

View File

@ -3,9 +3,6 @@
, fetchFromGitHub , fetchFromGitHub
, pytestCheckHook , pytestCheckHook
, six , six
, enum34
, pathlib
, pythonOlder
}: }:
buildPythonPackage rec { buildPythonPackage rec {
@ -21,8 +18,7 @@ buildPythonPackage rec {
nativeCheckInputs = [ pytestCheckHook ]; nativeCheckInputs = [ pytestCheckHook ];
propagatedBuildInputs = [ six ] propagatedBuildInputs = [ six ];
++ lib.optionals (pythonOlder "3.4") [ enum34 pathlib ];
# Test suite is broken. # Test suite is broken.
# See https://github.com/Kronuz/pyScss/issues/415 # See https://github.com/Kronuz/pyScss/issues/415

View File

@ -10,7 +10,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pysigma-backend-insightidr"; pname = "pysigma-backend-insightidr";
version = "0.2.2"; version = "0.2.3";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "SigmaHQ"; owner = "SigmaHQ";
repo = "pySigma-backend-insightidr"; repo = "pySigma-backend-insightidr";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-B42MADteF0+GC/CPJPLaTGdGcQjC8KEsK9u3tBmtObg="; hash = "sha256-wQMnnJ0KU+53MS3PIBkwIhUiyUdCrDbdUT6upk2Pp/8=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -17,7 +17,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pytrydan"; pname = "pytrydan";
version = "0.6.0"; version = "0.6.1";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.10"; disabled = pythonOlder "3.10";
@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "dgomes"; owner = "dgomes";
repo = "pytrydan"; repo = "pytrydan";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-+hFwBFYtRseVwesZtSrL3J/ZnsMAjD2ZAhTlk41hfqU="; hash = "sha256-5sTHfxNV4JEonGke8ZZ/pXoLA15iCuJ/iSW1XwFMltg=";
}; };
postPatch = '' postPatch = ''

View File

@ -34,7 +34,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "qtile"; pname = "qtile";
version = "0.25.0"; version = "0.25.0";
format = "setuptools"; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "qtile"; owner = "qtile";
@ -59,13 +59,13 @@ buildPythonPackage rec {
--replace /usr/include/libdrm ${lib.getDev libdrm}/include/libdrm --replace /usr/include/libdrm ${lib.getDev libdrm}/include/libdrm
''; '';
nativeBuildInputs = [ build-system = [
pkg-config
setuptools setuptools
setuptools-scm setuptools-scm
pkg-config
]; ];
propagatedBuildInputs = [ dependencies = [
(cairocffi.override { withXcffib = true; }) (cairocffi.override { withXcffib = true; })
dbus-next dbus-next
dbus-python dbus-python
@ -102,6 +102,6 @@ buildPythonPackage rec {
description = "A small, flexible, scriptable tiling window manager written in Python"; description = "A small, flexible, scriptable tiling window manager written in Python";
mainProgram = "qtile"; mainProgram = "qtile";
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ arjan-s ]; maintainers = with maintainers; [ arjan-s sigmanificient ];
}; };
} }

View File

@ -3,15 +3,12 @@
, fetchFromGitHub , fetchFromGitHub
, boto3 , boto3
, diskcache , diskcache
, enum34
, packaging , packaging
, pathlib
, numpy , numpy
, requests , requests
, scikit-image , scikit-image
, six , six
, pytestCheckHook , pytestCheckHook
, isPy27
, tifffile , tifffile
}: }:
@ -36,7 +33,7 @@ buildPythonPackage rec {
scikit-image scikit-image
six six
tifffile tifffile
] ++ lib.optionals isPy27 [ pathlib enum34 ]; ];
nativeCheckInputs = [ nativeCheckInputs = [
pytestCheckHook pytestCheckHook

View File

@ -12,14 +12,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "snakemake-storage-plugin-s3"; pname = "snakemake-storage-plugin-s3";
version = "0.2.10"; version = "0.2.11";
format = "pyproject"; format = "pyproject";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "snakemake"; owner = "snakemake";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-k21DRQdSUFkdwNb7MZJmClhIg+pdSc7H6FkDrbf4DT8="; hash = "sha256-pAMrWJe4+PWHglZ/C83Af+uHBg9wupfSlH4W8CvO9as=";
}; };
postPatch = '' postPatch = ''

View File

@ -10,13 +10,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "sphinxcontrib-confluencebuilder"; pname = "sphinxcontrib-confluencebuilder";
version = "2.5.1"; version = "2.5.2";
format = "pyproject"; format = "pyproject";
src = fetchPypi { src = fetchPypi {
pname = "sphinxcontrib_confluencebuilder"; pname = "sphinxcontrib_confluencebuilder";
inherit version; inherit version;
hash = "sha256-PQpkwQ95UVJwDGTAq1xdcSvd07FZpZfA/4jq3ywlMas="; hash = "sha256-FwjjlMTIhAD/v4Ig+uqrJJybdPqpPG+7OMuJwSqWo84=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -1,11 +1,9 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, isPy27
, psycopg2 , psycopg2
, pymysql , pymysql
, sqlalchemy , sqlalchemy
, pathlib
, six , six
, flask , flask
, pendulum , pendulum
@ -17,7 +15,6 @@
, pytest-sugar , pytest-sugar
, postgresql , postgresql
, postgresqlTestHook , postgresqlTestHook
,
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "sqlbag"; pname = "sqlbag";
@ -46,8 +43,7 @@ buildPythonPackage rec {
pymysql pymysql
setuptools # needed for 'pkg_resources' setuptools # needed for 'pkg_resources'
] ];
++ lib.optional isPy27 pathlib;
nativeCheckInputs = [ nativeCheckInputs = [
pytestCheckHook pytestCheckHook
@ -91,5 +87,6 @@ buildPythonPackage rec {
homepage = "https://github.com/djrobstep/sqlbag"; homepage = "https://github.com/djrobstep/sqlbag";
license = with licenses; [ unlicense ]; license = with licenses; [ unlicense ];
maintainers = with maintainers; [ soispha ]; maintainers = with maintainers; [ soispha ];
broken = true; # Fails to build against the current flask version
}; };
} }

View File

@ -1,23 +0,0 @@
{ buildPythonPackage, fetchPypi, lib, sqlalchemy, nose }:
buildPythonPackage rec {
pname = "sqlsoup";
version = "0.9.1";
format = "setuptools";
src = fetchPypi {
inherit pname version;
sha256 = "1mj00fhxj75ac3i8xk9jmm7hvcjz9p4x2r3yndcwsgb659rvgbrg";
};
propagatedBuildInputs = [ sqlalchemy ];
nativeCheckInputs = [ nose ];
meta = with lib; {
description = "A one step database access tool, built on the SQLAlchemy ORM";
homepage = "https://github.com/zzzeek/sqlsoup";
license = licenses.mit;
maintainers = [];
broken = true; # incompatible with sqlalchemy>=1.4 and unmaintained since 2016
};
}

View File

@ -2,6 +2,7 @@
, buildPythonPackage , buildPythonPackage
, pythonOlder , pythonOlder
, fetchFromGitHub , fetchFromGitHub
, fetchpatch
, setuptools , setuptools
, cryptography , cryptography
, mock , mock
@ -23,6 +24,14 @@ buildPythonPackage rec {
hash = "sha256-Oc73Jx31SLzuhT9Iym5HHszKfflKZ+3aky5flXudvmI="; hash = "sha256-Oc73Jx31SLzuhT9Iym5HHszKfflKZ+3aky5flXudvmI=";
}; };
patches = [
# fixes deprecated test assertion, assertRaisesRegexp in python 3
(fetchpatch {
url = "https://github.com/trishtzy/stem/commit/d5012a1039f05c69ebe832723ce96ecbe8f79fe1.patch";
hash = "sha256-ozOTx4/c86sW/9Ss5eZ6ZxX63ByJT5x7JF6wBBd+VFY=";
})
];
nativeBuildInputs = [ nativeBuildInputs = [
setuptools setuptools
]; ];

View File

@ -10,7 +10,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "tencentcloud-sdk-python"; pname = "tencentcloud-sdk-python";
version = "3.0.1143"; version = "3.0.1144";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "TencentCloud"; owner = "TencentCloud";
repo = "tencentcloud-sdk-python"; repo = "tencentcloud-sdk-python";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-xUjOgqhHk1Yj0WNcx051kqRmpg/YqVVvA40ueIDkr10="; hash = "sha256-cUuigY67wgYj6DvFiplXJbqcLNKxH9odeG5a8bSZ7/8=";
}; };
build-system = [ setuptools ]; build-system = [ setuptools ];

View File

@ -22,7 +22,7 @@
, tensorboard , tensorboard
, config , config
, cudaSupport ? config.cudaSupport , cudaSupport ? config.cudaSupport
, cudaPackagesGoogle , cudaPackages
, zlib , zlib
, python , python
, keras-applications , keras-applications
@ -43,7 +43,7 @@ assert ! (stdenv.isDarwin && cudaSupport);
let let
packages = import ./binary-hashes.nix; packages = import ./binary-hashes.nix;
inherit (cudaPackagesGoogle) cudatoolkit cudnn; inherit (cudaPackages) cudatoolkit cudnn;
in buildPythonPackage { in buildPythonPackage {
pname = "tensorflow" + lib.optionalString cudaSupport "-gpu"; pname = "tensorflow" + lib.optionalString cudaSupport "-gpu";
inherit (packages) version; inherit (packages) version;
@ -199,10 +199,6 @@ in buildPythonPackage {
"tensorflow.python.framework" "tensorflow.python.framework"
]; ];
passthru = {
cudaPackages = cudaPackagesGoogle;
};
meta = with lib; { meta = with lib; {
description = "Computation using data flow graphs for scalable machine learning"; description = "Computation using data flow graphs for scalable machine learning";
homepage = "http://tensorflow.org"; homepage = "http://tensorflow.org";

View File

@ -19,8 +19,8 @@
# https://groups.google.com/a/tensorflow.org/forum/#!topic/developers/iRCt5m4qUz0 # https://groups.google.com/a/tensorflow.org/forum/#!topic/developers/iRCt5m4qUz0
, config , config
, cudaSupport ? config.cudaSupport , cudaSupport ? config.cudaSupport
, cudaPackagesGoogle , cudaPackages
, cudaCapabilities ? cudaPackagesGoogle.cudaFlags.cudaCapabilities , cudaCapabilities ? cudaPackages.cudaFlags.cudaCapabilities
, mklSupport ? false, mkl , mklSupport ? false, mkl
, tensorboardSupport ? true , tensorboardSupport ? true
# XLA without CUDA is broken # XLA without CUDA is broken
@ -50,15 +50,15 @@ let
# __ZN4llvm11SmallPtrSetIPKNS_10AllocaInstELj8EED1Ev in any of the # __ZN4llvm11SmallPtrSetIPKNS_10AllocaInstELj8EED1Ev in any of the
# translation units, so the build fails at link time # translation units, so the build fails at link time
stdenv = stdenv =
if cudaSupport then cudaPackagesGoogle.backendStdenv if cudaSupport then cudaPackages.backendStdenv
else if originalStdenv.isDarwin then llvmPackages.stdenv else if originalStdenv.isDarwin then llvmPackages.stdenv
else originalStdenv; else originalStdenv;
inherit (cudaPackagesGoogle) cudatoolkit nccl; inherit (cudaPackages) cudatoolkit nccl;
# use compatible cuDNN (https://www.tensorflow.org/install/source#gpu) # use compatible cuDNN (https://www.tensorflow.org/install/source#gpu)
# cudaPackages.cudnn led to this: # cudaPackages.cudnn led to this:
# https://github.com/tensorflow/tensorflow/issues/60398 # https://github.com/tensorflow/tensorflow/issues/60398
cudnnAttribute = "cudnn_8_6"; cudnnAttribute = "cudnn_8_6";
cudnn = cudaPackagesGoogle.${cudnnAttribute}; cudnn = cudaPackages.${cudnnAttribute};
gentoo-patches = fetchzip { gentoo-patches = fetchzip {
url = "https://dev.gentoo.org/~perfinion/patches/tensorflow-patches-2.12.0.tar.bz2"; url = "https://dev.gentoo.org/~perfinion/patches/tensorflow-patches-2.12.0.tar.bz2";
hash = "sha256-SCRX/5/zML7LmKEPJkcM5Tebez9vv/gmE4xhT/jyqWs="; hash = "sha256-SCRX/5/zML7LmKEPJkcM5Tebez9vv/gmE4xhT/jyqWs=";
@ -490,8 +490,8 @@ let
broken = broken =
stdenv.isDarwin stdenv.isDarwin
|| !(xlaSupport -> cudaSupport) || !(xlaSupport -> cudaSupport)
|| !(cudaSupport -> builtins.hasAttr cudnnAttribute cudaPackagesGoogle) || !(cudaSupport -> builtins.hasAttr cudnnAttribute cudaPackages)
|| !(cudaSupport -> cudaPackagesGoogle ? cudatoolkit); || !(cudaSupport -> cudaPackages ? cudatoolkit);
} // lib.optionalAttrs stdenv.isDarwin { } // lib.optionalAttrs stdenv.isDarwin {
timeout = 86400; # 24 hours timeout = 86400; # 24 hours
maxSilent = 14400; # 4h, double the default of 7200s maxSilent = 14400; # 4h, double the default of 7200s
@ -594,7 +594,6 @@ in buildPythonPackage {
# Regression test for #77626 removed because not more `tensorflow.contrib`. # Regression test for #77626 removed because not more `tensorflow.contrib`.
passthru = { passthru = {
cudaPackages = cudaPackagesGoogle;
deps = bazel-build.deps; deps = bazel-build.deps;
libtensorflow = bazel-build.out; libtensorflow = bazel-build.out;
}; };

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