diff --git a/doc/release-notes/rl-2511.section.md b/doc/release-notes/rl-2511.section.md index 8dabfd003811..3f622334d30d 100644 --- a/doc/release-notes/rl-2511.section.md +++ b/doc/release-notes/rl-2511.section.md @@ -61,7 +61,8 @@ ### Breaking changes {#sec-nixpkgs-release-25.11-lib-breaking} -- Create the first release note entry in this section! +- `reaction` has been updated to version 2, which includes some breaking changes. + For more information, [check the release article](https://blog.ppom.me/en-reaction-v2). ### Deprecations {#sec-nixpkgs-release-25.11-lib-deprecations} diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 664ee433104b..265454f3a06b 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -4628,6 +4628,13 @@ githubId = 2245737; name = "Christopher Mark Poole"; }; + chrjabs = { + email = "contact@christophjabs.info"; + github = "chrjabs"; + githubId = 98587286; + name = "Christoph Jabs"; + keys = [ { fingerprint = "47D6 1FEB CD86 F3EC D2E3 D68A 83D0 74F3 48B2 FD9D"; } ]; + }; chrpinedo = { github = "chrpinedo"; githubId = 2324630; @@ -5986,6 +5993,13 @@ githubId = 30749142; keys = [ { fingerprint = "4E35 F2E5 2132 D654 E815 A672 DB2C BC24 2868 6000"; } ]; }; + debling = { + name = "Denilson S. Ebling"; + email = "d.ebling8@gmail.com"; + github = "debling"; + githubId = 32403873; + keys = [ { fingerprint = "3EDD 9C88 B0F2 58F8 C25F 5D2C CCBC 8AA1 AF06 2142"; } ]; + }; declan = { name = "Declan Rixon"; email = "declan.fraser.rixon@gmail.com"; diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 4cb7d863c7cf..c6926aaeb901 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -543,7 +543,14 @@ in mimir = runTest ./mimir.nix; galene = discoverTests (import ./galene.nix); gancio = runTest ./gancio.nix; - garage = handleTest ./garage { }; + garage_1 = import ./garage { + inherit runTest; + package = pkgs.garage_1; + }; + garage_2 = import ./garage { + inherit runTest; + package = pkgs.garage_2; + }; gatus = runTest ./gatus.nix; getaddrinfo = runTest ./getaddrinfo.nix; gemstash = handleTest ./gemstash.nix { }; diff --git a/nixos/tests/garage/basic.nix b/nixos/tests/garage/basic.nix index c6264d2cbc9f..5c0d1794a12f 100644 --- a/nixos/tests/garage/basic.nix +++ b/nixos/tests/garage/basic.nix @@ -1,106 +1,40 @@ -args@{ mkNode, ver, ... }: -(import ../make-test-python.nix ( - { pkgs, ... }: - { - name = "garage-basic"; - meta = { - maintainers = with pkgs.lib.maintainers; [ raitobezarius ]; +{ + lib, + mkNode, + package, + testScriptSetup, + ... +}: +{ + name = "garage-basic"; + + nodes = { + single_node = mkNode { + extraSettings = + if (lib.versionAtLeast package.version "2") then + { + replication_factor = 1; + consistency_mode = "consistent"; + } + else + { + replication_mode = "none"; + }; }; + }; - nodes = { - single_node = mkNode { replicationMode = "none"; }; - }; - - testScript = '' - from typing import List - from dataclasses import dataclass - import re - - start_all() - - cur_version_regex = re.compile('Current cluster layout version: (?P\d*)') - key_creation_regex = re.compile('Key name: (?P.*)\nKey ID: (?P.*)\nSecret key: (?P.*)') - - @dataclass - class S3Key: - key_name: str - key_id: str - secret_key: str - - @dataclass - class GarageNode: - node_id: str - host: str - - def get_node_fqn(machine: Machine) -> GarageNode: - node_id, host = machine.succeed("garage node id").split('@') - return GarageNode(node_id=node_id, host=host) - - def get_node_id(machine: Machine) -> str: - return get_node_fqn(machine).node_id - - def get_layout_version(machine: Machine) -> int: - version_data = machine.succeed("garage layout show") - m = cur_version_regex.search(version_data) - if m and m.group('ver') is not None: - return int(m.group('ver')) + 1 - else: - raise ValueError('Cannot find current layout version') - - def apply_garage_layout(machine: Machine, layouts: List[str]): - for layout in layouts: - machine.succeed(f"garage layout assign {layout}") - version = get_layout_version(machine) - machine.succeed(f"garage layout apply --version {version}") - - def create_api_key(machine: Machine, key_name: str) -> S3Key: - output = machine.succeed(f"garage key ${ - if ver == "0_8" then "new --name" else "create" - } {key_name}") - m = key_creation_regex.match(output) - if not m or not m.group('key_id') or not m.group('secret_key'): - raise ValueError('Cannot parse API key data') - return S3Key(key_name=key_name, key_id=m.group('key_id'), secret_key=m.group('secret_key')) - - def get_api_key(machine: Machine, key_pattern: str) -> S3Key: - output = machine.succeed(f"garage key info {key_pattern}") - m = key_creation_regex.match(output) - if not m or not m.group('key_name') or not m.group('key_id') or not m.group('secret_key'): - raise ValueError('Cannot parse API key data') - return S3Key(key_name=m.group('key_name'), key_id=m.group('key_id'), secret_key=m.group('secret_key')) - - def test_bucket_writes(node): - node.succeed("garage bucket create test-bucket") - s3_key = create_api_key(node, "test-api-key") - node.succeed("garage bucket allow --read --write test-bucket --key test-api-key") - other_s3_key = get_api_key(node, 'test-api-key') - assert other_s3_key.secret_key == other_s3_key.secret_key - node.succeed( - f"mc alias set test-garage http://[::1]:3900 {s3_key.key_id} {s3_key.secret_key} --api S3v4" - ) - node.succeed("echo test | mc pipe test-garage/test-bucket/test.txt") - assert node.succeed("mc cat test-garage/test-bucket/test.txt").strip() == "test" - - def test_bucket_over_http(node, bucket='test-bucket', url=None): - if url is None: - url = f"{bucket}.web.garage" - - node.succeed(f'garage bucket website --allow {bucket}') - node.succeed(f'echo hello world | mc pipe test-garage/{bucket}/index.html') - assert (node.succeed(f"curl -H 'Host: {url}' http://localhost:3902")).strip() == 'hello world' + testScript = # python + '' + ${testScriptSetup} with subtest("Garage works as a single-node S3 storage"): single_node.wait_for_unit("garage.service") single_node.wait_for_open_port(3900) # Now Garage is initialized. single_node_id = get_node_id(single_node) - apply_garage_layout(single_node, [f'-z qemutest -c ${ - if ver == "0_8" then "1" else "1G" - } "{single_node_id}"']) + apply_garage_layout(single_node, [f'-z qemutest -c 1G "{single_node_id}"']) # Now Garage is operational. test_bucket_writes(single_node) test_bucket_over_http(single_node) ''; - } -)) - args +} diff --git a/nixos/tests/garage/common.nix b/nixos/tests/garage/common.nix new file mode 100644 index 000000000000..c8392eee6dba --- /dev/null +++ b/nixos/tests/garage/common.nix @@ -0,0 +1,85 @@ +{ ... }: +{ + _module.args.testScriptSetup = # python + '' + from typing import List + from dataclasses import dataclass + import re + + start_all() + + cur_version_regex = re.compile(r'Current cluster layout version: (?P\d*)') + + @dataclass + class S3Key: + key_name: str + key_id: str + secret_key: str + + @dataclass + class GarageNode: + node_id: str + host: str + + def get_node_fqn(machine: Machine) -> GarageNode: + node_id, host = machine.succeed("garage node id").split('@') + return GarageNode(node_id=node_id, host=host) + + def get_node_id(machine: Machine) -> str: + return get_node_fqn(machine).node_id + + def get_layout_version(machine: Machine) -> int: + version_data = machine.succeed("garage layout show") + m = cur_version_regex.search(version_data) + if m and m.group('ver') is not None: + return int(m.group('ver')) + 1 + else: + raise ValueError('Cannot find current layout version') + + def apply_garage_layout(machine: Machine, layouts: List[str]): + for layout in layouts: + machine.succeed(f"garage layout assign {layout}") + version = get_layout_version(machine) + machine.succeed(f"garage layout apply --version {version}") + + def create_api_key(machine: Machine, key_name: str) -> S3Key: + output = machine.succeed(f"garage key create {key_name}") + return parse_api_key_data(output) + + def get_api_key(machine: Machine, key_pattern: str) -> S3Key: + output = machine.succeed(f"garage key info {key_pattern}") + return parse_api_key_data(output) + + def parse_api_key_data(text) -> S3Key: + key_creation_regex = re.compile(r'Key name: \s*(?P.*)|' r'Key ID: \s*(?P.*)|' r'Secret key: \s*(?P.*)', re.IGNORECASE) + fields = {} + for match in key_creation_regex.finditer(text): + for key, value in match.groupdict().items(): + if value: + fields[key] = value.strip() + try: + return S3Key(**fields) + except TypeError as e: + raise ValueError(f"Cannot parse API key data. Missing required field(s): {e}") + + def test_bucket_writes(node): + node.succeed("garage bucket create test-bucket") + s3_key = create_api_key(node, "test-api-key") + node.succeed("garage bucket allow --read --write test-bucket --key test-api-key") + other_s3_key = get_api_key(node, 'test-api-key') + assert other_s3_key.secret_key == other_s3_key.secret_key + node.succeed( + f"mc alias set test-garage http://[::1]:3900 {s3_key.key_id} {s3_key.secret_key} --api S3v4" + ) + node.succeed("echo test | mc pipe test-garage/test-bucket/test.txt") + assert node.succeed("mc cat test-garage/test-bucket/test.txt").strip() == "test" + + def test_bucket_over_http(node, bucket='test-bucket', url=None): + if url is None: + url = f"{bucket}.web.garage" + + node.succeed(f'garage bucket website --allow {bucket}') + node.succeed(f'echo hello world | mc pipe test-garage/{bucket}/index.html') + assert (node.succeed(f"curl -H 'Host: {url}' http://localhost:3902")).strip() == 'hello world' + ''; +} diff --git a/nixos/tests/garage/default.nix b/nixos/tests/garage/default.nix index cd2824d26ecd..93f721abe241 100644 --- a/nixos/tests/garage/default.nix +++ b/nixos/tests/garage/default.nix @@ -1,16 +1,12 @@ { - system ? builtins.currentSystem, - config ? { }, - pkgs ? import ../../.. { inherit system config; }, + runTest, + package, }: -with pkgs.lib; - let mkNode = - package: { - replicationMode, publicV6Address ? "::1", + extraSettings ? { }, }: { pkgs, ... }: { @@ -30,8 +26,6 @@ let enable = true; inherit package; settings = { - replication_mode = replicationMode; - rpc_bind_addr = "[::]:3901"; rpc_public_addr = "[${publicV6Address}]:3901"; rpc_secret = "5c1915fa04d0b6739675c61bf5907eb0fe3d9c69850c83820f51b4d25d13868c"; @@ -47,7 +41,7 @@ let root_domain = ".web.garage"; index = "index.html"; }; - }; + } // extraSettings; }; environment.systemPackages = [ pkgs.minio-client ]; @@ -55,24 +49,24 @@ let virtualisation.diskSize = 2 * 1024; }; in -foldl - ( - matrix: ver: - matrix - // { - "basic${toString ver}" = import ./basic.nix { - inherit system pkgs ver; - mkNode = mkNode pkgs."garage_${ver}"; - }; - "with-3node-replication${toString ver}" = import ./with-3node-replication.nix { - inherit system pkgs ver; - mkNode = mkNode pkgs."garage_${ver}"; - }; - } - ) - { } - [ - "0_8" - "0_9" - "1_x" - ] +{ + basic = runTest { + imports = [ + ./common.nix + ./basic.nix + ]; + _module.args = { + inherit mkNode package; + }; + }; + + with-3node-replication = runTest { + imports = [ + ./common.nix + ./with-3node-replication.nix + ]; + _module.args = { + inherit mkNode package; + }; + }; +} diff --git a/nixos/tests/garage/with-3node-replication.nix b/nixos/tests/garage/with-3node-replication.nix index a2f4189603b0..884ef780a4d5 100644 --- a/nixos/tests/garage/with-3node-replication.nix +++ b/nixos/tests/garage/with-3node-replication.nix @@ -1,107 +1,47 @@ -args@{ mkNode, ver, ... }: -(import ../make-test-python.nix ( - { pkgs, ... }: - { - name = "garage-3node-replication"; - meta = { - maintainers = with pkgs.lib.maintainers; [ raitobezarius ]; +{ + lib, + mkNode, + package, + testScriptSetup, + ... +}: +let + extraSettings = + if (lib.versionAtLeast package.version "2") then + { + replication_factor = 3; + consistency_mode = "consistent"; + } + else + { + replication_mode = "3"; + }; +in +{ + name = "garage-3node-replication"; + + nodes = { + node1 = mkNode { + inherit extraSettings; + publicV6Address = "fc00:1::1"; }; - - nodes = { - node1 = mkNode { - replicationMode = "3"; - publicV6Address = "fc00:1::1"; - }; - node2 = mkNode { - replicationMode = "3"; - publicV6Address = "fc00:1::2"; - }; - node3 = mkNode { - replicationMode = "3"; - publicV6Address = "fc00:1::3"; - }; - node4 = mkNode { - replicationMode = "3"; - publicV6Address = "fc00:1::4"; - }; + node2 = mkNode { + inherit extraSettings; + publicV6Address = "fc00:1::2"; }; + node3 = mkNode { + inherit extraSettings; + publicV6Address = "fc00:1::3"; + }; + node4 = mkNode { + inherit extraSettings; + publicV6Address = "fc00:1::4"; + }; + }; - testScript = '' - from typing import List - from dataclasses import dataclass - import re - start_all() - - cur_version_regex = re.compile('Current cluster layout version: (?P\d*)') - key_creation_regex = re.compile('Key name: (?P.*)\nKey ID: (?P.*)\nSecret key: (?P.*)') - - @dataclass - class S3Key: - key_name: str - key_id: str - secret_key: str - - @dataclass - class GarageNode: - node_id: str - host: str - - def get_node_fqn(machine: Machine) -> GarageNode: - node_id, host = machine.succeed("garage node id").split('@') - return GarageNode(node_id=node_id, host=host) - - def get_node_id(machine: Machine) -> str: - return get_node_fqn(machine).node_id - - def get_layout_version(machine: Machine) -> int: - version_data = machine.succeed("garage layout show") - m = cur_version_regex.search(version_data) - if m and m.group('ver') is not None: - return int(m.group('ver')) + 1 - else: - raise ValueError('Cannot find current layout version') - - def apply_garage_layout(machine: Machine, layouts: List[str]): - for layout in layouts: - machine.succeed(f"garage layout assign {layout}") - version = get_layout_version(machine) - machine.succeed(f"garage layout apply --version {version}") - - def create_api_key(machine: Machine, key_name: str) -> S3Key: - output = machine.succeed(f"garage key ${ - if ver == "0_8" then "new --name" else "create" - } {key_name}") - m = key_creation_regex.match(output) - if not m or not m.group('key_id') or not m.group('secret_key'): - raise ValueError('Cannot parse API key data') - return S3Key(key_name=key_name, key_id=m.group('key_id'), secret_key=m.group('secret_key')) - - def get_api_key(machine: Machine, key_pattern: str) -> S3Key: - output = machine.succeed(f"garage key info {key_pattern}") - m = key_creation_regex.match(output) - if not m or not m.group('key_name') or not m.group('key_id') or not m.group('secret_key'): - raise ValueError('Cannot parse API key data') - return S3Key(key_name=m.group('key_name'), key_id=m.group('key_id'), secret_key=m.group('secret_key')) - - def test_bucket_writes(node): - node.succeed("garage bucket create test-bucket") - s3_key = create_api_key(node, "test-api-key") - node.succeed("garage bucket allow --read --write test-bucket --key test-api-key") - other_s3_key = get_api_key(node, 'test-api-key') - assert other_s3_key.secret_key == other_s3_key.secret_key - node.succeed( - f"mc alias set test-garage http://[::1]:3900 {s3_key.key_id} {s3_key.secret_key} --api S3v4" - ) - node.succeed("echo test | mc pipe test-garage/test-bucket/test.txt") - assert node.succeed("mc cat test-garage/test-bucket/test.txt").strip() == "test" - - def test_bucket_over_http(node, bucket='test-bucket', url=None): - if url is None: - url = f"{bucket}.web.garage" - - node.succeed(f'garage bucket website --allow {bucket}') - node.succeed(f'echo hello world | mc pipe test-garage/{bucket}/index.html') - assert (node.succeed(f"curl -H 'Host: {url}' http://localhost:3902")).strip() == 'hello world' + testScript = # python + '' + ${testScriptSetup} with subtest("Garage works as a multi-node S3 storage"): nodes = ('node1', 'node2', 'node3', 'node4') @@ -125,7 +65,7 @@ args@{ mkNode, ver, ... }: zones = ["nixcon", "nixcon", "paris_meetup", "fosdem"] apply_garage_layout(node1, [ - f'{ndata.node_id} -z {zones[index]} -c ${if ver == "0_8" then "1" else "1G"}' + f'{ndata.node_id} -z {zones[index]} -c 1G' for index, ndata in enumerate(node_ids.values()) ]) # Now Garage is operational. @@ -133,6 +73,4 @@ args@{ mkNode, ver, ... }: for node in nodes: test_bucket_over_http(get_machine(node)) ''; - } -)) - args +} diff --git a/pkgs/applications/emulators/libretro/cores/genesis-plus-gx.nix b/pkgs/applications/emulators/libretro/cores/genesis-plus-gx.nix index 740d4758a4bc..9ee731557d98 100644 --- a/pkgs/applications/emulators/libretro/cores/genesis-plus-gx.nix +++ b/pkgs/applications/emulators/libretro/cores/genesis-plus-gx.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "genesis-plus-gx"; - version = "0-unstable-2025-06-13"; + version = "0-unstable-2025-06-22"; src = fetchFromGitHub { owner = "libretro"; repo = "Genesis-Plus-GX"; - rev = "def3a7c0e413ef35a7d9d4430e5c9c9a5698b4fe"; - hash = "sha256-MCLPReWzW+NsEVtt4ySplLzGKGAaNXgDtoPYJC2yY3I="; + rev = "e1b0d20b66441c0ff220abbb1da8e6a911b9a761"; + hash = "sha256-pvzLI3G6046W11x8Sfev6W5tGYn8/d2EnmIQc99aHN4="; }; meta = { diff --git a/pkgs/applications/networking/remote/x2goclient/default.nix b/pkgs/applications/networking/remote/x2goclient/default.nix index 6500d65151c9..93d118d415a9 100644 --- a/pkgs/applications/networking/remote/x2goclient/default.nix +++ b/pkgs/applications/networking/remote/x2goclient/default.nix @@ -1,57 +1,54 @@ { - stdenv, lib, + stdenv, fetchurl, + libsForQt5, + pkg-config, + bash, cups, - libssh, libXpm, + libssh, nx-libs, openldap, openssh, - qt5, - qtbase, - qtsvg, - qtx11extras, - qttools, - phonon, - pkg-config, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "x2goclient"; - version = "4.1.2.2"; + version = "4.1.2.3"; src = fetchurl { - url = "https://code.x2go.org/releases/source/${pname}/${pname}-${version}.tar.gz"; - sha256 = "yZUyZ8QPpnEZrZanO6yx8mYZbaIFnwzc0bjVGZQh0So="; + url = "https://code.x2go.org/releases/source/x2goclient/x2goclient-${finalAttrs.version}.tar.gz"; + hash = "sha256-q4uzx40xYlx0nkLxX4EP49JCknoVKYMIwT3qO5Fayjw="; }; buildInputs = [ cups - libssh libXpm + libssh + libsForQt5.phonon + libsForQt5.qtbase + libsForQt5.qtsvg + libsForQt5.qttools + libsForQt5.qtx11extras nx-libs openldap openssh - qtbase - qtsvg - qtx11extras - qttools - phonon ]; nativeBuildInputs = [ pkg-config - qt5.wrapQtAppsHook + libsForQt5.wrapQtAppsHook ]; postPatch = '' - substituteInPlace src/onmainwindow.cpp --replace "/usr/sbin/sshd" "${openssh}/bin/sshd" + substituteInPlace src/onmainwindow.cpp \ + --replace-fail "/usr/sbin/sshd" "${lib.getExe' openssh "sshd"}" substituteInPlace Makefile \ - --replace "SHELL=/bin/bash" "SHELL=$SHELL" \ - --replace "lrelease-qt4" "${qttools.dev}/bin/lrelease" \ - --replace "qmake-qt4" "${qtbase.dev}/bin/qmake" \ - --replace "-o root -g root" "" + --replace-fail "SHELL=/bin/bash" "SHELL ?= ${lib.getExe bash}" \ + --replace-fail "lrelease-qt4" "${lib.getExe' libsForQt5.qttools.dev "lrelease"}" \ + --replace-fail "qmake-qt4" "${lib.getExe' libsForQt5.qtbase.dev "qmake"}" \ + --replace-fail "-o root -g root" "" ''; makeFlags = [ @@ -59,6 +56,10 @@ stdenv.mkDerivation rec { "ETCDIR=$(out)/etc" "build_client" "build_man" + # No rule to make target 'SHELL' + "MAKEOVERRIDES=" + ".MAKEOVERRIDES=" + ".MAKEFLAGS=" ]; installTargets = [ @@ -71,12 +72,16 @@ stdenv.mkDerivation rec { "--set QT_QPA_PLATFORM xcb" ]; - meta = with lib; { + meta = { description = "Graphical NoMachine NX3 remote desktop client"; mainProgram = "x2goclient"; homepage = "http://x2go.org/"; maintainers = [ ]; - license = licenses.gpl2; - platforms = platforms.linux; + license = with lib.licenses; [ + agpl3Plus + mit + free + ]; # Some X2Go components are licensed under some license (MIT X11, BSD, etc.) + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/by-name/az/azahar/package.nix b/pkgs/by-name/az/azahar/package.nix index 594f8e1f8f88..91f5d5517cd8 100644 --- a/pkgs/by-name/az/azahar/package.nix +++ b/pkgs/by-name/az/azahar/package.nix @@ -52,11 +52,11 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "azahar"; - version = "2122"; + version = "2122.1"; src = fetchzip { url = "https://github.com/azahar-emu/azahar/releases/download/${finalAttrs.version}/azahar-unified-source-${finalAttrs.version}.tar.xz"; - hash = "sha256-isohwigDgqwPJxinBju1biAXC3CX3JrNJiQ1NY+NjRo="; + hash = "sha256-RQ8dgD09cWyVWGSLzHz1oJOKia1OKr2jHqYwKaVGfxE="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/ca/cambia/package.nix b/pkgs/by-name/ca/cambia/package.nix new file mode 100644 index 000000000000..6134050d9e90 --- /dev/null +++ b/pkgs/by-name/ca/cambia/package.nix @@ -0,0 +1,89 @@ +{ + lib, + stdenv, + fetchFromGitHub, + buildNpmPackage, + cargo-tauri, + fetchpatch, + nix-update-script, + openssl, + pkg-config, + rustPlatform, +}: +let + version = "0-unstable-2025-03-07"; + + src = fetchFromGitHub { + owner = "arg274"; + repo = "cambia"; + rev = "bef0975f72e15b925d881ab70d3bc556ecf4ff7f"; + hash = "sha256-4/GKvU3r4JpOKgkLgSOKEHnSoIsjgjQU6pay2deiIng="; + }; + + meta = { + description = "Compact disc ripper log checking utility"; + homepage = "https://github.com/arg274/cambia"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ ambroisie ]; + }; + + frontend = buildNpmPackage (finalAttrs: { + pname = "cambia-frontend"; + inherit version; + + src = "${src}/web"; + npmDepsHash = "sha256-U+2YfsC4u6rJdeMo2zxWiXGM3061MKCcFl0oZt0ug6o="; + + installPhase = '' + runHook preInstall + cp -r build/ $out + runHook postInstall + ''; + + meta = meta // { + description = "Web UI for Cambia"; + }; + }); +in + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "cambia"; + inherit version src; + + cargoHash = "sha256-dNgFQiJrakdP0ynyVcak6cKU02Z5dcw2nhh9XhlWsOg="; + + cargoPatches = [ + # https://github.com/arg274/cambia/pull/5 + (fetchpatch { + name = "cargo.lock.patch"; + url = "https://github.com/arg274/cambia/commit/b47944fbaf4e631ede25c560a4d7e684a2ad5014.patch"; + hash = "sha256-y9WkEmzBaFJ0eHWK0hVmB6+IdWespp79N9lSuteZZAI="; + }) + ]; + + postPatch = '' + cp -r ${finalAttrs.passthru.frontend} web/build/ + ''; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + openssl + ]; + + passthru = { + updateScript = nix-update-script { + extraArgs = [ + "-s" + "frontend" + ]; + }; + inherit frontend; + }; + + meta = meta // { + mainProgram = "cambia"; + }; +}) diff --git a/pkgs/by-name/co/completely/Gemfile.lock b/pkgs/by-name/co/completely/Gemfile.lock index d6985978275b..53b2f0a2d03f 100644 --- a/pkgs/by-name/co/completely/Gemfile.lock +++ b/pkgs/by-name/co/completely/Gemfile.lock @@ -2,11 +2,11 @@ GEM remote: https://rubygems.org/ specs: colsole (1.0.0) - completely (0.6.3) + completely (0.7.1) colsole (>= 0.8.1, < 2) mister_bin (~> 0.7) docopt_ng (0.7.1) - mister_bin (0.7.6) + mister_bin (0.8.1) colsole (>= 0.8.1, < 2) docopt_ng (~> 0.7, >= 0.7.1) @@ -17,4 +17,4 @@ DEPENDENCIES completely BUNDLED WITH - 2.5.16 + 2.6.6 diff --git a/pkgs/by-name/co/completely/gemset.nix b/pkgs/by-name/co/completely/gemset.nix index f823d1203a07..ec0d8c65df42 100644 --- a/pkgs/by-name/co/completely/gemset.nix +++ b/pkgs/by-name/co/completely/gemset.nix @@ -18,10 +18,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0ci8iza647hvc4f1cmf9mpsm3i78ysf6g6213wkyrr5jk296hjjb"; + sha256 = "0129alz54h2vy7vd19i5664sasdbvrl4zgj70hl5j4rpvckr5lf8"; type = "gem"; }; - version = "0.6.3"; + version = "0.7.1"; }; docopt_ng = { groups = [ "default" ]; @@ -42,9 +42,9 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0xx8cxvzcn47zsnshcllf477x4rbssrchvp76929qnsg5k9q7fas"; + sha256 = "1zz3vpy6xrgzln2dpxgcnrq1bpzz0syl60whqc9zf8j29mayw1fy"; type = "gem"; }; - version = "0.7.6"; + version = "0.8.1"; }; } diff --git a/pkgs/by-name/da/das/package.nix b/pkgs/by-name/da/das/package.nix index 4635b60bd565..8ffc24cddf9d 100644 --- a/pkgs/by-name/da/das/package.nix +++ b/pkgs/by-name/da/das/package.nix @@ -1,10 +1,11 @@ { lib, - python3, + python3Packages, fetchFromGitHub, + versionCheckHook, }: -python3.pkgs.buildPythonApplication rec { +python3Packages.buildPythonApplication rec { pname = "das"; version = "1.0.3"; pyproject = true; @@ -21,11 +22,12 @@ python3.pkgs.buildPythonApplication rec { "defusedxml" "netaddr" "networkx" + "plotly" ]; - build-system = with python3.pkgs; [ poetry-core ]; + build-system = with python3Packages; [ poetry-core ]; - dependencies = with python3.pkgs; [ + dependencies = with python3Packages; [ dash defusedxml dnspython @@ -40,6 +42,10 @@ python3.pkgs.buildPythonApplication rec { pythonImportsCheck = [ "das" ]; + nativeCheckInputs = [ + versionCheckHook + ]; + meta = { description = "Divide full port scan results and use it for targeted Nmap runs"; homepage = "https://github.com/snovvcrash/DivideAndScan"; diff --git a/pkgs/by-name/ha/harper/package.nix b/pkgs/by-name/ha/harper/package.nix index 0775cf4535d9..4e3656d2b61a 100644 --- a/pkgs/by-name/ha/harper/package.nix +++ b/pkgs/by-name/ha/harper/package.nix @@ -7,18 +7,18 @@ rustPlatform.buildRustPackage rec { pname = "harper"; - version = "0.42.0"; + version = "0.44.0"; src = fetchFromGitHub { owner = "Automattic"; repo = "harper"; rev = "v${version}"; - hash = "sha256-qzNH8qGpSNtGQqce3E/mEQoJUP2mQsQ8ntTi9F3ol1I="; + hash = "sha256-7sF2hwj4Gnca8QVociECKY+8grIDwcUoK9Zpx5YdNr0="; }; buildAndTestSubdir = "harper-ls"; useFetchCargoVendor = true; - cargoHash = "sha256-PxYRQ6nYHXXgxb8YXkm57wIFXQrF5+cdEHA+CMk22wg="; + cargoHash = "sha256-SnwmXBt3wqsZPfKu3FIura8/y9MfU8VUKYRisdlcNXE="; passthru.updateScript = nix-update-script { }; diff --git a/pkgs/by-name/ks/kstars/package.nix b/pkgs/by-name/ks/kstars/package.nix index 57f39ef79967..8c617b0f1e34 100644 --- a/pkgs/by-name/ks/kstars/package.nix +++ b/pkgs/by-name/ks/kstars/package.nix @@ -2,7 +2,6 @@ lib, stdenv, fetchurl, - fetchpatch, cfitsio, cmake, curl, @@ -23,20 +22,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "kstars"; - version = "3.7.6"; + version = "3.7.7"; src = fetchurl { url = "mirror://kde/stable/kstars/${finalAttrs.version}/kstars-${finalAttrs.version}.tar.xz"; - hash = "sha256-6hwWMmAGKJmldL8eTLQzzBsumk5thFoqGvm2dWk0Jpo="; + hash = "sha256-8tvWwmxFUSqnw5JPC/Bgao75eORoxUUF3MDLL+EgAkU="; }; - patches = [ - (fetchpatch { - url = "https://invent.kde.org/education/kstars/-/commit/92eb37bdb3e24bd06e6da9977f3bf76218c95339.diff"; - hash = "sha256-f2m15op48FiPYsKJ7WudlejVwoiGYWGnX2QiCnBINU8="; - }) - ]; - nativeBuildInputs = with kdePackages; [ extra-cmake-modules kdoctools diff --git a/pkgs/by-name/li/lintspec/package.nix b/pkgs/by-name/li/lintspec/package.nix index d403c207cbf7..0c0f75e5ece6 100644 --- a/pkgs/by-name/li/lintspec/package.nix +++ b/pkgs/by-name/li/lintspec/package.nix @@ -6,17 +6,17 @@ rustPlatform.buildRustPackage rec { pname = "lintspec"; - version = "0.5.0"; + version = "0.6.0"; src = fetchFromGitHub { owner = "beeb"; repo = "lintspec"; tag = "v${version}"; - hash = "sha256-I9u4fS3K3tPgr15lAEkBQO1KXSNPAu3aiM9Qo9IRuHE="; + hash = "sha256-xT+2gDaKwjnBZBmeY/5UDka/EFodRGflb433BfDeuuk="; }; useFetchCargoVendor = true; - cargoHash = "sha256-wTR4E+Pbx0ReeVav/ECklS8on0v5aYvFqE+FZhieRHk="; + cargoHash = "sha256-r9CRu0zLvsllo3v8E1C8VxmsMbhOQxY8H/imZt04Nok="; meta = { description = "Blazingly fast linter for NatSpec comments in Solidity code"; diff --git a/pkgs/by-name/lu/luau/package.nix b/pkgs/by-name/lu/luau/package.nix index 60a0e49cfa79..84d8502d773a 100644 --- a/pkgs/by-name/lu/luau/package.nix +++ b/pkgs/by-name/lu/luau/package.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "luau"; - version = "0.678"; + version = "0.679"; src = fetchFromGitHub { owner = "luau-lang"; repo = "luau"; tag = finalAttrs.version; - hash = "sha256-FYh7LTLDdl3eYXRDAn+FDkqBCiWY0JqHrX9lbz5r+gI="; + hash = "sha256-PLYiGMdXA/PFZaOOv/fmRjU5b9fNmvUoExNjFq81tto="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/by-name/md/mdns-scanner/package.nix b/pkgs/by-name/md/mdns-scanner/package.nix index 17e9f15247b6..781cf8669be0 100644 --- a/pkgs/by-name/md/mdns-scanner/package.nix +++ b/pkgs/by-name/md/mdns-scanner/package.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "mdns-scanner"; - version = "0.12.1"; + version = "0.13.0"; src = fetchFromGitHub { owner = "CramBL"; repo = "mdns-scanner"; tag = "v${finalAttrs.version}"; - hash = "sha256-I0/ms1FFTGgSk101GBascTSMBCLAmzqk2yiNYskedvU="; + hash = "sha256-86GpBjgfBMkqzoWPEbjQM6PvSEb67A8nL7sEtplXoic="; }; - cargoHash = "sha256-JdeIEaSfiMCQ9n3Y4DpTWhheHaA54zJKUsG/e4Xo9LU="; + cargoHash = "sha256-z0IHONtU1pgViQZu0Q2fZVjdJ6sSlgnIw83hqWLKfVM="; meta = { homepage = "https://github.com/CramBL/mdns-scanner"; diff --git a/pkgs/by-name/mo/mozillavpn/package.nix b/pkgs/by-name/mo/mozillavpn/package.nix index 22487b17c307..4fc9428ab227 100644 --- a/pkgs/by-name/mo/mozillavpn/package.nix +++ b/pkgs/by-name/mo/mozillavpn/package.nix @@ -4,7 +4,6 @@ cargo, cmake, fetchFromGitHub, - fetchpatch, go, lib, libcap, @@ -23,36 +22,15 @@ stdenv.mkDerivation (finalAttrs: { pname = "mozillavpn"; - version = "2.27.0"; + version = "2.29.0"; src = fetchFromGitHub { owner = "mozilla-mobile"; repo = "mozilla-vpn-client"; tag = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-TfiEc5Lptr0ntp4buEEWbQTvNkVjZbdMWDv8CEZa6IM="; + hash = "sha256-Oh3qV5/fQNLjv3qnhRrgRV0d+homlGmEpTSeou3lZfE="; }; - patches = [ - # Provide default args for LottieStatus::changed so moc can call it (#10420) - (fetchpatch { - url = "https://github.com/mozilla-mobile/mozilla-vpn-client/commit/e5abe5714a5b506e398c088d21672f00d6f93240.patch"; - hash = "sha256-DU5wQ1DDF8DbmMIlohoEIDJ7/9+9GVwrvsr51T9bGx8="; - }) - # Remove Qt.labls.qmlmodels usage (#10422) - (fetchpatch { - url = "https://github.com/mozilla-mobile/mozilla-vpn-client/commit/4497972b1bf7b7f215dc6c1227d76d6825f5b958.patch"; - hash = "sha256-RPRdARM/jXSHmTGGjiOrfJ7KVejp3JmUfsN5pmKYPuY="; - }) - # Qt compat: Make sure to include what we use - (fetchpatch { - url = "https://github.com/mozilla-mobile/mozilla-vpn-client/commit/0909d43447a7ddbc6ec20d108637524552848bd6.patch"; - hash = "sha256-Hpn69hQxa269XH+Ku/MYD2GwdFhfCX4yoVRCEDfIOKc="; - }) - # Use QDesktopUnixServices after qt 6.9.0 - (fetchpatch { - url = "https://github.com/mozilla-mobile/mozilla-vpn-client/pull/10424/commits/81e66044388459ffe2b08804ab5a326586ac7113.patch"; - hash = "sha256-+v3NoTAdkjKEyBPbbJZQ2d11hJMyE3E4B9uYUerVa7c="; - }) - ]; + patches = [ ]; netfilter = buildGoModule { pname = "${finalAttrs.pname}-netfilter"; @@ -67,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: { cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) src patches; - hash = "sha256-SGC+YT5ATV/ZaP/wrm3c31OQBw6Pk8ZSXjxEPFdP2f8="; + hash = "sha256-Flsa93Nko/sHr9z+YW7xDFMVLOzJE4oJFAl841gpPpw="; }; buildInputs = [ diff --git a/pkgs/by-name/pe/peazip/package.nix b/pkgs/by-name/pe/peazip/package.nix index 78cc0b2ae3bd..977d921b2d03 100644 --- a/pkgs/by-name/pe/peazip/package.nix +++ b/pkgs/by-name/pe/peazip/package.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation rec { pname = "peazip"; - version = "10.4.0"; + version = "10.5.0"; src = fetchFromGitHub { owner = "peazip"; repo = "peazip"; rev = version; - hash = "sha256-tA2JLO4KIqFOVZyt7CPMRJTojQFQVQqGGOeh3sU/FuQ="; + hash = "sha256-tEx0ZSvv+byn8OPSFprFJwMFxuEQzyrkvk4FbvGtH2A="; }; sourceRoot = "${src.name}/peazip-sources"; diff --git a/pkgs/by-name/re/reaction/package.nix b/pkgs/by-name/re/reaction/package.nix index 6b32e4b319aa..ab1a9051f01f 100644 --- a/pkgs/by-name/re/reaction/package.nix +++ b/pkgs/by-name/re/reaction/package.nix @@ -1,46 +1,46 @@ { lib, - buildGoModule, fetchFromGitLab, + rustPlatform, + nix-update-script, + installShellFiles, }: -let - version = "1.4.1"; -in -buildGoModule { - inherit version; +rustPlatform.buildRustPackage (finalAttrs: { pname = "reaction"; + version = "2.0.1"; src = fetchFromGitLab { domain = "framagit.org"; owner = "ppom"; repo = "reaction"; - rev = "v${version}"; - hash = "sha256-UL3ck+gejZAu/mZS3ZiZ78a2/I+OesaSRZUhHirgu9o="; + tag = "v${finalAttrs.version}"; + hash = "sha256-HpnLh0JfGZsHcvDQSiKfW62QcCe/QDsVP/nGBo9x494="; }; - vendorHash = "sha256-THUIoWFzkqaTofwH4clBgsmtUlLS9WIB2xjqW7vkhpg="; + cargoHash = "sha256-i8KZygESxgty8RR3C+JMuE1aAsBxoLuGsL4jqjdGr0E="; - ldflags = [ - "-X main.version=${version}" - "-X main.commit=unknown" + nativeBuildInputs = [ + installShellFiles ]; - postBuild = '' - $CC helpers_c/ip46tables.c -o ip46tables - $CC helpers_c/nft46.c -o nft46 + postInstall = '' + installBin $releaseDir/ip46tables $releaseDir/nft46 + installManPage $releaseDir/reaction*.1 + installShellCompletion --cmd reaction \ + --bash $releaseDir/reaction.bash \ + --fish $releaseDir/reaction.fish \ + --zsh $releaseDir/_reaction ''; - postInstall = '' - cp ip46tables nft46 $out/bin - ''; + passthru.updateScript = nix-update-script { }; meta = { description = "Scan logs and take action: an alternative to fail2ban"; homepage = "https://framagit.org/ppom/reaction"; - changelog = "https://framagit.org/ppom/reaction/-/releases/v${version}"; + changelog = "https://framagit.org/ppom/reaction/-/releases/v${finalAttrs.version}"; license = lib.licenses.agpl3Plus; mainProgram = "reaction"; maintainers = with lib.maintainers; [ ppom ]; - platforms = lib.platforms.unix; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/by-name/ri/river-ultitile/build.zig.zon.nix b/pkgs/by-name/ri/river-ultitile/build.zig.zon.nix new file mode 100644 index 000000000000..a26d29e2067e --- /dev/null +++ b/pkgs/by-name/ri/river-ultitile/build.zig.zon.nix @@ -0,0 +1,99 @@ +# generated by zon2nix (https://github.com/Cloudef/zig2nix) + +{ + lib, + linkFarm, + fetchurl, + fetchgit, + runCommandLocal, + zig, + name ? "zig-packages", +}: + +with builtins; +with lib; + +let + unpackZigArtifact = + { name, artifact }: + runCommandLocal name { nativeBuildInputs = [ zig ]; } '' + hash="$(zig fetch --global-cache-dir "$TMPDIR" ${artifact})" + mv "$TMPDIR/p/$hash" "$out" + chmod 755 "$out" + ''; + + fetchZig = + { + name, + url, + hash, + }: + let + artifact = fetchurl { inherit url hash; }; + in + unpackZigArtifact { inherit name artifact; }; + + fetchGitZig = + { + name, + url, + hash, + rev ? throw "rev is required, remove and regenerate the zon2json-lock file", + }: + let + parts = splitString "#" url; + url_base = elemAt parts 0; + url_without_query = elemAt (splitString "?" url_base) 0; + in + fetchgit { + inherit name rev hash; + url = url_without_query; + deepClone = false; + }; + + fetchZigArtifact = + { + name, + url, + hash, + ... + }@args: + let + parts = splitString "://" url; + proto = elemAt parts 0; + path = elemAt parts 1; + fetcher = { + "git+http" = fetchGitZig ( + args + // { + url = "http://${path}"; + } + ); + "git+https" = fetchGitZig ( + args + // { + url = "https://${path}"; + } + ); + http = fetchZig { + inherit name hash; + url = "http://${path}"; + }; + https = fetchZig { + inherit name hash; + url = "https://${path}"; + }; + }; + in + fetcher.${proto}; +in +linkFarm name [ + { + name = "wayland-0.3.0-lQa1kjPIAQDmhGYpY-zxiRzQJFHQ2VqhJkQLbKKdt5wl"; + path = fetchZigArtifact { + name = "wayland"; + url = "https://codeberg.org/ifreund/zig-wayland/archive/v0.3.0.tar.gz"; + hash = "sha256-xU8IrETSFOKKQQMgwVyRKLwGaek4USaKXg49S9oHSTQ="; + }; + } +] diff --git a/pkgs/by-name/ri/river-ultitile/package.nix b/pkgs/by-name/ri/river-ultitile/package.nix new file mode 100644 index 000000000000..83c5c351a7a7 --- /dev/null +++ b/pkgs/by-name/ri/river-ultitile/package.nix @@ -0,0 +1,69 @@ +{ + callPackage, + fetchFromSourcehut, + lib, + pandoc, + pkg-config, + stdenv, + wayland, + wayland-protocols, + wayland-scanner, + zig_0_14, +}: + +let + zig = zig_0_14; +in +stdenv.mkDerivation (finalAttrs: { + pname = "river-ultitile"; + version = "1.3.0"; + + src = fetchFromSourcehut { + owner = "~midgard"; + repo = "river-ultitile"; + rev = "v${finalAttrs.version}"; + hash = "sha256-whzJZLgd51kXOVq9YVqcADTOyGmHmwJZWzbrZGZx3Ak="; + }; + + nativeBuildInputs = [ + zig.hook + pkg-config + wayland + wayland-scanner + ]; + + buildInputs = [ + wayland-protocols + pandoc # used for building documentation + ]; + + deps = callPackage ./build.zig.zon.nix { }; + + zigBuildFlags = [ + "--system" + "${finalAttrs.deps}" + ]; + + meta = { + description = "Configurable layout generator for the River compositor"; + longDescription = '' + A layout generator for **river**. Features include: + - **configurable** layouts employing nested tiles (no juggling with coordinates), + - **widescreen** support by default, + - default layouts, switchable at run time with a command or key binding: + - dwm-like main/stack layout, + - main on the left on normal screens, + - **main in the center and stacks on both sides** on widescreens, + - a vertical stack, + - a horizontal stack, and + - a monocle layout, + - optional per-tag-per-output state. + ''; + changelog = "https://git.sr.ht/~midgard/river-ultitile/tree/v${finalAttrs.version}/item/CHANGELOG.md"; + homepage = "https://git.sr.ht/~midgard/river-ultitile"; + license = lib.licenses.gpl3Plus; + mainProgram = "river-ultitile"; + maintainers = with lib.maintainers; [ debling ]; + platforms = lib.platforms.linux; + }; +}) diff --git a/pkgs/by-name/ro/roslyn-ls/package.nix b/pkgs/by-name/ro/roslyn-ls/package.nix index 651269965234..4068c505d404 100644 --- a/pkgs/by-name/ro/roslyn-ls/package.nix +++ b/pkgs/by-name/ro/roslyn-ls/package.nix @@ -32,18 +32,18 @@ in buildDotnetModule rec { inherit pname dotnet-sdk dotnet-runtime; - vsVersion = "2.82.12"; + vsVersion = "2.83.5"; src = fetchFromGitHub { owner = "dotnet"; repo = "roslyn"; rev = "VSCode-CSharp-${vsVersion}"; - hash = "sha256-5QCiA2NxjWUFLut8gxboR2kTibN66QCxbe2g2jdrINo="; + hash = "sha256-1YH2cxj+Or73Z1Ery/63RubIgkM5Iz9PiKii65noj/c="; }; # versioned independently from vscode-csharp # "roslyn" in here: # https://github.com/dotnet/vscode-csharp/blob/main/package.json - version = "5.0.0-1.25302.10"; + version = "5.0.0-1.25312.6"; projectFile = "src/LanguageServer/${project}/${project}.csproj"; useDotnetFromEnv = true; nugetDeps = ./deps.json; diff --git a/pkgs/by-name/ro/rospo/package.nix b/pkgs/by-name/ro/rospo/package.nix index 5658c5854d74..c3b0323460e0 100644 --- a/pkgs/by-name/ro/rospo/package.nix +++ b/pkgs/by-name/ro/rospo/package.nix @@ -2,39 +2,48 @@ lib, stdenv, buildGoModule, + buildPackages, fetchFromGitHub, installShellFiles, }: -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "rospo"; - version = "0.14.0"; + version = "0.15.0"; src = fetchFromGitHub { owner = "ferama"; repo = "rospo"; - rev = "v${version}"; - hash = "sha256-H6hZbOnX+1P1Ob5fCROQtV+64NiFD9mO3kiaQY63OBM="; + tag = "v${finalAttrs.version}"; + hash = "sha256-xfCjRAsKJxtYeY2Mx+l1tDtqAF0SKjTCJCh1gCG+Rl8="; }; - vendorHash = "sha256-KyTDyV27YQDqbEyKSYfbJuTKw2EsZAqWsHhmMncUHUs="; + vendorHash = "sha256-6hCaguJP7XXdxYYS2KuBegwPaKP8rD9YI5727HZo7uA="; ldflags = [ "-s" "-w" - "-X github.com/ferama/rospo/cmd.Version=${version}" + "-X github.com/ferama/rospo/cmd.Version=${finalAttrs.version}" ]; nativeBuildInputs = [ installShellFiles ]; doCheck = false; - postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' - installShellCompletion --cmd rospo \ - --bash <($out/bin/rospo completion bash) \ - --fish <($out/bin/rospo completion fish) \ - --zsh <($out/bin/rospo completion zsh) - ''; + postInstall = + let + rospoBin = + if stdenv.buildPlatform.canExecute stdenv.hostPlatform then + placeholder "out" + else + buildPackages.rospo; + in + '' + installShellCompletion --cmd rospo \ + --bash <(${rospoBin}/bin/rospo completion bash) \ + --fish <(${rospoBin}/bin/rospo completion fish) \ + --zsh <(${rospoBin}/bin/rospo completion zsh) + ''; meta = { description = "Simple, reliable, persistent ssh tunnels with embedded ssh server"; @@ -43,4 +52,4 @@ buildGoModule rec { maintainers = with lib.maintainers; [ sikmir ]; mainProgram = "rospo"; }; -} +}) diff --git a/pkgs/by-name/ta/tauno-monitor/package.nix b/pkgs/by-name/ta/tauno-monitor/package.nix index c92b1e7d1b5c..709db657b9c8 100644 --- a/pkgs/by-name/ta/tauno-monitor/package.nix +++ b/pkgs/by-name/ta/tauno-monitor/package.nix @@ -13,14 +13,14 @@ }: python3Packages.buildPythonApplication rec { pname = "tauno-monitor"; - version = "0.1.29"; + version = "0.2.0"; pyproject = false; src = fetchFromGitHub { owner = "taunoe"; repo = "tauno-monitor"; tag = "v${version}"; - hash = "sha256-U7vp0cPIRQeeuLGazoCQAnVQaKxDznC65bE31SwYU3A="; + hash = "sha256-144kRMhZUwgn3BRy6c0A5Fwh1Yisuf7H2s/0ChpIKVI="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/python-sat/default.nix b/pkgs/development/python-modules/python-sat/default.nix index bf1c6c45982c..940dbfe3273d 100644 --- a/pkgs/development/python-modules/python-sat/default.nix +++ b/pkgs/development/python-modules/python-sat/default.nix @@ -6,17 +6,16 @@ pypblib, pytestCheckHook, }: - buildPythonPackage rec { pname = "python-sat"; - version = "0.1.7.dev1"; + version = "0.1.8.dev17"; format = "setuptools"; src = fetchFromGitHub { owner = "pysathq"; repo = "pysat"; - rev = version; - hash = "sha256-zGdgD+SgoMB7/zDQI/trmV70l91TB7OkDxaJ30W3dkI="; + rev = "a04763de6dafb8d3a0d7f1b231fc0d30be1de4c0"; # upstream does not tag releases + hash = "sha256-FG6oAAI8XKXumj6Ys2QjjYcRp1TpwkUZzyfpkdq5V6E="; }; propagatedBuildInputs = [ @@ -26,23 +25,18 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook ]; - # https://github.com/pysathq/pysat/pull/102 - postPatch = '' - # Fix for case-insensitive filesystem - cat >>solvers/patches/cadical.patch <