Merge staging-next into staging

authored by nixpkgs-ci[bot] and committed by GitHub 4e99205f d1b01f0d

+582 -424
+1 -1
nixos/modules/services/monitoring/grafana-image-renderer.nix
··· 142 142 systemd.services.grafana-image-renderer = { 143 143 wantedBy = [ "multi-user.target" ]; 144 144 after = [ "network.target" ]; 145 - description = " A Grafana backend plugin that handles rendering of panels & dashboards to PNGs using headless browser (Chromium/Chrome)"; 145 + description = "Grafana backend plugin that handles rendering of panels & dashboards to PNGs using headless browser (Chromium/Chrome)"; 146 146 147 147 environment = { 148 148 PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = "true";
+1 -1
nixos/modules/services/networking/flannel.nix
··· 83 83 }; 84 84 85 85 network = lib.mkOption { 86 - description = " IPv4 network in CIDR format to use for the entire flannel network."; 86 + description = "IPv4 network in CIDR format to use for the entire flannel network"; 87 87 type = lib.types.str; 88 88 }; 89 89
+1 -1
nixos/modules/services/networking/quicktun.nix
··· 62 62 type = types.port; 63 63 default = qtcfg.localPort; 64 64 defaultText = lib.literalExpression "config.services.quicktun.<name>.localPort"; 65 - description = " remote UDP port"; 65 + description = "Remote UDP port"; 66 66 }; 67 67 68 68 remoteFloat = mkOption {
+1 -1
nixos/modules/services/web-apps/nextcloud.nix
··· 1559 1559 ]); 1560 1560 1561 1561 meta.doc = ./nextcloud.md; 1562 - meta.maintainers = teams.nextcloud; 1562 + meta.maintainers = teams.nextcloud.members; 1563 1563 }
+1 -1
pkgs/applications/editors/vscode/extensions/default.nix
··· 808 808 hash = "sha256-vVbaHSaBX6QzpnYMQlpPsJU1TQYJEBe8jq95muzwN0o="; 809 809 }; 810 810 meta = { 811 - description = " A solarized-palenight theme for vscode"; 811 + description = "Solarized-palenight theme for vscode"; 812 812 downloadPage = "https://marketplace.visualstudio.com/items?itemName=BrandonKirbyson.solarized-palenight"; 813 813 homepage = "https://github.com/BrandonKirbyson/Solarized-Palenight"; 814 814 license = lib.licenses.mit;
+10 -10
pkgs/applications/networking/browsers/chromium/info.json
··· 1 1 { 2 2 "chromium": { 3 - "version": "138.0.7204.157", 3 + "version": "138.0.7204.168", 4 4 "chromedriver": { 5 - "version": "138.0.7204.158", 6 - "hash_darwin": "sha256-rNd7glDAVNkd4CNn4k3rdpb//yD/ccpebnGhDv1EGb8=", 7 - "hash_darwin_aarch64": "sha256-oUMFW09mp2aUgplboMHaKvTVbKtqAy5C0KsA7DXbElc=" 5 + "version": "138.0.7204.169", 6 + "hash_darwin": "sha256-I87LWl+F8nmxpIUXUT+InLFf2nZ1Sh1nAtYVLCq9r5M=", 7 + "hash_darwin_aarch64": "sha256-6DoMi5gy68tuauNGvFl0QKPZnh5lY9S73+S+FNltDow=" 8 8 }, 9 9 "deps": { 10 10 "depot_tools": { ··· 20 20 "DEPS": { 21 21 "src": { 22 22 "url": "https://chromium.googlesource.com/chromium/src.git", 23 - "rev": "e533e98b1267baa1f1c46d666b120e64e5146aa9", 24 - "hash": "sha256-LbZ8/6Lvz1p3ydRL4fXtd7RL426PU3jU01Hx+DP5QYQ=", 23 + "rev": "3e8d82e86e9f508e88ed406c2a24657a6c691d30", 24 + "hash": "sha256-6s9mkfckhibpb+L74oPZsgvOZZT58BeSo362t/s92UI=", 25 25 "recompress": true 26 26 }, 27 27 "src/third_party/clang-format/script": { ··· 246 246 }, 247 247 "src/third_party/devtools-frontend/src": { 248 248 "url": "https://chromium.googlesource.com/devtools/devtools-frontend", 249 - "rev": "4cca0aa00c4915947f1081014d5cfa2e83d357fa", 250 - "hash": "sha256-pVNr8NB5U/Uf688oOvPLpu81isCn/WmjJky01A000a4=" 249 + "rev": "a718e86b3dc6f1ba3c8cc8092cd79b401d428cfc", 250 + "hash": "sha256-50KQk54JwwRS3ENUjB0QedQYFuwmkv9oxytfuNDTVPo=" 251 251 }, 252 252 "src/third_party/dom_distiller_js/dist": { 253 253 "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git", ··· 796 796 }, 797 797 "src/v8": { 798 798 "url": "https://chromium.googlesource.com/v8/v8.git", 799 - "rev": "de9d0f8b56ae61896e4d2ac577fc589efb14f87d", 800 - "hash": "sha256-/T5fisjmN80bs3PtQrCRfH3Bo9dRSd3f+xpPLDh1RTY=" 799 + "rev": "f5036f509b5e147cccb298a069c40827f3d5edd6", 800 + "hash": "sha256-n4/Lf5ZawqUY0QHF2jYl3JPPx9Br/wzVmtqnMvq3Vzk=" 801 801 } 802 802 } 803 803 },
+3 -3
pkgs/applications/networking/instant-messengers/ferdium/default.nix
··· 15 15 ."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); 16 16 hash = 17 17 { 18 - amd64-linux_hash = "sha256-e5O8cvQqvymHQiu7kY1AhKfoVOsDLYK8hDX+PKgZPFs="; 19 - arm64-linux_hash = "sha256-UskXFGxAFOrAK8bIXRHSwN0G1lakGyuRGXTYYRFKHaw="; 18 + amd64-linux_hash = "sha256-84W40++U+5/kTI84vGEqAVb93TCgFPduBkhMQG0yDRo="; 19 + arm64-linux_hash = "sha256-lOQW559aXXBIDuindVj8YBB8pzNAJPoTSJ70y1YnZQ4="; 20 20 } 21 21 ."${arch}-linux_hash"; 22 22 in 23 23 mkFranzDerivation rec { 24 24 pname = "ferdium"; 25 25 name = "Ferdium"; 26 - version = "7.0.1"; 26 + version = "7.1.0"; 27 27 src = fetchurl { 28 28 url = "https://github.com/ferdium/ferdium-app/releases/download/v${version}/Ferdium-linux-${version}-${arch}.deb"; 29 29 inherit hash;
-46
pkgs/by-name/ca/cargonode/package.nix
··· 1 - { 2 - lib, 3 - rustPlatform, 4 - fetchFromGitHub, 5 - pkg-config, 6 - }: 7 - 8 - rustPlatform.buildRustPackage rec { 9 - pname = "cargonode"; 10 - version = "0.1.3"; 11 - 12 - src = fetchFromGitHub { 13 - owner = "xosnrdev"; 14 - repo = "cargonode"; 15 - tag = version; 16 - hash = "sha256-O5+wAM99m1rgQpwz36mkHEU/FvGnY6hBCKPMIGXCeCU="; 17 - }; 18 - 19 - useFetchCargoVendor = true; 20 - cargoHash = "sha256-dYOdnyKdzL93kuSTUb+1vRqfDgkZLymaEZo9FUrR1JI="; 21 - 22 - checkFlags = [ 23 - # Skip test that requires network access 24 - "--skip test_download_file" 25 - "--skip test_extract_zip" 26 - "--skip test_invalid_download_url" 27 - "--skip test_create_package" 28 - "--skip test_init_package" 29 - ]; 30 - 31 - nativeBuildInputs = [ 32 - pkg-config 33 - ]; 34 - 35 - meta = { 36 - description = "Unified tooling for Node.js"; 37 - mainProgram = "cargonode"; 38 - homepage = "https://github.com/xosnrdev/cargonode?tab=readme-ov-file#readme"; 39 - changelog = "https://github.com/xosnrdev/cargonode/blob/${version}/CHANGELOG.md"; 40 - license = with lib.licenses; [ 41 - asl20 # or 42 - mit 43 - ]; 44 - maintainers = with lib.maintainers; [ xosnrdev ]; 45 - }; 46 - }
+1 -1
pkgs/by-name/ca/caroline/package.nix
··· 36 36 ]; 37 37 38 38 meta = with lib; { 39 - description = " A simple Cairo Chart Library for GTK and Vala"; 39 + description = "Simple Cairo Chart Library for GTK and Vala"; 40 40 homepage = "https://github.com/dcharles525/Caroline"; 41 41 maintainers = with maintainers; [ grindhold ]; 42 42 license = licenses.mit;
+1 -1
pkgs/by-name/cb/cbftp/package.nix
··· 35 35 36 36 meta = with lib; { 37 37 homepage = "https://cbftp.eu/"; 38 - description = " An advanced multi-purpose FTP/FXP client"; 38 + description = "Advanced multi-purpose FTP/FXP client"; 39 39 longDescription = '' 40 40 Cbftp is an advanced multi-purpose FTP/FXP client that focuses on 41 41 efficient large-scale data spreading, while also supporting most regular
+4 -4
pkgs/by-name/cl/clash-verge-rev/package.nix
··· 12 12 }: 13 13 let 14 14 pname = "clash-verge-rev"; 15 - version = "2.3.1"; 15 + version = "2.3.2"; 16 16 17 17 src = fetchFromGitHub { 18 18 owner = "clash-verge-rev"; 19 19 repo = "clash-verge-rev"; 20 20 tag = "v${version}"; 21 - hash = "sha256-NNP/NDC/Y4oBQftM6Z+pOFMEtdtvcIMYyY3sGwkpmrc="; 21 + hash = "sha256-Wdd1iZspVcCxifCYvST4vlatQJXnyeZkm3Ifc8Q2xtM="; 22 22 }; 23 23 24 24 src-service = fetchFromGitHub { ··· 29 29 }; 30 30 31 31 service-cargo-hash = "sha256-HET7/Lyc0Ip1f9WMVzUWr0QFuL8YN3dgZdK0adl/rYc="; 32 - pnpm-hash = "sha256-bhWaDP0gHJC6Mx9QFl4Ltk7y5jozt0eLtsPOWg821Yw="; 33 - vendor-hash = "sha256-UkiPJNr5leKuffrrh8n2uhCe/QVjIb4S9heZXP7oKqw="; 32 + pnpm-hash = "sha256-yizUju+AswVkbfPMxNhHkrkKsFIe7yedEUqS15uy+V0="; 33 + vendor-hash = "sha256-u2y0fSx15Kbe3auL7c4enW0y6z4gjvTg4WIGkmXpMmI="; 34 34 35 35 service = callPackage ./service.nix { 36 36 inherit
+1 -1
pkgs/by-name/ea/each/package.nix
··· 19 19 cargoHash = "sha256-TfAT36/JeBjBxymnX1gIyCEPZcxTW4fPVIOhHF3z9wA="; 20 20 21 21 meta = with lib; { 22 - description = " A better way of working with structured data on the command line"; 22 + description = "A better way of working with structured data on the command line"; 23 23 mainProgram = "each"; 24 24 homepage = "https://github.com/arraypad/each"; 25 25 license = with licenses; [ mit ];
+4 -4
pkgs/by-name/fi/firefly-iii-data-importer/package.nix
··· 13 13 14 14 stdenvNoCC.mkDerivation (finalAttrs: { 15 15 pname = "firefly-iii-data-importer"; 16 - version = "1.7.6"; 16 + version = "1.7.8"; 17 17 18 18 src = fetchFromGitHub { 19 19 owner = "firefly-iii"; 20 20 repo = "data-importer"; 21 21 tag = "v${finalAttrs.version}"; 22 - hash = "sha256-2QjflXnusdqg63S1RgSbDsYHk9U4Xjf59wkvvo9n+Zo="; 22 + hash = "sha256-ZsrzB9jO9huMb7N6J+LPAKOGisIjuXaXAGhyewWC+cA="; 23 23 }; 24 24 25 25 buildInputs = [ php84 ]; ··· 38 38 composerStrictValidation = true; 39 39 strictDeps = true; 40 40 41 - vendorHash = "sha256-j0KjjmaDyFBFWnz6e4Bkrb3gkitfSKsj9UB2j/G19do="; 41 + vendorHash = "sha256-mgliWS/PrGGGc0we8/TH/7xitbXtZFCrFBF+ElNYXBA="; 42 42 43 43 npmDeps = fetchNpmDeps { 44 44 inherit (finalAttrs) src; 45 45 name = "${finalAttrs.pname}-npm-deps"; 46 - hash = "sha256-4bDSEGg5vGoam1PLRfaxJK0aQ+MLBTF+GP0AZQjHvVw="; 46 + hash = "sha256-28Y8fM88Z83VVZMm3ZanP9CskUWCE3043lgoP7WhW/I="; 47 47 }; 48 48 49 49 composerRepository = php84.mkComposerRepository {
+1 -1
pkgs/by-name/ga/galerio/package.nix
··· 19 19 cargoHash = "sha256-jXUAjK/fqBaXaehcbFZU02w9/MTHluqKjtWGoAJa7ks="; 20 20 21 21 meta = with lib; { 22 - description = " A simple generator for self-contained HTML flexbox galleries"; 22 + description = "Simple generator for self-contained HTML flexbox galleries"; 23 23 homepage = "https://github.com/dbrgn/galerio"; 24 24 maintainers = with maintainers; [ dbrgn ]; 25 25 license = with licenses; [
+1 -1
pkgs/by-name/gi/gitlab-ci-ls/package.nix
··· 13 13 owner = "alesbrelih"; 14 14 repo = "gitlab-ci-ls"; 15 15 rev = "${version}"; 16 - hash = "sha256-yJA6xdeLJVPbHI2VdRAmsYvuULCJk40ntIJ0JIWsZds="; 16 + hash = "sha256-0AVi/DyaWh+dCXm/jUf3M63KjobJWCCKHDvm1xGUzCw="; 17 17 }; 18 18 19 19 useFetchCargoVendor = true;
+1 -1
pkgs/by-name/gi/gitlab-timelogs/package.nix
··· 29 29 cargoHash = "sha256-qSIRcf0HpRg1Eu12L6UcJajHBgjJgfhsHmF1oV1h8HM="; 30 30 31 31 meta = { 32 - description = " CLI utility to support you with your time logs in GitLab"; 32 + description = "CLI utility to support you with your time logs in GitLab"; 33 33 mainProgram = "gitlab-timelogs"; 34 34 longDescription = '' 35 35 CLI utility to support you with your time logs in GitLab.
+39
pkgs/by-name/go/go-i18n/package.nix
··· 1 + { 2 + lib, 3 + buildGoModule, 4 + fetchFromGitHub, 5 + }: 6 + buildGoModule (finalAttrs: { 7 + pname = "go-i18n"; 8 + version = "2.6.0"; 9 + 10 + src = fetchFromGitHub { 11 + owner = "nicksnyder"; 12 + repo = "go-i18n"; 13 + tag = "v${finalAttrs.version}"; 14 + hash = "sha256-UrSECFbpCIg5avJ+f3LkJy/ncZFHa4q8sDqDIQ3YZJM="; 15 + }; 16 + 17 + vendorHash = "sha256-4Kbdj2D6eJTjZtdsFMNES3AEZ0PEi01HS73uFNZsFMA="; 18 + 19 + subPackages = [ 20 + "goi18n" 21 + ]; 22 + 23 + env.CGO_ENABLED = 0; 24 + 25 + doCheck = true; 26 + 27 + meta = { 28 + changelog = "https://github.com/nicksnyder/go-i18n/releases/tag/${finalAttrs.src.tag}"; 29 + description = "Translate your Go program into multiple languages"; 30 + longDescription = '' 31 + goi18n is a tool that lets you extract messages from all your Go source files, 32 + generates new language files. 33 + ''; 34 + homepage = "https://github.com/nicksnyder/go-i18n"; 35 + license = lib.licenses.mit; 36 + maintainers = with lib.maintainers; [ videl ]; 37 + mainProgram = "goi18n"; 38 + }; 39 + })
+1 -1
pkgs/by-name/go/go-protobuf/package.nix
··· 19 19 20 20 meta = with lib; { 21 21 homepage = "https://github.com/golang/protobuf"; 22 - description = " Go bindings for protocol buffer"; 22 + description = "Go bindings for protocol buffer"; 23 23 maintainers = with maintainers; [ lewo ]; 24 24 license = licenses.bsd3; 25 25 };
+5 -5
pkgs/by-name/go/google-chrome/package.nix
··· 171 171 172 172 linux = stdenvNoCC.mkDerivation (finalAttrs: { 173 173 inherit pname meta passthru; 174 - version = "138.0.7204.157"; 174 + version = "138.0.7204.168"; 175 175 176 176 src = fetchurl { 177 177 url = "https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${finalAttrs.version}-1_amd64.deb"; 178 - hash = "sha256-QmWevU4cYmUc6lUbFG4bQ1aKFuUyIUorJjMMF14bzZ4="; 178 + hash = "sha256-vfMEQOh9VZsLElld8qfeLY9B53z1AqyRTQ/7p2cxHYg="; 179 179 }; 180 180 181 181 # With strictDeps on, some shebangs were not being patched correctly ··· 276 276 277 277 darwin = stdenvNoCC.mkDerivation (finalAttrs: { 278 278 inherit pname meta passthru; 279 - version = "138.0.7204.158"; 279 + version = "138.0.7204.169"; 280 280 281 281 src = fetchurl { 282 - url = "http://dl.google.com/release2/chrome/adskeulizkrq3h2yvus65pybna6a_138.0.7204.158/GoogleChrome-138.0.7204.158.dmg"; 283 - hash = "sha256-D7Iik+R9PIfvL1QEASfip5M2pE+nco90dKet4Fehq/8="; 282 + url = "http://dl.google.com/release2/chrome/acwjggvog6ot2icovazewas35mgq_138.0.7204.169/GoogleChrome-138.0.7204.169.dmg"; 283 + hash = "sha256-58/hSldBZ3gtzjY0GCt6GkxUX97GORwTh5uEfEjxM3A="; 284 284 }; 285 285 286 286 dontPatch = true;
+1 -1
pkgs/by-name/gt/gtg/package.nix
··· 79 79 checkPhase = "xvfb-run pytest ../tests/"; 80 80 81 81 meta = with lib; { 82 - description = " A personal tasks and TODO-list items organizer"; 82 + description = "Personal tasks and TODO-list items organizer"; 83 83 mainProgram = "gtg"; 84 84 longDescription = '' 85 85 "Getting Things GNOME" (GTG) is a personal tasks and ToDo list organizer inspired by the "Getting Things Done" (GTD) methodology.
+1 -1
pkgs/by-name/jw/jwx/package.nix
··· 20 20 sourceRoot = "${finalAttrs.src.name}/cmd/jwx"; 21 21 22 22 meta = { 23 - description = " Implementation of various JWx (Javascript Object Signing and Encryption/JOSE) technologies"; 23 + description = "Implementation of various JWx (Javascript Object Signing and Encryption/JOSE) technologies"; 24 24 mainProgram = "jwx"; 25 25 homepage = "https://github.com/lestrrat-go/jwx"; 26 26 changelog = "https://github.com/lestrrat-go/jwx/blob/v${finalAttrs.version}/Changes";
+1 -1
pkgs/by-name/kn/knewave/package.nix
··· 25 25 ''; 26 26 27 27 meta = { 28 - description = " A bold, painted face for the rocker within"; 28 + description = "Bold, painted face for the rocker within"; 29 29 longDescription = '' 30 30 Knewave is bold, painted face. Get it? Git it. 31 31 '';
+1 -1
pkgs/by-name/le/lessc/plugins/clean-css/default.nix
··· 54 54 55 55 meta = { 56 56 homepage = "https://github.com/less/less-plugin-clean-css"; 57 - description = " Post-process and compress CSS using clean-css"; 57 + description = "Post-process and compress CSS using clean-css"; 58 58 license = lib.licenses.asl20; 59 59 maintainers = with lib.maintainers; [ lelgenio ]; 60 60 };
+1 -1
pkgs/by-name/li/libmsym/package.nix
··· 19 19 nativeBuildInputs = [ cmake ]; 20 20 21 21 meta = with lib; { 22 - description = " molecular point group symmetry lib"; 22 + description = "Molecular point group symmetry lib"; 23 23 homepage = "https://github.com/mcodev31/libmsym"; 24 24 license = licenses.mit; 25 25 platforms = platforms.linux;
+1 -1
pkgs/by-name/lv/lv_font_conv/package.nix
··· 27 27 meta = { 28 28 description = "Converts TTF/WOFF fonts to compact bitmap format"; 29 29 mainProgram = "lv_font_conv"; 30 - homepage = " https://lvgl.io/tools/fontconverter"; 30 + homepage = "https://lvgl.io/tools/fontconverter"; 31 31 license = lib.licenses.mit; 32 32 maintainers = with lib.maintainers; [ pyrox0 ]; 33 33 };
+13 -3
pkgs/by-name/mb/mbake/package.nix
··· 1 1 { 2 + stdenv, 2 3 lib, 3 4 fetchFromGitHub, 5 + installShellFiles, 4 6 python3Packages, 5 7 versionCheckHook, 6 8 }: 7 9 8 10 python3Packages.buildPythonApplication rec { 9 11 pname = "mbake"; 10 - version = "1.2.4"; 12 + version = "1.3.1"; 11 13 pyproject = true; 12 14 13 15 src = fetchFromGitHub { 14 16 owner = "EbodShojaei"; 15 17 repo = "bake"; 16 18 tag = "v${version}"; 17 - hash = "sha256-RzM3HC3lYq93mngpqNCohcPMISWQ4+Lwa1V88S0O0To="; 19 + hash = "sha256-gQsie4/iUIe4g6ZH8bL33xW6CNxSg/sh429P4Xv0GjQ="; 18 20 }; 19 21 20 22 build-system = [ 23 + installShellFiles 21 24 python3Packages.hatchling 22 25 ]; 23 26 ··· 26 29 typer 27 30 ]; 28 31 32 + postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' 33 + installShellCompletion --cmd mbake \ 34 + --bash <($out/bin/mbake completions bash) \ 35 + --fish <($out/bin/mbake completions fish) \ 36 + --zsh <($out/bin/mbake completions zsh) 37 + ''; 38 + 29 39 nativeCheckInputs = [ 30 40 python3Packages.pytestCheckHook 31 41 versionCheckHook 32 42 ]; 33 43 versionCheckProgramArg = "--version"; 34 44 35 - pythonImportsCheck = [ "bake" ]; 45 + pythonImportsCheck = [ "mbake" ]; 36 46 37 47 meta = { 38 48 description = "Makefile formatter and linter";
+1
pkgs/by-name/op/openswitcher/package.nix
··· 79 79 homepage = "https://openswitcher.org/"; 80 80 license = licenses.gpl3Only; 81 81 maintainers = with maintainers; [ hexa ]; 82 + mainProgram = "switcher-control"; 82 83 }; 83 84 }
+62
pkgs/by-name/os/oss-rebuild/package.nix
··· 1 + { 2 + lib, 3 + buildGoModule, 4 + fetchFromGitHub, 5 + }: 6 + 7 + buildGoModule (finalAttrs: { 8 + pname = "oss-rebuild"; 9 + version = "0-unstable-2025-07-22"; 10 + 11 + src = fetchFromGitHub { 12 + owner = "google"; 13 + repo = "oss-rebuild"; 14 + rev = "6f57c474a8faf3012204792af8ef5d8b6fae2fd1"; 15 + hash = "sha256-H8HkhQcRt6C+lxoMVLzRfhv60Mq8TAf83ctOBRbx4p0="; 16 + }; 17 + 18 + proxyVendor = true; 19 + vendorHash = "sha256-H6ZMop3tXwpzvjoLWAaovP8UHSYLLFxvSz2jhz8tj/g="; 20 + 21 + subPackages = [ 22 + "cmd/oss-rebuild" 23 + "cmd/proxy" 24 + "cmd/stabilize" 25 + "cmd/timewarp" 26 + # There are other tools in available, but without documentation. 27 + ]; 28 + 29 + ldflags = [ "-s" ]; 30 + 31 + env.CGO_ENABLED = 0; 32 + 33 + meta = { 34 + description = "Securing open-source package ecosystems by originating, validating, and augmenting build attestations"; 35 + longDescription = '' 36 + OSS Rebuild aims to apply reproducible build concepts at low-cost and high-scale for open-source package ecosystems. 37 + 38 + Rebuilds are derived by analyzing the published metadata and artifacts and are evaluated against the upstream package 39 + versions. When successful, build attestations are published for the upstream artifacts, verifying the integrity of 40 + the upstream artifact and eliminating many possible sources of compromise. 41 + 42 + [`oss-rebuild`](https://github.com/google/oss-rebuild?tab=readme-ov-file#usage) CLI tool provides access to OSS Rebuild 43 + data. 44 + 45 + [`proxy`](https://github.com/google/oss-rebuild/blob/main/cmd/proxy/README.md) is a transparent HTTP(S) proxy that 46 + intercepts and records network activity. It's primarily used within OSS Rebuild to monitor network interactions during 47 + the build process, helping to passively enumerate remote dependencies and to identify suspect build behavior. 48 + 49 + [`stabilize`](https://github.com/google/oss-rebuild/blob/main/cmd/stabilize/README.md) is a command-line tool that 50 + removes non-deterministic metadata from software packages to facilitate functional comparison of artifacts. 51 + 52 + [`timewarp`](https://github.com/google/oss-rebuild/blob/main/cmd/timewarp/README.md) is a registry-fronting HTTP 53 + service that filters returned content by time. This tool allows you to transparently adjust the data returned to 54 + package manager clients to reflect the state of a registry at a given point in time (especially useful for reproducing 55 + prior builds). 56 + ''; 57 + homepage = "https://github.com/google/oss-rebuild"; 58 + license = lib.licenses.asl20; 59 + maintainers = with lib.maintainers; [ katexochen ]; 60 + mainProgram = "oss-rebuild"; 61 + }; 62 + })
+2 -2
pkgs/by-name/pl/plutovg/package.nix
··· 6 6 }: 7 7 stdenv.mkDerivation (finalAttrs: { 8 8 pname = "plutovg"; 9 - version = "1.2.0"; 9 + version = "1.3.0"; 10 10 11 11 src = fetchFromGitHub { 12 12 owner = "sammycage"; 13 13 repo = "plutovg"; 14 14 tag = "v${finalAttrs.version}"; 15 - hash = "sha256-+LJhQb8uZ7iPNcdhL40LLk/6mR97VCgDtYgnj2R8vno="; 15 + hash = "sha256-9h7UvUSJLBRs4jD0/qTs3nzMBZKyyZg2T9eVEIpSYMg="; 16 16 }; 17 17 18 18 cmakeFlags = [
-2
pkgs/by-name/pm/pmix/package.nix
··· 15 15 hwloc, 16 16 munge, 17 17 zlib, 18 - pandoc, 19 18 gitMinimal, 20 19 }: 21 20 ··· 39 38 ''; 40 39 41 40 nativeBuildInputs = [ 42 - pandoc 43 41 perl 44 42 autoconf 45 43 automake
+1 -1
pkgs/by-name/pr/prometheus-klipper-exporter/package.nix
··· 29 29 }; 30 30 31 31 meta = with lib; { 32 - description = " Prometheus Exporter for Klipper "; 32 + description = "Prometheus Exporter for Klipper"; 33 33 homepage = "https://github.com/scross01/prometheus-klipper-exporter"; 34 34 license = licenses.mit; 35 35 maintainers = with maintainers; [ wulfsta ];
+1 -1
pkgs/by-name/pu/pulsarctl/package.nix
··· 67 67 }; 68 68 69 69 meta = with lib; { 70 - description = " a CLI for Apache Pulsar written in Go"; 70 + description = "CLI for Apache Pulsar written in Go"; 71 71 homepage = "https://github.com/streamnative/pulsarctl"; 72 72 license = with licenses; [ asl20 ]; 73 73 platforms = platforms.unix;
+2 -2
pkgs/by-name/ri/rime-wanxiang/package.nix
··· 9 9 10 10 stdenvNoCC.mkDerivation (finalAttrs: { 11 11 pname = "rime-wanxiang"; 12 - version = "8.7.7"; 12 + version = "9.1.3"; 13 13 14 14 src = fetchFromGitHub { 15 15 owner = "amzxyz"; 16 16 repo = "rime_wanxiang"; 17 17 tag = "v" + finalAttrs.version; 18 - hash = "sha256-X64kxr93V0ilAefmQcJgMCegdzpoNoI0TuMdkYRG66I="; 18 + hash = "sha256-jcYvDktk1zj32i92LQKYu35Br2uPRcoNtoyPKo3hP/Y="; 19 19 }; 20 20 21 21 nativeBuildInputs = [
+1 -1
pkgs/by-name/ro/roxterm/package.nix
··· 74 74 75 75 meta = { 76 76 homepage = "https://github.com/realh/roxterm"; 77 - description = " A highly configurable terminal emulator"; 77 + description = "Highly configurable terminal emulator"; 78 78 longDescription = '' 79 79 ROXTerm is a terminal emulator intended to provide similar features to 80 80 gnome-terminal, based on the same VTE library. It was originally designed
+9 -3
pkgs/by-name/sn/snphost/package.nix
··· 10 10 nix-update-script, 11 11 findutils, 12 12 installShellFiles, 13 + versionCheckHook, 13 14 }: 14 15 15 16 rustPlatform.buildRustPackage rec { 16 17 pname = "snphost"; 17 - version = "0.6.0"; 18 + version = "0.6.1"; 18 19 19 20 src = fetchFromGitHub { 20 21 owner = "virtee"; 21 22 repo = "snphost"; 22 23 tag = "v${version}"; 23 - hash = "sha256-sBEIQQ0vfwQh5eqsC6x37VDlbXuBUybRh4LNUjfEJ5A="; 24 + hash = "sha256-FvHawwoIqCiZ+Jm1itDWspaI+vDN6xDfeI11KoiO/DU="; 24 25 }; 25 26 26 27 useFetchCargoVendor = true; 27 - cargoHash = "sha256-aNXv6Av3JvnTqTbxX70FmwEF4jJaQmD6FHjvh7om9iE="; 28 + cargoHash = "sha256-ZOXOfFYingTBq5LfJqHRf6ZdvrdY1Zve/ZMnAE25kPM="; 28 29 29 30 nativeBuildInputs = [ 30 31 asciidoctor ··· 39 40 zlib 40 41 ]; 41 42 43 + env.OPENSSL_NO_VENDOR = true; 44 + 42 45 # man page is placed in cargo's $OUT_DIR, which is randomized. 43 46 # Contacted upstream about it, for now use find to locate it. 44 47 postInstall = '' 45 48 installManPage $(find target/x86_64-unknown-linux-gnu/release/build -name "snphost.1") 46 49 ''; 50 + 51 + nativeInstallCheckInputs = [ versionCheckHook ]; 52 + doInstallCheck = true; 47 53 48 54 passthru.updateScript = nix-update-script { }; 49 55
+1 -1
pkgs/by-name/to/tomato-c/package.nix
··· 67 67 68 68 meta = { 69 69 homepage = "https://github.com/gabrielzschmitz/Tomato.C"; 70 - description = " A pomodoro timer written in pure C"; 70 + description = "Pomodoro timer written in pure C"; 71 71 license = with lib.licenses; [ gpl3Plus ]; 72 72 maintainers = with lib.maintainers; [ ]; 73 73 mainProgram = "tomato";
+1 -1
pkgs/by-name/tr/treedome/package.nix
··· 74 74 75 75 meta = { 76 76 description = "Local-first, encrypted, note taking application organized in tree-like structures"; 77 - homepage = " https://codeberg.org/solver-orgz/treedome"; 77 + homepage = "https://codeberg.org/solver-orgz/treedome"; 78 78 license = lib.licenses.agpl3Plus; 79 79 platforms = [ "x86_64-linux" ]; 80 80 mainProgram = "treedome";
+55
pkgs/by-name/va/valeronoi/package.nix
··· 1 + { 2 + lib, 3 + stdenv, 4 + fetchFromGitHub, 5 + boost, 6 + cgal, 7 + cmake, 8 + gpp, 9 + mpfr, 10 + qt6Packages, 11 + }: 12 + 13 + stdenv.mkDerivation (finalAttrs: { 14 + pname = "valeronoi"; 15 + version = "0.2.2"; 16 + 17 + src = fetchFromGitHub { 18 + owner = "ccoors"; 19 + repo = "valeronoi"; 20 + tag = "v${finalAttrs.version}"; 21 + hash = "sha256-5KXVSIqWDkXnpO+qgBzFtbJb444RW8dIVXp8Y/aAOrk="; 22 + }; 23 + 24 + buildInputs = 25 + [ 26 + boost 27 + cgal 28 + gpp 29 + mpfr 30 + ] 31 + ++ (with qt6Packages; [ 32 + qtbase 33 + qtimageformats 34 + qtsvg 35 + ]); 36 + 37 + nativeBuildInputs = [ 38 + cmake 39 + qt6Packages.wrapQtAppsHook 40 + ]; 41 + 42 + doCheck = true; 43 + 44 + meta = { 45 + homepage = "https://github.com/ccoors/Valeronoi/"; 46 + description = "WiFi mapping companion app for Valetudo"; 47 + license = lib.licenses.gpl3Only; 48 + platforms = [ "x86_64-linux" ]; 49 + maintainers = with lib.maintainers; [ 50 + nova-madeline 51 + maeve 52 + ]; 53 + mainProgram = "valeronoi"; 54 + }; 55 + })
+1 -1
pkgs/by-name/vu/vulkan-volk/package.nix
··· 23 23 cmakeFlags = [ "-DVOLK_INSTALL=1" ]; 24 24 25 25 meta = with lib; { 26 - description = " Meta loader for Vulkan API"; 26 + description = "Meta loader for Vulkan API"; 27 27 homepage = "https://github.com/zeux/volk"; 28 28 platforms = platforms.all; 29 29 license = licenses.mit;
+28
pkgs/by-name/xb/xbyak/package.nix
··· 1 + { 2 + lib, 3 + stdenv, 4 + fetchFromGitHub, 5 + cmake, 6 + }: 7 + stdenv.mkDerivation (finalAttrs: { 8 + pname = "xbyak"; 9 + version = "7.28"; 10 + 11 + src = fetchFromGitHub { 12 + owner = "herumi"; 13 + repo = "xbyak"; 14 + tag = "v${finalAttrs.version}"; 15 + hash = "sha256-jBxpNeA2Ed13zpJ++ODsjKgSC14z/RTFX3px4SapeS0="; 16 + }; 17 + 18 + nativeBuildInputs = [ cmake ]; 19 + 20 + meta = { 21 + description = "JIT assembler for x86/x64 architectures supporting advanced instruction sets up to AVX10.2"; 22 + homepage = "https://github.com/herumi/xbyak"; 23 + changelog = "https://github.com/herumi/xbyak/blob/v${finalAttrs.version}/doc/changelog.md"; 24 + license = lib.licenses.bsd3; 25 + platforms = lib.platforms.all; 26 + maintainers = [ lib.maintainers.ryand56 ]; 27 + }; 28 + })
+1 -1
pkgs/development/compilers/elm/packages/node/default.nix
··· 53 53 with lib; 54 54 nodePkgs."@dillonkearns/elm-graphql".meta 55 55 // { 56 - description = " Autogenerate type-safe GraphQL queries in Elm"; 56 + description = "Autogenerate type-safe GraphQL queries in Elm"; 57 57 license = licenses.bsd3; 58 58 maintainers = [ maintainers.pedrohlc ]; 59 59 };
+226 -158
pkgs/development/compilers/flutter/update/update.py
··· 1 1 #! /usr/bin/env nix-shell 2 2 #! nix-shell -i python3 -p python3Packages.pyyaml 3 3 4 - import shutil 4 + import argparse 5 5 import json 6 - import urllib.request 7 - import tempfile 8 - from sys import exit 9 6 import os 10 - import subprocess 11 7 import re 12 - import json 13 - import argparse 8 + import subprocess 9 + import sys 10 + import tempfile 11 + import urllib.request 12 + from pathlib import Path 13 + 14 14 import yaml 15 - import json 16 15 17 - FAKE_HASH = 'sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=' 16 + FAKE_HASH = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" 18 17 19 - NIXPKGS_ROOT = subprocess.Popen(['git', 20 - 'rev-parse', 21 - '--show-toplevel'], 22 - stdout=subprocess.PIPE, 23 - text=True).communicate()[0].strip() 18 + NIXPKGS_ROOT = ( 19 + subprocess.Popen( 20 + ["git", "rev-parse", "--show-toplevel"], stdout=subprocess.PIPE, text=True 21 + ) 22 + .communicate()[0] 23 + .strip() 24 + ) 24 25 25 26 26 27 def load_code(name, **kwargs): 27 - with open(f"{NIXPKGS_ROOT}/pkgs/development/compilers/flutter/update/{name}.in", 'r') as f: 28 + with Path( 29 + f"{NIXPKGS_ROOT}/pkgs/development/compilers/flutter/update/{name}.in" 30 + ).open("r", encoding="utf-8") as f: 28 31 code = f.read() 29 32 30 - for (key, value) in kwargs.items(): 33 + for key, value in kwargs.items(): 31 34 code = code.replace(f"@{key}@", value) 32 35 33 36 return code ··· 35 38 36 39 # Return out paths 37 40 def nix_build(code): 38 - temp = tempfile.NamedTemporaryFile(mode='w') 39 - temp.write(code) 40 - temp.flush() 41 - os.fsync(temp.fileno()) 41 + with tempfile.NamedTemporaryFile(mode="w", encoding="utf-8", delete=False) as temp: 42 + temp.write(code) 43 + temp.flush() 44 + os.fsync(temp.fileno()) 45 + temp_name = temp.name 42 46 43 47 process = subprocess.Popen( 44 48 [ ··· 46 50 "--impure", 47 51 "--no-out-link", 48 52 "--expr", 49 - f"with import {NIXPKGS_ROOT} {{}}; callPackage {temp.name} {{}}"], 53 + f"with import {NIXPKGS_ROOT} {{}}; callPackage {temp_name} {{}}", 54 + ], 50 55 stdout=subprocess.PIPE, 51 - text=True) 56 + text=True, 57 + ) 52 58 53 59 process.wait() 54 - temp.close() 60 + Path(temp_name).unlink() # Clean up the temporary file 55 61 return process.stdout.read().strip().splitlines()[0] 56 62 57 63 58 64 # Return errors 59 65 def nix_build_to_fail(code): 60 - temp = tempfile.NamedTemporaryFile(mode='w') 61 - temp.write(code) 62 - temp.flush() 63 - os.fsync(temp.fileno()) 66 + with tempfile.NamedTemporaryFile(mode="w", encoding="utf-8", delete=False) as temp: 67 + temp.write(code) 68 + temp.flush() 69 + os.fsync(temp.fileno()) 70 + temp_name = temp.name 64 71 65 72 process = subprocess.Popen( 66 73 [ ··· 69 76 "--keep-going", 70 77 "--no-link", 71 78 "--expr", 72 - f"with import {NIXPKGS_ROOT} {{}}; callPackage {temp.name} {{}}"], 79 + f"with import {NIXPKGS_ROOT} {{}}; callPackage {temp_name} {{}}", 80 + ], 73 81 stderr=subprocess.PIPE, 74 - text=True) 82 + text=True, 83 + ) 75 84 76 85 stderr = "" 77 86 while True: ··· 82 91 print(line.strip()) 83 92 84 93 process.wait() 85 - temp.close() 94 + Path(temp_name).unlink() # Clean up the temporary file 86 95 return stderr 87 96 88 97 89 98 def get_engine_hashes(engine_version, flutter_version): 90 - code = load_code("get-engine-hashes.nix", 91 - nixpkgs_root=NIXPKGS_ROOT, 92 - flutter_version=flutter_version, 93 - engine_version=engine_version) 99 + code = load_code( 100 + "get-engine-hashes.nix", 101 + nixpkgs_root=NIXPKGS_ROOT, 102 + flutter_version=flutter_version, 103 + engine_version=engine_version, 104 + ) 94 105 95 106 stderr = nix_build_to_fail(code) 96 107 97 108 pattern = re.compile( 98 - rf"/nix/store/.*-flutter-engine-source-{engine_version}-(.+?-.+?)-(.+?-.+?).drv':\n\s+specified: .*\n\s+got:\s+(.+?)\n") 109 + rf"/nix/store/.*-flutter-engine-source-{engine_version}-(.+?-.+?)-(.+?-.+?).drv':\n\s+specified: .*\n\s+got:\s+(.+?)\n" 110 + ) 99 111 matches = pattern.findall(stderr) 100 112 result_dict = {} 101 113 ··· 105 117 106 118 def sort_dict_recursive(d): 107 119 return { 108 - k: sort_dict_recursive(v) if isinstance( 109 - v, dict) else v for k, v in sorted( 110 - d.items())} 111 - result_dict = sort_dict_recursive(result_dict) 120 + k: sort_dict_recursive(v) if isinstance(v, dict) else v 121 + for k, v in sorted(d.items()) 122 + } 112 123 113 - return result_dict 124 + return sort_dict_recursive(result_dict) 114 125 115 126 116 127 def get_artifact_hashes(flutter_compact_version): 117 - code = load_code("get-artifact-hashes.nix", 118 - nixpkgs_root=NIXPKGS_ROOT, 119 - flutter_compact_version=flutter_compact_version) 128 + code = load_code( 129 + "get-artifact-hashes.nix", 130 + nixpkgs_root=NIXPKGS_ROOT, 131 + flutter_compact_version=flutter_compact_version, 132 + ) 120 133 121 134 stderr = nix_build_to_fail(code) 122 135 123 136 pattern = re.compile( 124 - r"/nix/store/.*-flutter-artifacts-(.+?)-(.+?).drv':\n\s+specified: .*\n\s+got:\s+(.+?)\n") 137 + r"/nix/store/.*-flutter-artifacts-(.+?)-(.+?).drv':\n\s+specified: .*\n\s+got:\s+(.+?)\n" 138 + ) 125 139 matches = pattern.findall(stderr) 126 140 result_dict = {} 127 141 ··· 131 145 132 146 def sort_dict_recursive(d): 133 147 return { 134 - k: sort_dict_recursive(v) if isinstance( 135 - v, dict) else v for k, v in sorted( 136 - d.items())} 137 - result_dict = sort_dict_recursive(result_dict) 148 + k: sort_dict_recursive(v) if isinstance(v, dict) else v 149 + for k, v in sorted(d.items()) 150 + } 138 151 139 - return result_dict 152 + return sort_dict_recursive(result_dict) 140 153 141 154 142 155 def get_dart_hashes(dart_version, channel): 143 - platforms = [ 144 - "x86_64-linux", 145 - "aarch64-linux", 146 - "x86_64-darwin", 147 - "aarch64-darwin"] 156 + platforms = ["x86_64-linux", "aarch64-linux", "x86_64-darwin", "aarch64-darwin"] 148 157 result_dict = {} 149 158 for platform in platforms: 150 159 code = load_code( 151 160 "get-dart-hashes.nix", 152 161 dart_version=dart_version, 153 162 channel=channel, 154 - platform=platform) 163 + platform=platform, 164 + ) 155 165 stderr = nix_build_to_fail(code) 156 166 157 167 pattern = re.compile(r"got:\s+(.+?)\n") ··· 161 171 162 172 163 173 def get_flutter_hash_and_src(flutter_version): 164 - code = load_code( 165 - "get-flutter.nix", 166 - flutter_version=flutter_version, 167 - hash="") 174 + code = load_code("get-flutter.nix", flutter_version=flutter_version, hash="") 168 175 169 176 stderr = nix_build_to_fail(code) 170 177 pattern = re.compile(r"got:\s+(.+?)\n") 171 - hash = pattern.findall(stderr)[0] 178 + flutter_hash_value = pattern.findall(stderr)[0] 172 179 173 180 code = load_code( 174 - "get-flutter.nix", 175 - flutter_version=flutter_version, 176 - hash=hash) 181 + "get-flutter.nix", flutter_version=flutter_version, hash=flutter_hash_value 182 + ) 177 183 178 - return (hash, nix_build(code)) 184 + return (flutter_hash_value, nix_build(code)) 179 185 180 186 181 187 def get_pubspec_lock(flutter_compact_version, flutter_src): ··· 183 189 "get-pubspec-lock.nix", 184 190 flutter_compact_version=flutter_compact_version, 185 191 flutter_src=flutter_src, 186 - hash="") 192 + hash="", 193 + ) 187 194 188 195 stderr = nix_build_to_fail(code) 189 196 pattern = re.compile(r"got:\s+(.+?)\n") 190 - hash = pattern.findall(stderr)[0] 197 + pubspec_lock_hash = pattern.findall(stderr)[0] 191 198 192 199 code = load_code( 193 200 "get-pubspec-lock.nix", 194 201 flutter_compact_version=flutter_compact_version, 195 202 flutter_src=flutter_src, 196 - hash=hash) 203 + hash=pubspec_lock_hash, 204 + ) 197 205 198 206 pubspec_lock_file = nix_build(code) 199 207 200 - with open(pubspec_lock_file, 'r') as f: 208 + with Path(pubspec_lock_file).open("r", encoding="utf-8") as f: 201 209 pubspec_lock_yaml = f.read() 202 210 203 211 return yaml.safe_load(pubspec_lock_yaml) 204 212 213 + 205 214 def get_engine_swiftshader_rev(engine_version): 206 - with urllib.request.urlopen(f"https://github.com/flutter/flutter/raw/{engine_version}/DEPS") as f: 207 - deps = f.read().decode('utf-8') 208 - pattern = re.compile(r"Var\('swiftshader_git'\) \+ '\/SwiftShader\.git' \+ '@' \+ \'([0-9a-fA-F]{40})\'\,") 209 - rev = pattern.findall(deps)[0] 210 - return rev 215 + with urllib.request.urlopen( 216 + f"https://github.com/flutter/flutter/raw/{engine_version}/DEPS" 217 + ) as f: 218 + deps = f.read().decode("utf-8") 219 + pattern = re.compile( 220 + r"Var\('swiftshader_git'\) \+ '\/SwiftShader\.git' \+ '@' \+ \'([0-9a-fA-F]{40})\'\," 221 + ) 222 + return pattern.findall(deps)[0] 223 + 211 224 212 225 def get_engine_swiftshader_hash(engine_swiftshader_rev): 213 226 code = load_code( 214 227 "get-engine-swiftshader.nix", 215 228 engine_swiftshader_rev=engine_swiftshader_rev, 216 - hash="") 229 + hash="", 230 + ) 217 231 218 232 stderr = nix_build_to_fail(code) 219 233 pattern = re.compile(r"got:\s+(.+?)\n") 220 234 return pattern.findall(stderr)[0] 221 235 236 + 222 237 def write_data( 223 - nixpkgs_flutter_version_directory, 224 - flutter_version, 225 - channel, 226 - engine_hash, 227 - engine_hashes, 228 - engine_swiftshader_hash, 229 - engine_swiftshader_rev, 230 - dart_version, 231 - dart_hash, 232 - flutter_hash, 233 - artifact_hashes, 234 - pubspec_lock): 235 - with open(f"{nixpkgs_flutter_version_directory}/data.json", "w") as f: 236 - f.write(json.dumps({ 237 - "version": flutter_version, 238 - "engineVersion": engine_hash, 239 - "engineSwiftShaderHash": engine_swiftshader_hash, 240 - "engineSwiftShaderRev": engine_swiftshader_rev, 241 - "channel": channel, 242 - "engineHashes": engine_hashes, 243 - "dartVersion": dart_version, 244 - "dartHash": dart_hash, 245 - "flutterHash": flutter_hash, 246 - "artifactHashes": artifact_hashes, 247 - "pubspecLock": pubspec_lock, 248 - }, indent=2).strip() + "\n") 238 + nixpkgs_flutter_version_directory, 239 + flutter_version, 240 + channel, 241 + engine_hash, 242 + engine_hashes, 243 + engine_swiftshader_hash, 244 + engine_swiftshader_rev, 245 + dart_version, 246 + dart_hash, 247 + flutter_hash, 248 + artifact_hashes, 249 + pubspec_lock, 250 + ): 251 + with Path(f"{nixpkgs_flutter_version_directory}/data.json").open( 252 + "w", encoding="utf-8" 253 + ) as f: 254 + f.write( 255 + json.dumps( 256 + { 257 + "version": flutter_version, 258 + "engineVersion": engine_hash, 259 + "engineSwiftShaderHash": engine_swiftshader_hash, 260 + "engineSwiftShaderRev": engine_swiftshader_rev, 261 + "channel": channel, 262 + "engineHashes": engine_hashes, 263 + "dartVersion": dart_version, 264 + "dartHash": dart_hash, 265 + "flutterHash": flutter_hash, 266 + "artifactHashes": artifact_hashes, 267 + "pubspecLock": pubspec_lock, 268 + }, 269 + indent=2, 270 + ).strip() 271 + + "\n" 272 + ) 249 273 250 274 251 275 def update_all_packages(): 252 276 versions_directory = f"{NIXPKGS_ROOT}/pkgs/development/compilers/flutter/versions" 253 - versions = [directory for directory in os.listdir(versions_directory)] 254 - versions = sorted(versions, key=lambda x: ( 255 - int(x.split('_')[0]), int(x.split('_')[1])), reverse=True) 277 + versions = [d.name for d in Path(versions_directory).iterdir()] 278 + versions = sorted( 279 + versions, 280 + key=lambda x: (int(x.split("_")[0]), int(x.split("_")[1])), 281 + reverse=True, 282 + ) 256 283 257 284 new_content = [ 258 285 "flutterPackages-bin = recurseIntoAttrs (callPackage ../development/compilers/flutter { });", 259 - "flutterPackages-source = recurseIntoAttrs (callPackage ../development/compilers/flutter { useNixpkgsEngine = true; });", 286 + "flutterPackages-source = recurseIntoAttrs (", 287 + " callPackage ../development/compilers/flutter { useNixpkgsEngine = true; }", 288 + ");", 260 289 "flutterPackages = flutterPackages-bin;", 261 290 "flutter = flutterPackages.stable;", 262 - ] + [f"flutter{version.replace('_', '')} = flutterPackages.v{version};" for version in versions] 291 + ] + [ 292 + f"flutter{version.replace('_', '')} = flutterPackages.v{version};" 293 + for version in versions 294 + ] 263 295 264 - with open(f"{NIXPKGS_ROOT}/pkgs/top-level/all-packages.nix", 'r') as file: 296 + with Path(f"{NIXPKGS_ROOT}/pkgs/top-level/all-packages.nix").open( 297 + "r", encoding="utf-8" 298 + ) as file: 265 299 lines = file.read().splitlines(keepends=True) 266 300 267 301 start = -1 268 302 end = -1 269 303 for i, line in enumerate(lines): 270 - if "flutterPackages-bin = recurseIntoAttrs (callPackage ../development/compilers/flutter { });" in line: 304 + if ( 305 + "flutterPackages-bin = recurseIntoAttrs (callPackage ../development/compilers/flutter { });" 306 + in line 307 + ): 271 308 start = i 272 309 if start != -1 and len(line.strip()) == 0: 273 310 end = i ··· 275 312 276 313 if start != -1 and end != -1: 277 314 del lines[start:end] 278 - lines[start:start] = [f" {l}\n" for l in new_content] 315 + lines[start:start] = [f" {line}\n" for line in new_content] 279 316 280 - with open(f"{NIXPKGS_ROOT}/pkgs/top-level/all-packages.nix", 'w') as file: 317 + with Path(f"{NIXPKGS_ROOT}/pkgs/top-level/all-packages.nix").open( 318 + "w", encoding="utf-8" 319 + ) as file: 281 320 file.write("".join(lines)) 282 321 283 322 ··· 288 327 engine_hash = None 289 328 dart_version = None 290 329 291 - releases = json.load(urllib.request.urlopen( 292 - "https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json")) 330 + releases = json.load( 331 + urllib.request.urlopen( 332 + "https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json" 333 + ) 334 + ) 293 335 294 336 if not channel: 295 - channel = 'stable' 337 + channel = "stable" 296 338 297 339 if not flutter_version: 298 - hash = releases['current_release'][channel] 340 + release_hash = releases["current_release"][channel] 299 341 release = next( 300 342 filter( 301 - lambda release: release['hash'] == hash, 302 - releases['releases'])) 303 - flutter_version = release['version'] 343 + lambda release: release["hash"] == release_hash, releases["releases"] 344 + ) 345 + ) 346 + flutter_version = release["version"] 304 347 305 - tags = subprocess.Popen(['git', 306 - 'ls-remote', 307 - '--tags', 308 - 'https://github.com/flutter/flutter.git'], 309 - stdout=subprocess.PIPE, 310 - text=True).communicate()[0].strip() 348 + tags = ( 349 + subprocess.Popen( 350 + ["git", "ls-remote", "--tags", "https://github.com/flutter/flutter.git"], 351 + stdout=subprocess.PIPE, 352 + text=True, 353 + ) 354 + .communicate()[0] 355 + .strip() 356 + ) 311 357 312 358 try: 313 - flutter_hash = next( 314 - filter( 315 - lambda line: line.endswith(f'refs/tags/{flutter_version}'), 316 - tags.splitlines())).split('refs')[0].strip() 359 + flutter_hash = ( 360 + next( 361 + filter( 362 + lambda line: line.endswith(f"refs/tags/{flutter_version}"), 363 + tags.splitlines(), 364 + ) 365 + ) 366 + .split("refs")[0] 367 + .strip() 368 + ) 317 369 318 - engine_hash = urllib.request.urlopen(f'https://github.com/flutter/flutter/raw/{flutter_hash}/bin/internal/engine.version').read().decode('utf-8').strip() 370 + engine_hash = ( 371 + urllib.request.urlopen( 372 + f"https://github.com/flutter/flutter/raw/{flutter_hash}/bin/internal/engine.version" 373 + ) 374 + .read() 375 + .decode("utf-8") 376 + .strip() 377 + ) 319 378 except StopIteration: 320 - exit( 321 - f"Couldn't find Engine hash for Flutter version: {flutter_version}") 379 + sys.exit(f"Couldn't find Engine hash for Flutter version: {flutter_version}") 322 380 323 381 try: 324 382 dart_version = next( 325 383 filter( 326 - lambda release: release['version'] == flutter_version, 327 - releases['releases']))['dart_sdk_version'] 384 + lambda release: release["version"] == flutter_version, 385 + releases["releases"], 386 + ) 387 + )["dart_sdk_version"] 328 388 329 389 if " " in dart_version: 330 - dart_version = dart_version.split(' ')[2][:-1] 390 + dart_version = dart_version.split(" ")[2][:-1] 331 391 except StopIteration: 332 - exit( 333 - f"Couldn't find Dart version for Flutter version: {flutter_version}") 392 + sys.exit(f"Couldn't find Dart version for Flutter version: {flutter_version}") 334 393 335 394 return (flutter_version, engine_hash, dart_version, channel) 336 395 337 396 338 397 def main(): 339 - parser = argparse.ArgumentParser(description='Update Flutter in Nixpkgs') 340 - parser.add_argument('--version', type=str, help='Specify Flutter version') 341 - parser.add_argument('--channel', type=str, help='Specify Flutter release channel') 342 - parser.add_argument('--artifact-hashes', action='store_true', 343 - help='Whether to get artifact hashes') 398 + parser = argparse.ArgumentParser(description="Update Flutter in Nixpkgs") 399 + parser.add_argument("--version", type=str, help="Specify Flutter version") 400 + parser.add_argument("--channel", type=str, help="Specify Flutter release channel") 401 + parser.add_argument( 402 + "--artifact-hashes", action="store_true", help="Whether to get artifact hashes" 403 + ) 344 404 args = parser.parse_args() 345 405 346 - (flutter_version, engine_hash, dart_version, channel) = find_versions(args.version, args.channel) 406 + (flutter_version, engine_hash, dart_version, channel) = find_versions( 407 + args.version, args.channel 408 + ) 347 409 348 - flutter_compact_version = '_'.join(flutter_version.split('.')[:2]) 410 + flutter_compact_version = "_".join(flutter_version.split(".")[:2]) 349 411 350 412 if args.artifact_hashes: 351 413 print( 352 - json.dumps( 353 - get_artifact_hashes(flutter_compact_version), 354 - indent=2).strip() + 355 - "\n") 414 + json.dumps(get_artifact_hashes(flutter_compact_version), indent=2).strip() 415 + + "\n" 416 + ) 356 417 return 357 418 358 - print(f"Flutter version: {flutter_version} ({flutter_compact_version}) on ({channel})") 419 + print( 420 + f"Flutter version: {flutter_version} ({flutter_compact_version}) on ({channel})" 421 + ) 359 422 print(f"Engine hash: {engine_hash}") 360 423 print(f"Dart version: {dart_version}") 361 424 ··· 364 427 365 428 nixpkgs_flutter_version_directory = f"{NIXPKGS_ROOT}/pkgs/development/compilers/flutter/versions/{flutter_compact_version}" 366 429 367 - if os.path.exists(f"{nixpkgs_flutter_version_directory}/data.json"): 368 - os.remove(f"{nixpkgs_flutter_version_directory}/data.json") 369 - os.makedirs(nixpkgs_flutter_version_directory, exist_ok=True) 430 + if Path(f"{nixpkgs_flutter_version_directory}/data.json").exists(): 431 + Path(f"{nixpkgs_flutter_version_directory}/data.json").unlink() 432 + Path(nixpkgs_flutter_version_directory).mkdir(parents=True, exist_ok=True) 370 433 371 434 update_all_packages() 372 435 ··· 385 448 artifact_hashes={}, 386 449 engine_hashes={}, 387 450 engine_swiftshader_hash=FAKE_HASH, 388 - engine_swiftshader_rev='0', 389 - **common_data_args) 451 + engine_swiftshader_rev="0", 452 + **common_data_args, 453 + ) 390 454 391 455 pubspec_lock = get_pubspec_lock(flutter_compact_version, flutter_src) 392 456 ··· 395 459 artifact_hashes={}, 396 460 engine_hashes={}, 397 461 engine_swiftshader_hash=FAKE_HASH, 398 - engine_swiftshader_rev='0', 399 - **common_data_args) 462 + engine_swiftshader_rev="0", 463 + **common_data_args, 464 + ) 400 465 401 466 artifact_hashes = get_artifact_hashes(flutter_compact_version) 402 467 ··· 405 470 artifact_hashes=artifact_hashes, 406 471 engine_hashes={}, 407 472 engine_swiftshader_hash=FAKE_HASH, 408 - engine_swiftshader_rev='0', 409 - **common_data_args) 473 + engine_swiftshader_rev="0", 474 + **common_data_args, 475 + ) 410 476 411 477 engine_hashes = get_engine_hashes(engine_hash, flutter_version) 412 478 ··· 415 481 artifact_hashes=artifact_hashes, 416 482 engine_hashes=engine_hashes, 417 483 engine_swiftshader_hash=FAKE_HASH, 418 - engine_swiftshader_rev='0', 419 - **common_data_args) 484 + engine_swiftshader_rev="0", 485 + **common_data_args, 486 + ) 420 487 421 488 engine_swiftshader_rev = get_engine_swiftshader_rev(engine_hash) 422 489 engine_swiftshader_hash = get_engine_swiftshader_hash(engine_swiftshader_rev) ··· 427 494 engine_hashes=engine_hashes, 428 495 engine_swiftshader_hash=engine_swiftshader_hash, 429 496 engine_swiftshader_rev=engine_swiftshader_rev, 430 - **common_data_args) 497 + **common_data_args, 498 + ) 431 499 432 500 433 501 if __name__ == "__main__":
+37 -37
pkgs/development/compilers/flutter/versions/3_32/data.json
··· 1 1 { 2 - "version": "3.32.6", 3 - "engineVersion": "72f2b18bb094f92f62a3113a8075240ebb59affa", 2 + "version": "3.32.7", 3 + "engineVersion": "39d6d6e699e51b2874210e14cddf1a22fb9524b2", 4 4 "engineSwiftShaderHash": "sha256-ATVcuxqPHqHOWYyO7DoX9LdgUiO3INUi7m9Mc6ccc1M=", 5 5 "engineSwiftShaderRev": "d040a5bab638bf7c226235c95787ba6288bb6416", 6 6 "channel": "stable", 7 7 "engineHashes": { 8 8 "aarch64-linux": { 9 - "aarch64-linux": "sha256-MjWz+aveIDXygAejZiNGFZluR0gjpS62h16UcFGz7FA=", 10 - "x86_64-linux": "sha256-MjWz+aveIDXygAejZiNGFZluR0gjpS62h16UcFGz7FA=" 9 + "aarch64-linux": "sha256-3cqYwwQlnHPMRoeRLsru+Xk9rMiAaLZ6rBxdJttJSW0=", 10 + "x86_64-linux": "sha256-3cqYwwQlnHPMRoeRLsru+Xk9rMiAaLZ6rBxdJttJSW0=" 11 11 }, 12 12 "x86_64-linux": { 13 - "aarch64-linux": "sha256-jWM+egf2tZVR8bnBXSHiXOG0CbkEjxEqxwPnaR7tJKk=", 14 - "x86_64-linux": "sha256-jWM+egf2tZVR8bnBXSHiXOG0CbkEjxEqxwPnaR7tJKk=" 13 + "aarch64-linux": "sha256-8jXbz7gQZhaoU2Cs6uAbR5xF22HzBxMghA4edm/7oa4=", 14 + "x86_64-linux": "sha256-8jXbz7gQZhaoU2Cs6uAbR5xF22HzBxMghA4edm/7oa4=" 15 15 } 16 16 }, 17 17 "dartVersion": "3.8.1", ··· 21 21 "x86_64-darwin": "sha256-S3iGDVLollApke2SnXAcV919qsDTVmz5Gf9fTletr00=", 22 22 "aarch64-darwin": "sha256-haHQks9N1mBIqRsYg9sOLw7ra7gC708gsTWfKxvIK1c=" 23 23 }, 24 - "flutterHash": "sha256-YxApWMp6Ax1ZNOH/7kgeXgiaBcXN7Ves4TFUImFtd3s=", 24 + "flutterHash": "sha256-fPCa9JHvQGP47uo6LHbGC2aMMwdX+AOEZfvIyZ3M2/U=", 25 25 "artifactHashes": { 26 26 "android": { 27 - "aarch64-darwin": "sha256-thfXrVn6nWlQg23yDHiNAx6XebQkV80tkckONwmfjaU=", 28 - "aarch64-linux": "sha256-fM90NqMpD4SkrjZfDXvHjMNdGiaDqX2T+A4cNNZkplk=", 29 - "x86_64-darwin": "sha256-thfXrVn6nWlQg23yDHiNAx6XebQkV80tkckONwmfjaU=", 30 - "x86_64-linux": "sha256-fM90NqMpD4SkrjZfDXvHjMNdGiaDqX2T+A4cNNZkplk=" 27 + "aarch64-darwin": "sha256-Gs4SLCLh/6e/n8lu6pTujksW/MqIieWymF151N5dDnw=", 28 + "aarch64-linux": "sha256-aTVHfbG6V4T2/SDbxdCEYo3+7EryjK6sAUL4FF4AmUM=", 29 + "x86_64-darwin": "sha256-Gs4SLCLh/6e/n8lu6pTujksW/MqIieWymF151N5dDnw=", 30 + "x86_64-linux": "sha256-aTVHfbG6V4T2/SDbxdCEYo3+7EryjK6sAUL4FF4AmUM=" 31 31 }, 32 32 "fuchsia": { 33 - "aarch64-darwin": "sha256-Lh6z51v14kZIGxriaKDdOn5fAKyANm8FAzIozoOiAZg=", 34 - "aarch64-linux": "sha256-Lh6z51v14kZIGxriaKDdOn5fAKyANm8FAzIozoOiAZg=", 35 - "x86_64-darwin": "sha256-Lh6z51v14kZIGxriaKDdOn5fAKyANm8FAzIozoOiAZg=", 36 - "x86_64-linux": "sha256-Lh6z51v14kZIGxriaKDdOn5fAKyANm8FAzIozoOiAZg=" 33 + "aarch64-darwin": "sha256-cKUp9CQq10Ls3dOcB3wPdnnwVK26RG0JWn0n4TsWigc=", 34 + "aarch64-linux": "sha256-cKUp9CQq10Ls3dOcB3wPdnnwVK26RG0JWn0n4TsWigc=", 35 + "x86_64-darwin": "sha256-cKUp9CQq10Ls3dOcB3wPdnnwVK26RG0JWn0n4TsWigc=", 36 + "x86_64-linux": "sha256-cKUp9CQq10Ls3dOcB3wPdnnwVK26RG0JWn0n4TsWigc=" 37 37 }, 38 38 "ios": { 39 - "aarch64-darwin": "sha256-zCR8wt7QZHl9UFOhkU8KFkyRbaUitXJHTiMLOe+M5/g=", 40 - "aarch64-linux": "sha256-zCR8wt7QZHl9UFOhkU8KFkyRbaUitXJHTiMLOe+M5/g=", 41 - "x86_64-darwin": "sha256-zCR8wt7QZHl9UFOhkU8KFkyRbaUitXJHTiMLOe+M5/g=", 42 - "x86_64-linux": "sha256-zCR8wt7QZHl9UFOhkU8KFkyRbaUitXJHTiMLOe+M5/g=" 39 + "aarch64-darwin": "sha256-EvzvRyR2aRomFPiz7WfGyhg0JiOHzCIi6xEDbLeIGAQ=", 40 + "aarch64-linux": "sha256-EvzvRyR2aRomFPiz7WfGyhg0JiOHzCIi6xEDbLeIGAQ=", 41 + "x86_64-darwin": "sha256-EvzvRyR2aRomFPiz7WfGyhg0JiOHzCIi6xEDbLeIGAQ=", 42 + "x86_64-linux": "sha256-EvzvRyR2aRomFPiz7WfGyhg0JiOHzCIi6xEDbLeIGAQ=" 43 43 }, 44 44 "linux": { 45 - "aarch64-darwin": "sha256-dSXB6GFQZjHoyiDStAnohYtzFIrVWmD3DfQ0b+cGwcU=", 46 - "aarch64-linux": "sha256-dSXB6GFQZjHoyiDStAnohYtzFIrVWmD3DfQ0b+cGwcU=", 47 - "x86_64-darwin": "sha256-9ds2C7XBIvnzbgwcBPwJhaF/l/t+uZQEiuwQg2WIVkE=", 48 - "x86_64-linux": "sha256-9ds2C7XBIvnzbgwcBPwJhaF/l/t+uZQEiuwQg2WIVkE=" 45 + "aarch64-darwin": "sha256-eLGFwZxd4P9NSnHhOssAvjWea+ahuPUtIi4BrsOxZDE=", 46 + "aarch64-linux": "sha256-eLGFwZxd4P9NSnHhOssAvjWea+ahuPUtIi4BrsOxZDE=", 47 + "x86_64-darwin": "sha256-WhDM+gxvSWsQ0RyaInKH3obabboMfBtfBPZPx6379kc=", 48 + "x86_64-linux": "sha256-WhDM+gxvSWsQ0RyaInKH3obabboMfBtfBPZPx6379kc=" 49 49 }, 50 50 "macos": { 51 - "aarch64-darwin": "sha256-Qybdtwy8MfPEsCJUHxlV62fZyEAClOHM4thsEw4nmvg=", 52 - "aarch64-linux": "sha256-Qybdtwy8MfPEsCJUHxlV62fZyEAClOHM4thsEw4nmvg=", 53 - "x86_64-darwin": "sha256-Qybdtwy8MfPEsCJUHxlV62fZyEAClOHM4thsEw4nmvg=", 54 - "x86_64-linux": "sha256-Qybdtwy8MfPEsCJUHxlV62fZyEAClOHM4thsEw4nmvg=" 51 + "aarch64-darwin": "sha256-3QXe7KTjh9noCdZnCRbo6bXuif7dhQ75mk6/lyydSck=", 52 + "aarch64-linux": "sha256-3QXe7KTjh9noCdZnCRbo6bXuif7dhQ75mk6/lyydSck=", 53 + "x86_64-darwin": "sha256-3QXe7KTjh9noCdZnCRbo6bXuif7dhQ75mk6/lyydSck=", 54 + "x86_64-linux": "sha256-3QXe7KTjh9noCdZnCRbo6bXuif7dhQ75mk6/lyydSck=" 55 55 }, 56 56 "universal": { 57 - "aarch64-darwin": "sha256-37CxKej4SB4Qm3aJVkf3SK0uiimLYSGJBAOwqWStmEY=", 58 - "aarch64-linux": "sha256-7p4CTx///0ND5xUpb9uGbBgaLeClt/aGoSm6mE56ySk=", 59 - "x86_64-darwin": "sha256-sjrzv4jJ28RViNaC7jG4utnerBj3521kXfT8CAgGOLI=", 60 - "x86_64-linux": "sha256-B9gqS5lfLy8pYjP7N52jLqZmroukuAS/ed0xP5xspeg=" 57 + "aarch64-darwin": "sha256-Z7UTqCTESwcpv0yxzTEMThkQMNfisOCnhC7sltY0dUA=", 58 + "aarch64-linux": "sha256-VIMu52o7BIEkxt4h0u4sILcrgKg85TY+3ieQl290icM=", 59 + "x86_64-darwin": "sha256-/jOrwEy6EWCx8cS9MyIEI4NqO2H8Rs/VV7N6RmCyPWM=", 60 + "x86_64-linux": "sha256-mcQYpXo8E/j4j4OYIwlcx6xpiyYbnKXrwfT+rl6W4Zw=" 61 61 }, 62 62 "web": { 63 - "aarch64-darwin": "sha256-iLAX0UCh+ZTsSggKj29cUm+8CIEJfXj+iWiTV1ndfrU=", 64 - "aarch64-linux": "sha256-iLAX0UCh+ZTsSggKj29cUm+8CIEJfXj+iWiTV1ndfrU=", 65 - "x86_64-darwin": "sha256-iLAX0UCh+ZTsSggKj29cUm+8CIEJfXj+iWiTV1ndfrU=", 66 - "x86_64-linux": "sha256-iLAX0UCh+ZTsSggKj29cUm+8CIEJfXj+iWiTV1ndfrU=" 63 + "aarch64-darwin": "sha256-2nnM91LPjdxuU2uWCdE2tFoZ75N0L5DWlJa75KCulY8=", 64 + "aarch64-linux": "sha256-2nnM91LPjdxuU2uWCdE2tFoZ75N0L5DWlJa75KCulY8=", 65 + "x86_64-darwin": "sha256-2nnM91LPjdxuU2uWCdE2tFoZ75N0L5DWlJa75KCulY8=", 66 + "x86_64-linux": "sha256-2nnM91LPjdxuU2uWCdE2tFoZ75N0L5DWlJa75KCulY8=" 67 67 }, 68 68 "windows": { 69 - "x86_64-darwin": "sha256-7M6lLznB1FwQi4e4O6r5IWRxYFaXhfdkSx3rN2GZr5c=", 70 - "x86_64-linux": "sha256-7M6lLznB1FwQi4e4O6r5IWRxYFaXhfdkSx3rN2GZr5c=" 69 + "x86_64-darwin": "sha256-boajU3GH29bhgDT+emE3gIQjAtuon1OUi1gGBH6iq/4=", 70 + "x86_64-linux": "sha256-boajU3GH29bhgDT+emE3gIQjAtuon1OUi1gGBH6iq/4=" 71 71 } 72 72 }, 73 73 "pubspecLock": {
+1 -1
pkgs/development/lua-modules/generated-packages.nix
··· 949 949 950 950 meta = { 951 951 homepage = "https://github.com/mrcjkb/haskell-tools.nvim"; 952 - description = " 🦥 Supercharge your Haskell experience in neovim!"; 952 + description = "🦥 Supercharge your Haskell experience in neovim!"; 953 953 maintainers = with lib.maintainers; [ mrcjkb ]; 954 954 license.fullName = "GPL-2.0"; 955 955 };
+1 -1
pkgs/development/ocaml-modules/bls12-381/default.nix
··· 41 41 doCheck = true; 42 42 43 43 meta = { 44 - homepage = " https://nomadic-labs.gitlab.io/cryptography/ocaml-bls12-381/bls12-381/"; 44 + homepage = "https://nomadic-labs.gitlab.io/cryptography/ocaml-bls12-381/bls12-381/"; 45 45 description = "Implementation of BLS12-381 and some cryptographic primitives built on top of it"; 46 46 license = lib.licenses.mit; 47 47 maintainers = [ lib.maintainers.ulrikstrid ];
+1 -1
pkgs/development/ocaml-modules/janestreet/0.17.nix
··· 951 951 ocaml_openapi_generator = janePackage { 952 952 pname = "ocaml_openapi_generator"; 953 953 hash = "sha256-HCq9fylcVjBMs8L6E860nw+EonWEQadlyEKpQI6mynU="; 954 - meta.description = " An OpenAPI 3 to OCaml client generator"; 954 + meta.description = "OpenAPI 3 to OCaml client generator"; 955 955 buildInputs = [ 956 956 async 957 957 core
+1 -1
pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix
··· 47 47 48 48 meta = { 49 49 homepage = "http://ocsigen.org/ocsigen-toolkit/"; 50 - description = " User interface widgets for Ocsigen applications"; 50 + description = "User interface widgets for Ocsigen applications"; 51 51 license = lib.licenses.lgpl21; 52 52 maintainers = [ lib.maintainers.gal_bolle ]; 53 53 inherit (ocaml.meta) platforms;
+1 -1
pkgs/development/octave-modules/communications/default.nix
··· 27 27 homepage = "https://gnu-octave.github.io/packages/communications/"; 28 28 license = lib.licenses.gpl3Plus; 29 29 maintainers = with lib.maintainers; [ KarlJoad ]; 30 - description = " Digital Communications, Error Correcting Codes (Channel Code), Source Code functions, Modulation and Galois Fields"; 30 + description = "Digital Communications, Error Correcting Codes (Channel Code), Source Code functions, Modulation and Galois Fields"; 31 31 }; 32 32 }
+1 -4
pkgs/development/python-modules/ahocorapy/default.nix
··· 1 1 { 2 2 buildPythonPackage, 3 3 fetchFromGitHub, 4 - future, 5 4 lib, 6 5 pytestCheckHook, 7 6 setuptools, ··· 21 20 22 21 build-system = [ setuptools ]; 23 22 24 - dependencies = [ 25 - future 26 - ]; 23 + pythonRemoveDeps = [ "future" ]; 27 24 28 25 pythonImportsCheck = [ "ahocorapy" ]; 29 26
+2 -2
pkgs/development/python-modules/aioamazondevices/default.nix
··· 15 15 16 16 buildPythonPackage rec { 17 17 pname = "aioamazondevices"; 18 - version = "3.3.0"; 18 + version = "3.5.0"; 19 19 pyproject = true; 20 20 21 21 src = fetchFromGitHub { 22 22 owner = "chemelli74"; 23 23 repo = "aioamazondevices"; 24 24 tag = "v${version}"; 25 - hash = "sha256-MXVQ/VtsT/ppeQsSnf+LiddlZFKylQxL48vPRKj932w="; 25 + hash = "sha256-gFO0E5tphInHOTAgaifp+jNQQvs+HfLDhvErmLwwrPU="; 26 26 }; 27 27 28 28 build-system = [ poetry-core ];
+1 -1
pkgs/development/python-modules/aioguardian/default.nix
··· 65 65 pythonImportsCheck = [ "aioguardian" ]; 66 66 67 67 meta = with lib; { 68 - description = " Python library to interact with Elexa Guardian devices"; 68 + description = "Python library to interact with Elexa Guardian devices"; 69 69 longDescription = '' 70 70 aioguardian is an asyncio-focused library for interacting with the 71 71 Guardian line of water valves and sensors from Elexa.
+9 -10
pkgs/development/python-modules/aurorapy/default.nix
··· 2 2 lib, 3 3 buildPythonPackage, 4 4 fetchFromGitLab, 5 - future, 6 5 pyserial, 7 6 pytestCheckHook, 8 - pythonOlder, 9 7 setuptools, 10 8 six, 11 9 }: ··· 13 11 buildPythonPackage rec { 14 12 pname = "aurorapy"; 15 13 version = "0.2.7"; 16 - format = "pyproject"; 17 - 18 - disabled = pythonOlder "3.7"; 14 + pyproject = true; 19 15 20 16 src = fetchFromGitLab { 21 17 owner = "energievalsabbia"; ··· 24 20 hash = "sha256-rGwfGq3zdoG9NCGqVN29Q4bWApk5B6CRdsW9ctWgOec="; 25 21 }; 26 22 27 - nativeBuildInputs = [ setuptools ]; 23 + postPatch = '' 24 + sed -i "/from past.builtins import map/d" aurorapy/client.py 25 + ''; 26 + 27 + build-system = [ setuptools ]; 28 + 29 + pythonRemoveDeps = [ "future" ]; 28 30 29 - propagatedBuildInputs = [ 30 - future 31 - pyserial 32 - ]; 31 + dependencies = [ pyserial ]; 33 32 34 33 nativeCheckInputs = [ 35 34 pytestCheckHook
+1 -1
pkgs/development/python-modules/djangorestframework-recursive/default.nix
··· 29 29 pythonImportsCheck = [ "rest_framework_recursive" ]; 30 30 31 31 meta = with lib; { 32 - description = " Recursive Serialization for Django REST framework"; 32 + description = "Recursive Serialization for Django REST framework"; 33 33 homepage = "https://github.com/heywbj/django-rest-framework-recursive"; 34 34 license = licenses.isc; 35 35 maintainers = [ ];
+2 -2
pkgs/development/python-modules/gios/default.nix
··· 15 15 16 16 buildPythonPackage rec { 17 17 pname = "gios"; 18 - version = "6.1.1"; 18 + version = "6.1.2"; 19 19 pyproject = true; 20 20 21 21 disabled = pythonOlder "3.12"; ··· 24 24 owner = "bieniu"; 25 25 repo = "gios"; 26 26 tag = version; 27 - hash = "sha256-BjyeWg75JQd+VAIQmtFIwEdByMPdGG+nIOgKCavjF0c="; 27 + hash = "sha256-z0MFXlim0YJ2ifAU94IjDOsIgaRzQk6YRqy64+LNehQ="; 28 28 }; 29 29 30 30 build-system = [ setuptools ];
+1 -1
pkgs/development/python-modules/manuf/default.nix
··· 49 49 50 50 meta = with lib; { 51 51 homepage = "https://github.com/coolbho3k/manuf"; 52 - description = " Parser library for Wireshark's OUI database"; 52 + description = "Parser library for Wireshark's OUI database"; 53 53 mainProgram = "manuf"; 54 54 platforms = platforms.linux; 55 55 license = with licenses; [
+1 -1
pkgs/development/python-modules/midea-local/default.nix
··· 41 41 ]; 42 42 43 43 meta = with lib; { 44 - description = " Control your Midea M-Smart appliances via local area network"; 44 + description = "Control your Midea M-Smart appliances via local area network"; 45 45 homepage = "https://github.com/midea-lan/midea-local"; 46 46 changelog = "https://github.com/midea-lan/midea-local/releases/tag/${src.tag}"; 47 47 maintainers = with maintainers; [ k900 ];
+1 -1
pkgs/development/python-modules/migen/default.nix
··· 31 31 passthru.updateScript = unstableGitUpdater { }; 32 32 33 33 meta = { 34 - description = " A Python toolbox for building complex digital hardware"; 34 + description = "Python toolbox for building complex digital hardware"; 35 35 homepage = "https://m-labs.hk/migen"; 36 36 license = lib.licenses.bsd2; 37 37 maintainers = with lib.maintainers; [ l-as ];
+1 -1
pkgs/development/python-modules/plumbum/default.nix
··· 66 66 meta = with lib; { 67 67 description = "Module Shell Combinators"; 68 68 changelog = "https://github.com/tomerfiliba/plumbum/releases/tag/v${version}"; 69 - homepage = " https://github.com/tomerfiliba/plumbum"; 69 + homepage = "https://github.com/tomerfiliba/plumbum"; 70 70 license = licenses.mit; 71 71 maintainers = [ ]; 72 72 };
+2 -2
pkgs/development/python-modules/pyenphase/default.nix
··· 22 22 23 23 buildPythonPackage rec { 24 24 pname = "pyenphase"; 25 - version = "2.2.1"; 25 + version = "2.2.2"; 26 26 pyproject = true; 27 27 28 28 disabled = pythonOlder "3.11"; ··· 31 31 owner = "pyenphase"; 32 32 repo = "pyenphase"; 33 33 tag = "v${version}"; 34 - hash = "sha256-rIGPkeEh36Au2F+zx/4vR79212BWMdnG5yz+vJ2sxfU="; 34 + hash = "sha256-1RF1U4hMsGRa2OJJY2Plvuow3P+R7wbwd4ouo7QQ4n0="; 35 35 }; 36 36 37 37 pythonRelaxDeps = [ "tenacity" ];
+1 -1
pkgs/development/python-modules/pytile/default.nix
··· 52 52 __darwinAllowLocalNetworking = true; 53 53 54 54 meta = with lib; { 55 - description = " Python API for Tile Bluetooth trackers"; 55 + description = "Python API for Tile Bluetooth trackers"; 56 56 longDescription = '' 57 57 pytile is a simple Python library for retrieving information on Tile 58 58 Bluetooth trackers (including last location and more).
+2 -2
pkgs/development/python-modules/tesla-fleet-api/default.nix
··· 15 15 16 16 buildPythonPackage rec { 17 17 pname = "tesla-fleet-api"; 18 - version = "1.2.0"; 18 + version = "1.2.2"; 19 19 pyproject = true; 20 20 21 21 disabled = pythonOlder "3.10"; ··· 24 24 owner = "Teslemetry"; 25 25 repo = "python-tesla-fleet-api"; 26 26 tag = "v${version}"; 27 - hash = "sha256-z7oniC58MpWlz/IGd2oRWgoj5yAL/gaDHGotLKK2CVc="; 27 + hash = "sha256-FWOAjNjzpImDWSFxbVVdBFuM1gUJUYyLN694B24kD9U="; 28 28 }; 29 29 30 30 build-system = [ setuptools ];
+1 -1
pkgs/os-specific/linux/rtw89/default.nix
··· 38 38 ''; 39 39 40 40 meta = with lib; { 41 - description = " Driver for Realtek 8852AE, 8852BE, and 8853CE, 802.11ax devices"; 41 + description = "Driver for Realtek 8852AE, 8852BE, and 8853CE, 802.11ax devices"; 42 42 homepage = "https://github.com/lwfinger/rtw89"; 43 43 license = with licenses; [ gpl2Only ]; 44 44 maintainers = with maintainers; [ tvorog ];
+1 -1
pkgs/servers/home-assistant/component-packages.nix
··· 2 2 # Do not edit! 3 3 4 4 { 5 - version = "2025.7.2"; 5 + version = "2025.7.3"; 6 6 components = { 7 7 "3_day_blinds" = 8 8 ps: with ps; [
+3 -3
pkgs/servers/home-assistant/default.nix
··· 354 354 extraBuildInputs = extraPackages python.pkgs; 355 355 356 356 # Don't forget to run update-component-packages.py after updating 357 - hassVersion = "2025.7.2"; 357 + hassVersion = "2025.7.3"; 358 358 359 359 in 360 360 python.pkgs.buildPythonApplication rec { ··· 375 375 owner = "home-assistant"; 376 376 repo = "core"; 377 377 tag = version; 378 - hash = "sha256-aBIG4dxCdj1dQP5wMd5ySXggUvspGlnh7btxmMr/51Y="; 378 + hash = "sha256-FT77obtb081QOgw+nqbQvvW+3x/L2WUr3DLT8X1Wpwg="; 379 379 }; 380 380 381 381 # Secondary source is pypi sdist for translations 382 382 sdist = fetchPypi { 383 383 inherit pname version; 384 - hash = "sha256-J8KH9y8dNsKW+jc5Wkqnw9VreKoUQH0dEBbne/6xiMw="; 384 + hash = "sha256-jO+rNIzEvtQ1vhSD1Xbq/SKV5XvBOb4MmkkczoeD1Kc="; 385 385 }; 386 386 387 387 build-system = with python.pkgs; [
+2 -2
pkgs/servers/home-assistant/frontend.nix
··· 8 8 # the frontend version corresponding to a specific home-assistant version can be found here 9 9 # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json 10 10 pname = "home-assistant-frontend"; 11 - version = "20250702.2"; 11 + version = "20250702.3"; 12 12 format = "wheel"; 13 13 14 14 src = fetchPypi { ··· 16 16 pname = "home_assistant_frontend"; 17 17 dist = "py3"; 18 18 python = "py3"; 19 - hash = "sha256-3/m2T2yUpjczHEIywdwL+fqr9juiN2Mtd1iT+X+lTxo="; 19 + hash = "sha256-Uj7auy5emdP8l9vUxLbAL28UNoAi1OQ/8qIhmJMmA8Q="; 20 20 }; 21 21 22 22 # there is nothing to strip in this package
+2 -2
pkgs/servers/home-assistant/pytest-homeassistant-custom-component.nix
··· 18 18 19 19 buildPythonPackage rec { 20 20 pname = "pytest-homeassistant-custom-component"; 21 - version = "0.13.261"; 21 + version = "0.13.262"; 22 22 pyproject = true; 23 23 24 24 disabled = pythonOlder "3.13"; ··· 27 27 owner = "MatthewFlamm"; 28 28 repo = "pytest-homeassistant-custom-component"; 29 29 rev = "refs/tags/${version}"; 30 - hash = "sha256-23qNOWz04uEPg2SHsdERVcFuYoVK16lznWYm8R1fJXc="; 30 + hash = "sha256-dlGZD9JNEMGaDpH4RiX1LJtx2owdRJvJX+V2b5QzD7U="; 31 31 }; 32 32 33 33 build-system = [ setuptools ];
+2 -2
pkgs/servers/home-assistant/stubs.nix
··· 10 10 11 11 buildPythonPackage rec { 12 12 pname = "homeassistant-stubs"; 13 - version = "2025.7.2"; 13 + version = "2025.7.3"; 14 14 pyproject = true; 15 15 16 16 disabled = python.version != home-assistant.python.version; ··· 19 19 owner = "KapJI"; 20 20 repo = "homeassistant-stubs"; 21 21 tag = version; 22 - hash = "sha256-qpNDeJHnGmjxgFOfNDl1jyK+t/BFzC+VtkTu+zL8NaQ="; 22 + hash = "sha256-iHNBFtdIQMAKiQGJ35xCBqDbYYphoAJPXjhmgIEEE5E="; 23 23 }; 24 24 25 25 build-system = [
+1 -1
pkgs/servers/home-assistant/update-component-packages.py
··· 97 97 with urlopen( 98 98 f"https://github.com/home-assistant/home-assistant/archive/{version}.tar.gz" 99 99 ) as response: 100 - tarfile.open(fileobj=BytesIO(response.read())).extractall(tmp) 100 + tarfile.open(fileobj=BytesIO(response.read())).extractall(tmp, filter="data") 101 101 # Use part of a script from the Home Assistant codebase 102 102 core_path = os.path.join(tmp, f"core-{version}") 103 103
+2 -2
pkgs/servers/http/nginx/modules.nix
··· 268 268 }; 269 269 270 270 meta = with lib; { 271 - description = " Fancy indexes module"; 271 + description = "Fancy indexes module"; 272 272 homepage = "https://github.com/aperezdc/ngx-fancyindex"; 273 273 license = with licenses; [ bsd2 ]; 274 274 maintainers = with maintainers; [ aneeshusa ]; ··· 340 340 inputs = [ libbsd ]; 341 341 342 342 meta = with lib; { 343 - description = " IP address anonymizer"; 343 + description = "IP address anonymizer"; 344 344 homepage = "https://github.com/masonicboom/ipscrub"; 345 345 license = with licenses; [ bsd3 ]; 346 346 maintainers = [ ];
+1 -1
pkgs/servers/nextcloud/packages/apps/hmr_enabler.nix
··· 28 28 ''; 29 29 30 30 meta = { 31 - description = " Development Nextcloud app to enable apps to use hot module reloading"; 31 + description = "Development Nextcloud app to enable apps to use hot module reloading"; 32 32 homepage = "https://github.com/nextcloud/hmr_enabler"; 33 33 changelog = "https://github.com/nextcloud/hmr_enabler/blob/master/CHANGELOG.md"; 34 34 license = lib.licenses.agpl3Only;
+1 -1
pkgs/servers/web-apps/plausible/default.nix
··· 178 178 license = licenses.agpl3Plus; 179 179 homepage = "https://plausible.io/"; 180 180 changelog = "https://github.com/plausible/analytics/blob/${src.rev}/CHANGELOG.md"; 181 - description = " Simple, open-source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics"; 181 + description = "Simple, open-source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics"; 182 182 mainProgram = "plausible"; 183 183 teams = [ teams.cyberus ]; 184 184 platforms = platforms.unix;
-55
pkgs/tools/misc/valeronoi/default.nix
··· 1 - { 2 - lib, 3 - stdenv, 4 - fetchFromGitHub, 5 - boost, 6 - cgal, 7 - cmake, 8 - gpp, 9 - mpfr, 10 - qtbase, 11 - qtimageformats, 12 - qtsvg, 13 - wrapQtAppsHook, 14 - }: 15 - 16 - stdenv.mkDerivation rec { 17 - pname = "valeronoi"; 18 - version = "0.2.2"; 19 - 20 - src = fetchFromGitHub { 21 - owner = "ccoors"; 22 - repo = pname; 23 - tag = "v${version}"; 24 - sha256 = "sha256-5KXVSIqWDkXnpO+qgBzFtbJb444RW8dIVXp8Y/aAOrk="; 25 - }; 26 - 27 - buildInputs = [ 28 - boost 29 - cgal 30 - gpp 31 - mpfr 32 - qtbase 33 - qtimageformats 34 - qtsvg 35 - ]; 36 - 37 - nativeBuildInputs = [ 38 - cmake 39 - wrapQtAppsHook 40 - ]; 41 - 42 - doCheck = true; 43 - 44 - meta = with lib; { 45 - homepage = "https://github.com/ccoors/Valeronoi/"; 46 - description = "WiFi mapping companion app for Valetudo"; 47 - license = licenses.gpl3Only; 48 - platforms = [ "x86_64-linux" ]; 49 - maintainers = with maintainers; [ 50 - nova-madeline 51 - maeve 52 - ]; 53 - mainProgram = "valeronoi"; 54 - }; 55 - }
+10 -11
pkgs/tools/security/fwbuilder/default.nix pkgs/by-name/fw/fwbuilder/package.nix
··· 4 4 fetchFromGitHub, 5 5 cmake, 6 6 ninja, 7 - wrapQtAppsHook, 8 7 wayland, 9 8 wayland-protocols, 10 - qtwayland, 9 + libsForQt5, 11 10 }: 12 11 13 - stdenv.mkDerivation rec { 12 + stdenv.mkDerivation (finalAttrs: { 14 13 pname = "fwbuilder"; 15 14 version = "6.0.0-rc1"; 16 15 17 16 src = fetchFromGitHub { 18 17 owner = "fwbuilder"; 19 18 repo = "fwbuilder"; 20 - rev = "v${version}"; 19 + tag = "v${finalAttrs.version}"; 21 20 hash = "sha256-j5HjGcIqq93Ca9OBqEgSotoSXyw+q6Fqxa3hKk1ctwQ="; 22 21 }; 23 22 ··· 31 30 nativeBuildInputs = [ 32 31 cmake 33 32 ninja 34 - wrapQtAppsHook 33 + libsForQt5.wrapQtAppsHook 35 34 ]; 36 35 37 36 buildInputs = [ 38 37 wayland 39 38 wayland-protocols 40 - qtwayland 39 + libsForQt5.qtwayland 41 40 ]; 42 41 43 - meta = with lib; { 42 + meta = { 44 43 description = "GUI Firewall Management Application"; 45 44 longDescription = '' 46 45 Firewall Builder is a GUI firewall management application for iptables, ··· 49 48 managed from a single UI. 50 49 ''; 51 50 homepage = "https://github.com/fwbuilder/fwbuilder"; 52 - license = licenses.gpl2Only; 53 - platforms = platforms.linux; 54 - maintainers = [ maintainers.elatov ]; 51 + license = lib.licenses.gpl2Only; 52 + platforms = lib.platforms.linux; 53 + maintainers = with lib.maintainers; [ elatov ]; 55 54 }; 56 - } 55 + })
+1
pkgs/top-level/aliases.nix
··· 408 408 cargo-information = throw "'cargo-information' has been removed due to being merged upstream into 'cargo'"; # Added 2025-03-09 409 409 cargo-inspect = throw "'cargo-inspect' has been removed due to lack of upstream maintenance. Upstream recommends cargo-expand."; # Added 2025-01-26 410 410 cargo-web = throw "'cargo-web' has been removed due to lack of upstream maintenance"; # Added 2025-01-26 411 + cargonode = throw "'cargonode' has been removed due to lack of upstream maintenance"; # Added 2025-06-18 411 412 cassandra_3_0 = throw "'cassandra_3_0' has been removed has it reached end-of-life"; # Added 2025-03-23 412 413 cassandra_3_11 = throw "'cassandra_3_11' has been removed has it reached end-of-life"; # Added 2025-03-23 413 414 cawbird = throw "cawbird has been abandoned upstream and is broken anyways due to Twitter closing its API";
-4
pkgs/top-level/all-packages.nix
··· 1088 1088 1089 1089 gp-saml-gui = python3Packages.callPackage ../tools/networking/gp-saml-gui { }; 1090 1090 1091 - fwbuilder = libsForQt5.callPackage ../tools/security/fwbuilder { }; 1092 - 1093 1091 inherit (callPackages ../tools/networking/ivpn/default.nix { }) 1094 1092 ivpn 1095 1093 ivpn-service ··· 1153 1151 }; 1154 1152 1155 1153 ufolint = with python3Packages; toPythonApplication ufolint; 1156 - 1157 - valeronoi = qt6Packages.callPackage ../tools/misc/valeronoi { }; 1158 1154 1159 1155 veikk-linux-driver-gui = libsForQt5.callPackage ../tools/misc/veikk-linux-driver-gui { }; 1160 1156