Merge staging-next into staging

authored by nixpkgs-ci[bot] and committed by GitHub ce3e6e88 31a538a1

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