Merge staging-next into staging

authored by nixpkgs-ci[bot] and committed by GitHub e821b847 7e6ff957

+3838 -3418
+4
.git-blame-ignore-revs
··· 288 288 289 289 # systemd: nixfmt 290 290 b1c5cd3e794cdf89daa5e4f0086274a416a1cded 291 + 292 + #nixos/nextcloud: remove with lib usage 293 + b6088b0d8e13e8d18464d78935f0130052784658 294 + f7611cad5154a9096faa26d156a4079577bfae17
+1
.github/workflows/backport.yml
··· 34 34 private-key: ${{ secrets.NIXPKGS_CI_APP_PRIVATE_KEY }} 35 35 permission-contents: write 36 36 permission-pull-requests: write 37 + permission-workflows: write 37 38 38 39 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 39 40 with:
+133 -6
.github/workflows/eval.yml
··· 11 11 systems: 12 12 required: true 13 13 type: string 14 + testVersions: 15 + required: false 16 + default: false 17 + type: boolean 14 18 secrets: 15 19 OWNER_APP_PRIVATE_KEY: 16 20 required: false ··· 22 26 shell: bash 23 27 24 28 jobs: 29 + versions: 30 + if: inputs.testVersions 31 + runs-on: ubuntu-24.04-arm 32 + outputs: 33 + versions: ${{ steps.versions.outputs.versions }} 34 + steps: 35 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 36 + with: 37 + path: trusted 38 + sparse-checkout: | 39 + ci/supportedVersions.nix 40 + 41 + - name: Check out the PR at the test merge commit 42 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 43 + with: 44 + ref: ${{ inputs.mergedSha }} 45 + path: untrusted 46 + sparse-checkout: | 47 + ci/pinned.json 48 + 49 + - name: Install Nix 50 + uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31 51 + 52 + - name: Load supported versions 53 + id: versions 54 + run: | 55 + echo "versions=$(trusted/ci/supportedVersions.nix --arg pinnedJson untrusted/ci/pinned.json)" >> "$GITHUB_OUTPUT" 56 + 25 57 eval: 26 58 runs-on: ubuntu-24.04-arm 59 + needs: versions 60 + if: ${{ !cancelled() && !failure() }} 27 61 strategy: 28 62 fail-fast: false 29 63 matrix: 30 64 system: ${{ fromJSON(inputs.systems) }} 31 - name: ${{ matrix.system }} 65 + version: 66 + - "" # Default Eval triggering rebuild labels and such. 67 + - ${{ fromJSON(needs.versions.outputs.versions || '[]') }} # Only for ci/pinned.json updates. 68 + # Failures for versioned Evals will be collected in a separate job below 69 + # to not interrupt main Eval's compare step. 70 + continue-on-error: ${{ matrix.version != '' }} 71 + name: ${{ matrix.system }}${{ matrix.version && format(' @ {0}', matrix.version) || '' }} 32 72 outputs: 33 73 targetRunId: ${{ steps.targetRunId.outputs.targetRunId }} 34 74 timeout-minutes: 15 ··· 60 100 - name: Evaluate the ${{ matrix.system }} output paths for all derivation attributes 61 101 env: 62 102 MATRIX_SYSTEM: ${{ matrix.system }} 103 + MATRIX_VERSION: ${{ matrix.version || 'nixVersions.latest' }} 63 104 run: | 64 105 nix-build untrusted/ci --arg nixpkgs ./pinned -A eval.singleSystem \ 65 106 --argstr evalSystem "$MATRIX_SYSTEM" \ 66 107 --arg chunkSize 8000 \ 108 + --argstr nixPath "$MATRIX_VERSION" \ 67 109 --out-link merged 68 110 # If it uses too much memory, slightly decrease chunkSize 69 111 70 112 - name: Upload the output paths and eval stats 71 113 uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 72 114 with: 73 - name: merged-${{ matrix.system }} 115 + name: ${{ matrix.version && format('{0}-', matrix.version) || '' }}merged-${{ matrix.system }} 74 116 path: merged/* 75 117 76 118 - name: Log current API rate limits ··· 125 167 GH_TOKEN: ${{ github.token }} 126 168 run: gh api /rate_limit | jq 127 169 128 - - uses: actions/download-artifact@v5 170 + - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 129 171 if: steps.targetRunId.outputs.targetRunId 130 172 with: 131 173 run-id: ${{ steps.targetRunId.outputs.targetRunId }} ··· 149 191 if: steps.targetRunId.outputs.targetRunId 150 192 uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 151 193 with: 152 - name: diff-${{ matrix.system }} 194 + name: ${{ matrix.version && format('{0}-', matrix.version) || '' }}diff-${{ matrix.system }} 153 195 path: diff/* 154 196 155 197 compare: 156 198 runs-on: ubuntu-24.04-arm 157 199 needs: [eval] 158 - if: needs.eval.outputs.targetRunId 200 + if: needs.eval.outputs.targetRunId && !cancelled() && !failure() 159 201 permissions: 160 202 statuses: write 161 203 timeout-minutes: 5 ··· 171 213 pinnedFrom: trusted 172 214 173 215 - name: Download output paths and eval stats for all systems 174 - uses: actions/download-artifact@de96f4613b77ec03b5cf633e7c350c32bd3c5660 # v4.1.8 216 + uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 175 217 with: 176 218 pattern: diff-* 177 219 path: diff ··· 239 281 description, 240 282 target_url 241 283 }) 284 + 285 + # Creates a matrix of Eval performance for various versions and systems. 286 + report: 287 + runs-on: ubuntu-24.04-arm 288 + needs: [versions, eval] 289 + steps: 290 + - name: Download output paths and eval stats for all versions 291 + uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 292 + with: 293 + pattern: "*-diff-*" 294 + path: versions 295 + 296 + - name: Add version comparison table to job summary 297 + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 298 + env: 299 + SYSTEMS: ${{ inputs.systems }} 300 + VERSIONS: ${{ needs.versions.outputs.versions }} 301 + with: 302 + script: | 303 + const { readFileSync } = require('node:fs') 304 + const path = require('node:path') 305 + 306 + const systems = JSON.parse(process.env.SYSTEMS) 307 + const versions = JSON.parse(process.env.VERSIONS) 308 + 309 + core.summary.addHeading('Lix/Nix version comparison') 310 + core.summary.addTable( 311 + [].concat( 312 + [ 313 + [{ data: 'Version', header: true }].concat( 314 + systems.map((system) => ({ data: system, header: true })), 315 + ), 316 + ], 317 + versions.map((version) => 318 + [{ data: version }].concat( 319 + systems.map((system) => { 320 + try { 321 + const artifact = path.join('versions', `${version}-diff-${system}`) 322 + const time = Math.round( 323 + parseFloat( 324 + readFileSync( 325 + path.join(artifact, 'after', system, 'total-time'), 326 + 'utf-8', 327 + ), 328 + ), 329 + ) 330 + const diff = JSON.parse( 331 + readFileSync(path.join(artifact, system, 'diff.json'), 'utf-8'), 332 + ) 333 + const attrs = [].concat( 334 + diff.added, 335 + diff.removed, 336 + diff.changed, 337 + diff.rebuilds 338 + ).filter(attr => 339 + // Exceptions related to dev shells, which changed at some time between 2.18 and 2.24. 340 + !attr.startsWith('tests.devShellTools.nixos.') && 341 + !attr.startsWith('tests.devShellTools.unstructuredDerivationInputEnv.') 342 + ) 343 + if (attrs.length > 0) { 344 + core.setFailed( 345 + `${version} on ${system} has changed outpaths!\nNote: Please make sure to update ci/pinned.json separately from changes to other packages.`, 346 + ) 347 + return { data: ':x:' } 348 + } 349 + return { data: time } 350 + } catch { 351 + core.warning(`${version} on ${system} did not produce artifact.`) 352 + return { data: ':warning:' } 353 + } 354 + }), 355 + ), 356 + ), 357 + ), 358 + ) 359 + core.summary.addRaw( 360 + '\n*Evaluation time in seconds without downloading dependencies.*', 361 + true, 362 + ) 363 + core.summary.addRaw('\n*:warning: Job did not report a result.*', true) 364 + core.summary.addRaw( 365 + '\n*:x: Job produced different outpaths than the target branch.*', 366 + true, 367 + ) 368 + core.summary.write() 242 369 243 370 misc: 244 371 if: ${{ github.event_name != 'push' }}
+17 -1
.github/workflows/pr.yml
··· 28 28 mergedSha: ${{ steps.get-merge-commit.outputs.mergedSha }} 29 29 targetSha: ${{ steps.get-merge-commit.outputs.targetSha }} 30 30 systems: ${{ steps.systems.outputs.systems }} 31 + touched: ${{ steps.files.outputs.touched }} 31 32 steps: 32 33 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 33 34 with: ··· 64 65 core.setOutput('head', headClassification) 65 66 core.info('head classification:', headClassification) 66 67 68 + - name: Determine changed files 69 + id: files 70 + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 71 + with: 72 + script: | 73 + const files = (await github.paginate(github.rest.pulls.listFiles, { 74 + ...context.repo, 75 + pull_number: context.payload.pull_request.number, 76 + per_page: 100, 77 + })).map(file => file.filename) 78 + 79 + if (files.includes('ci/pinned.json')) core.setOutput('touched', ['pinned']) 80 + else core.setOutput('touched', []) 81 + 67 82 check: 68 83 name: Check 69 84 needs: [prepare] ··· 96 111 mergedSha: ${{ needs.prepare.outputs.mergedSha }} 97 112 targetSha: ${{ needs.prepare.outputs.targetSha }} 98 113 systems: ${{ needs.prepare.outputs.systems }} 114 + testVersions: ${{ contains(fromJSON(needs.prepare.outputs.touched), 'pinned') && !contains(fromJSON(needs.prepare.outputs.headBranch).type, 'development') }} 99 115 100 116 labels: 101 117 name: Labels ··· 144 160 # Do NOT change the name of this job, otherwise the rule will not catch it anymore. 145 161 # This would prevent all PRs from merging. 146 162 name: no PR failures 147 - if: ${{ failure() }} 163 + if: ${{ cancelled() || failure() }} 148 164 runs-on: ubuntu-24.04-arm 149 165 steps: 150 166 - run: exit 1
+1 -1
.github/workflows/reviewers.yml
··· 96 96 run: gh api /rate_limit | jq 97 97 98 98 - name: Download the comparison results 99 - uses: actions/download-artifact@de96f4613b77ec03b5cf633e7c350c32bd3c5660 # v4.1.8 99 + uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 100 100 with: 101 101 run-id: ${{ steps.eval.outputs.run-id }} 102 102 github-token: ${{ github.token }}
+4 -10
ci/default.nix
··· 5 5 system ? builtins.currentSystem, 6 6 7 7 nixpkgs ? null, 8 + nixPath ? "nixVersions.latest", 8 9 }: 9 10 let 10 11 nixpkgs' = ··· 16 17 else 17 18 nixpkgs; 18 19 19 - pkgs = import nixpkgs' { 20 - inherit system; 21 - config = { 22 - permittedInsecurePackages = [ "nix-2.3.18" ]; 23 - }; 24 - overlays = [ ]; 25 - }; 20 + pkgs = import nixpkgs' { inherit system; }; 26 21 27 22 fmt = 28 23 let ··· 115 110 # (nixVersions.stable and Lix) here somehow at some point to ensure we don't 116 111 # have eval divergence. 117 112 eval = pkgs.callPackage ./eval { 118 - nix = pkgs.nixVersions.latest; 113 + nix = pkgs.lib.getAttrFromPath (pkgs.lib.splitString "." nixPath) pkgs; 119 114 }; 120 115 121 116 # CI jobs ··· 127 122 parse = pkgs.lib.recurseIntoAttrs { 128 123 latest = pkgs.callPackage ./parse.nix { nix = pkgs.nixVersions.latest; }; 129 124 lix = pkgs.callPackage ./parse.nix { nix = pkgs.lix; }; 130 - # TODO: Raise nixVersions.minimum to 2.24 and flip back to it. 131 - minimum = pkgs.callPackage ./parse.nix { nix = pkgs.nixVersions.nix_2_24; }; 125 + nix_2_24 = pkgs.callPackage ./parse.nix { nix = pkgs.nixVersions.nix_2_24; }; 132 126 }; 133 127 shell = import ../shell.nix { inherit nixpkgs system; }; 134 128 tarball = import ../pkgs/top-level/make-tarball.nix {
+6 -7
ci/eval/compare/default.nix
··· 146 146 147 147 cp ${changed-paths} $out/changed-paths.json 148 148 149 + { 150 + echo 151 + echo "# Packages" 152 + echo 153 + jq -r -f ${./generate-step-summary.jq} < ${changed-paths} 154 + } >> $out/step-summary.md 149 155 150 156 if jq -e '(.attrdiff.added | length == 0) and (.attrdiff.removed | length == 0)' "${changed-paths}" > /dev/null; then 151 157 # Chunks have changed between revisions ··· 174 180 echo "For further help please refer to: [ci/README.md](https://github.com/NixOS/nixpkgs/blob/master/ci/README.md)" 175 181 } >> $out/step-summary.md 176 182 fi 177 - 178 - { 179 - echo 180 - echo "# Packages" 181 - echo 182 - jq -r -f ${./generate-step-summary.jq} < ${changed-paths} 183 - } >> $out/step-summary.md 184 183 185 184 cp "$maintainersPath" "$out/maintainers.json" 186 185 ''
+6 -6
ci/pinned.json
··· 9 9 }, 10 10 "branch": "nixpkgs-unstable", 11 11 "submodules": false, 12 - "revision": "6a489c9482ca676ce23c0bcd7f2e1795383325fa", 13 - "url": "https://github.com/NixOS/nixpkgs/archive/6a489c9482ca676ce23c0bcd7f2e1795383325fa.tar.gz", 14 - "hash": "0vsvkhy3gb8yzq62vazhmpqixssmd4xinnll7w73l4vrqd611wlf" 12 + "revision": "641d909c4a7538f1539da9240dedb1755c907e40", 13 + "url": "https://github.com/NixOS/nixpkgs/archive/641d909c4a7538f1539da9240dedb1755c907e40.tar.gz", 14 + "hash": "10hpb1aw884k3zzcy1mhf47dqvfagiyx7kr6hg0p5xcwg04mkx8x" 15 15 }, 16 16 "treefmt-nix": { 17 17 "type": "Git", ··· 22 22 }, 23 23 "branch": "main", 24 24 "submodules": false, 25 - "revision": "58bd4da459f0a39e506847109a2a5cfceb837796", 26 - "url": "https://github.com/numtide/treefmt-nix/archive/58bd4da459f0a39e506847109a2a5cfceb837796.tar.gz", 27 - "hash": "01bg9b4xzlv6s5q1q78vib6l2csw02b3rk5bm5yj4gx2sk2hvmrq" 25 + "revision": "7d81f6fb2e19bf84f1c65135d1060d829fae2408", 26 + "url": "https://github.com/numtide/treefmt-nix/archive/7d81f6fb2e19bf84f1c65135d1060d829fae2408.tar.gz", 27 + "hash": "1cg20q8ja8k2nb7mzy95hgmd8whxapc3fbyndh1ip5dr6d1grxfs" 28 28 } 29 29 }, 30 30 "version": 5
+32
ci/supportedVersions.nix
··· 1 + #!/usr/bin/env -S nix-instantiate --eval --strict --json --arg unused true 2 + # Unused argument to trigger nix-instantiate calling this function with the default arguments. 3 + { 4 + pinnedJson ? ./pinned.json, 5 + }: 6 + let 7 + pinned = (builtins.fromJSON (builtins.readFile pinnedJson)).pins; 8 + nixpkgs = fetchTarball { 9 + inherit (pinned.nixpkgs) url; 10 + sha256 = pinned.nixpkgs.hash; 11 + }; 12 + pkgs = import nixpkgs { 13 + config.allowAliases = false; 14 + }; 15 + 16 + inherit (pkgs) lib; 17 + 18 + lix = lib.pipe pkgs.lixPackageSets [ 19 + (lib.filterAttrs (_: set: lib.isDerivation set.lix or null && set.lix.meta.available)) 20 + lib.attrNames 21 + (lib.filter (name: lib.match "lix_[0-9_]+|git" name != null)) 22 + (map (name: "lixPackageSets.${name}.lix")) 23 + ]; 24 + 25 + nix = lib.pipe pkgs.nixVersions [ 26 + (lib.filterAttrs (_: drv: lib.isDerivation drv && drv.meta.available)) 27 + lib.attrNames 28 + (lib.filter (name: lib.match "nix_[0-9_]+|git" name != null)) 29 + (map (name: "nixVersions.${name}")) 30 + ]; 31 + in 32 + lix ++ nix
+4
doc/release-notes/rl-2511.section.md
··· 14 14 15 15 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. --> 16 16 17 + - `nixVersions.nix_2_3` has been dropped because it was insecure and unmaintained. 18 + 19 + - The minimum version of Nix required to evaluate Nixpkgs has been raised from 2.3 to 2.18. 20 + 17 21 - The `offrss` package was removed due to lack of upstream maintenance since 2012. It's recommended for users to migrate to another RSS reader 18 22 19 23 - `base16-builder` node package has been removed due to lack of upstream maintenance.
+1 -1
lib/minver.nix
··· 1 1 # Expose the minimum required version for evaluating Nixpkgs 2 - "2.3.17" 2 + "2.18"
+4 -11
lib/tests/release.nix
··· 2 2 # The pkgs used for dependencies for the testing itself 3 3 # Don't test properties of pkgs.lib, but rather the lib in the parent directory 4 4 system ? builtins.currentSystem, 5 - pkgs ? 6 - import ../.. { 7 - inherit system; 8 - config = { 9 - permittedInsecurePackages = [ "nix-2.3.18" ]; 10 - }; 11 - } 12 - // { 13 - lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; 14 - }, 5 + pkgs ? import ../.. { inherit system; } // { 6 + lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; 7 + }, 15 8 # For testing someone may edit impure.nix to return cross pkgs, use `pkgsBuildBuild` directly so everything here works. 16 9 pkgsBB ? pkgs.pkgsBuildBuild, 17 10 nix ? pkgs-nixVersions.stable, 18 11 nixVersions ? [ 19 - pkgs-nixVersions.minimum 12 + pkgs-nixVersions.nix_2_24 20 13 nix 21 14 pkgs-nixVersions.latest 22 15 ],
+6
maintainers/maintainer-list.nix
··· 28147 28147 githubId = 908716; 28148 28148 name = "Zach Coyle"; 28149 28149 }; 28150 + ZachDavies = { 28151 + name = "Zach Davies"; 28152 + email = "zdmalta@proton.me"; 28153 + github = "ZachDavies"; 28154 + githubId = 131615861; 28155 + }; 28150 28156 Zaczero = { 28151 28157 name = "Kamil Monicz"; 28152 28158 email = "kamil@monicz.dev";
+1 -1
nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix
··· 11 11 # Add Firefox and other tools useful for installation to the launcher 12 12 favoriteAppsOverride = '' 13 13 [org.gnome.shell] 14 - favorite-apps=[ 'firefox.desktop', 'nixos-manual.desktop', 'org.gnome.Console.desktop', 'org.gnome.Nautilus.desktop', 'gparted.desktop', 'io.calamares.calamares.desktop' ] 14 + favorite-apps=[ 'firefox.desktop', 'nixos-manual.desktop', 'org.gnome.Console.desktop', 'org.gnome.Nautilus.desktop', 'gparted.desktop', 'calamares.desktop' ] 15 15 ''; 16 16 17 17 # Override GNOME defaults to disable GNOME tour and disable suspend
+2 -2
nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma5.nix
··· 45 45 ln -sfT ${pkgs.plasma5Packages.konsole}/share/applications/org.kde.konsole.desktop ${ 46 46 desktopDir + "org.kde.konsole.desktop" 47 47 } 48 - ln -sfT ${pkgs.calamares-nixos}/share/applications/io.calamares.calamares.desktop ${ 49 - desktopDir + "io.calamares.calamares.desktop" 48 + ln -sfT ${pkgs.calamares-nixos}/share/applications/calamares.desktop ${ 49 + desktopDir + "calamares.desktop" 50 50 } 51 51 ''; 52 52
+2 -2
nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma6.nix
··· 50 50 51 51 ln -sfT ${manualDesktopFile} ${desktopDir + "nixos-manual.desktop"} 52 52 ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop ${desktopDir + "gparted.desktop"} 53 - ln -sfT ${pkgs.calamares-nixos}/share/applications/io.calamares.calamares.desktop ${ 54 - desktopDir + "io.calamares.calamares.desktop" 53 + ln -sfT ${pkgs.calamares-nixos}/share/applications/calamares.desktop ${ 54 + desktopDir + "calamares.desktop" 55 55 } 56 56 ''; 57 57
+4 -2
nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares.nix
··· 4 4 { pkgs, ... }: 5 5 let 6 6 calamares-nixos-autostart = pkgs.makeAutostartItem { 7 - name = "io.calamares.calamares"; 7 + name = "calamares"; 8 8 package = pkgs.calamares-nixos; 9 9 }; 10 10 in 11 11 { 12 12 imports = [ ./installation-cd-graphical-base.nix ]; 13 13 14 + # required for kpmcore to work correctly 15 + programs.partition-manager.enable = true; 16 + 14 17 environment.systemPackages = with pkgs; [ 15 18 # Calamares for graphical installation 16 - libsForQt5.kpmcore 17 19 calamares-nixos 18 20 calamares-nixos-autostart 19 21 calamares-nixos-extensions
+1 -1
nixos/modules/programs/partition-manager.nix
··· 15 15 programs.partition-manager = { 16 16 enable = lib.mkEnableOption "KDE Partition Manager"; 17 17 18 - package = lib.mkPackageOption pkgs [ "libsForQt5" "partitionmanager" ] { }; 18 + package = lib.mkPackageOption pkgs [ "kdePackages" "partitionmanager" ] { }; 19 19 }; 20 20 }; 21 21
+488 -491
nixos/modules/services/web-apps/nextcloud.nix
··· 5 5 ... 6 6 }: 7 7 let 8 - inherit (lib) 9 - mkIf 10 - mkMerge 11 - ; 12 - 13 8 cfg = config.services.nextcloud; 14 9 15 10 overridePackage = cfg.package.override { ··· 1024 1019 }; 1025 1020 }; 1026 1021 1027 - config = mkIf cfg.enable (mkMerge [ 1028 - { 1029 - warnings = 1030 - let 1031 - latest = 31; 1032 - upgradeWarning = major: nixos: '' 1033 - A legacy Nextcloud install (from before NixOS ${nixos}) may be installed. 1022 + config = lib.mkIf cfg.enable ( 1023 + lib.mkMerge [ 1024 + { 1025 + warnings = 1026 + let 1027 + latest = 31; 1028 + upgradeWarning = major: nixos: '' 1029 + A legacy Nextcloud install (from before NixOS ${nixos}) may be installed. 1034 1030 1035 - After nextcloud${toString major} is installed successfully, you can safely upgrade 1036 - to ${toString (major + 1)}. The latest version available is Nextcloud${toString latest}. 1031 + After nextcloud${toString major} is installed successfully, you can safely upgrade 1032 + to ${toString (major + 1)}. The latest version available is Nextcloud${toString latest}. 1037 1033 1038 - Please note that Nextcloud doesn't support upgrades across multiple major versions 1039 - (i.e. an upgrade from 16 is possible to 17, but not 16 to 18). 1034 + Please note that Nextcloud doesn't support upgrades across multiple major versions 1035 + (i.e. an upgrade from 16 is possible to 17, but not 16 to 18). 1040 1036 1041 - The package can be upgraded by explicitly declaring the service-option 1042 - `services.nextcloud.package`. 1043 - ''; 1037 + The package can be upgraded by explicitly declaring the service-option 1038 + `services.nextcloud.package`. 1039 + ''; 1044 1040 1045 - in 1046 - (lib.optional (cfg.poolConfig != null) '' 1047 - Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release. 1048 - Please migrate your configuration to config.services.nextcloud.poolSettings. 1049 - '') 1050 - ++ (lib.optional (cfg.config.dbtableprefix != null) '' 1051 - Using `services.nextcloud.config.dbtableprefix` is deprecated. Fresh installations with this 1052 - option set are not allowed anymore since v20. 1041 + in 1042 + (lib.optional (cfg.poolConfig != null) '' 1043 + Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release. 1044 + Please migrate your configuration to config.services.nextcloud.poolSettings. 1045 + '') 1046 + ++ (lib.optional (cfg.config.dbtableprefix != null) '' 1047 + Using `services.nextcloud.config.dbtableprefix` is deprecated. Fresh installations with this 1048 + option set are not allowed anymore since v20. 1053 1049 1054 - If you have an existing installation with a custom table prefix, make sure it is 1055 - set correctly in `config.php` and remove the option from your NixOS config. 1056 - '') 1057 - ++ (lib.optional (lib.versionOlder overridePackage.version "26") (upgradeWarning 25 "23.05")) 1058 - ++ (lib.optional (lib.versionOlder overridePackage.version "27") (upgradeWarning 26 "23.11")) 1059 - ++ (lib.optional (lib.versionOlder overridePackage.version "28") (upgradeWarning 27 "24.05")) 1060 - ++ (lib.optional (lib.versionOlder overridePackage.version "29") (upgradeWarning 28 "24.11")) 1061 - ++ (lib.optional (lib.versionOlder overridePackage.version "30") (upgradeWarning 29 "24.11")) 1062 - ++ (lib.optional (lib.versionOlder overridePackage.version "31") (upgradeWarning 30 "25.05")); 1050 + If you have an existing installation with a custom table prefix, make sure it is 1051 + set correctly in `config.php` and remove the option from your NixOS config. 1052 + '') 1053 + ++ (lib.optional (lib.versionOlder overridePackage.version "26") (upgradeWarning 25 "23.05")) 1054 + ++ (lib.optional (lib.versionOlder overridePackage.version "27") (upgradeWarning 26 "23.11")) 1055 + ++ (lib.optional (lib.versionOlder overridePackage.version "28") (upgradeWarning 27 "24.05")) 1056 + ++ (lib.optional (lib.versionOlder overridePackage.version "29") (upgradeWarning 28 "24.11")) 1057 + ++ (lib.optional (lib.versionOlder overridePackage.version "30") (upgradeWarning 29 "24.11")) 1058 + ++ (lib.optional (lib.versionOlder overridePackage.version "31") (upgradeWarning 30 "25.05")); 1063 1059 1064 - services.nextcloud.package = lib.mkDefault ( 1065 - if pkgs ? nextcloud then 1066 - throw '' 1067 - The `pkgs.nextcloud`-attribute has been removed. If it's supposed to be the default 1068 - nextcloud defined in an overlay, please set `services.nextcloud.package` to 1069 - `pkgs.nextcloud`. 1070 - '' 1071 - else if lib.versionOlder stateVersion "24.05" then 1072 - pkgs.nextcloud27 1073 - else if lib.versionOlder stateVersion "24.11" then 1074 - pkgs.nextcloud29 1075 - else if lib.versionOlder stateVersion "25.05" then 1076 - pkgs.nextcloud30 1077 - else 1078 - pkgs.nextcloud31 1079 - ); 1060 + services.nextcloud.package = lib.mkDefault ( 1061 + if pkgs ? nextcloud then 1062 + throw '' 1063 + The `pkgs.nextcloud`-attribute has been removed. If it's supposed to be the default 1064 + nextcloud defined in an overlay, please set `services.nextcloud.package` to 1065 + `pkgs.nextcloud`. 1066 + '' 1067 + else if lib.versionOlder stateVersion "24.05" then 1068 + pkgs.nextcloud27 1069 + else if lib.versionOlder stateVersion "24.11" then 1070 + pkgs.nextcloud29 1071 + else if lib.versionOlder stateVersion "25.05" then 1072 + pkgs.nextcloud30 1073 + else 1074 + pkgs.nextcloud31 1075 + ); 1080 1076 1081 - services.nextcloud.phpOptions = mkMerge [ 1082 - (lib.mapAttrs (lib.const lib.mkOptionDefault) defaultPHPSettings) 1083 - { 1084 - upload_max_filesize = cfg.maxUploadSize; 1085 - post_max_size = cfg.maxUploadSize; 1086 - memory_limit = cfg.maxUploadSize; 1087 - } 1088 - (mkIf cfg.caching.apcu { 1089 - "apc.enable_cli" = "1"; 1090 - }) 1091 - ]; 1092 - } 1077 + services.nextcloud.phpOptions = lib.mkMerge [ 1078 + (lib.mapAttrs (lib.const lib.mkOptionDefault) defaultPHPSettings) 1079 + { 1080 + upload_max_filesize = cfg.maxUploadSize; 1081 + post_max_size = cfg.maxUploadSize; 1082 + memory_limit = cfg.maxUploadSize; 1083 + } 1084 + (lib.mkIf cfg.caching.apcu { 1085 + "apc.enable_cli" = "1"; 1086 + }) 1087 + ]; 1088 + } 1093 1089 1094 - { 1095 - assertions = [ 1096 - { 1097 - assertion = cfg.database.createLocally -> cfg.config.dbpassFile == null; 1098 - message = '' 1099 - Using `services.nextcloud.database.createLocally` with database 1100 - password authentication is no longer supported. 1090 + { 1091 + assertions = [ 1092 + { 1093 + assertion = cfg.database.createLocally -> cfg.config.dbpassFile == null; 1094 + message = '' 1095 + Using `services.nextcloud.database.createLocally` with database 1096 + password authentication is no longer supported. 1101 1097 1102 - If you use an external database (or want to use password auth for any 1103 - other reason), set `services.nextcloud.database.createLocally` to 1104 - `false`. The database won't be managed for you (use `services.mysql` 1105 - if you want to set it up). 1098 + If you use an external database (or want to use password auth for any 1099 + other reason), set `services.nextcloud.database.createLocally` to 1100 + `false`. The database won't be managed for you (use `services.mysql` 1101 + if you want to set it up). 1106 1102 1107 - If you want this module to manage your nextcloud database for you, 1108 - unset `services.nextcloud.config.dbpassFile` and 1109 - `services.nextcloud.config.dbhost` to use socket authentication 1110 - instead of password. 1111 - ''; 1112 - } 1113 - { 1114 - assertion = cfg.config.dbtype != null; 1115 - message = '' 1116 - `services.nextcloud.config.dbtype` must be set explicitly (pgsql, mysql, or sqlite) 1103 + If you want this module to manage your nextcloud database for you, 1104 + unset `services.nextcloud.config.dbpassFile` and 1105 + `services.nextcloud.config.dbhost` to use socket authentication 1106 + instead of password. 1107 + ''; 1108 + } 1109 + { 1110 + assertion = cfg.config.dbtype != null; 1111 + message = '' 1112 + `services.nextcloud.config.dbtype` must be set explicitly (pgsql, mysql, or sqlite) 1117 1113 1118 - Before 25.05, it used to default to sqlite but that is not recommended by upstream. 1119 - Either set it to sqlite as it used to be, or convert to another type as described 1120 - in the official db conversion page: 1121 - https://docs.nextcloud.com/server/latest/admin_manual/configuration_database/db_conversion.html 1122 - ''; 1123 - } 1124 - ]; 1125 - } 1114 + Before 25.05, it used to default to sqlite but that is not recommended by upstream. 1115 + Either set it to sqlite as it used to be, or convert to another type as described 1116 + in the official db conversion page: 1117 + https://docs.nextcloud.com/server/latest/admin_manual/configuration_database/db_conversion.html 1118 + ''; 1119 + } 1120 + ]; 1121 + } 1126 1122 1127 - { 1128 - systemd.timers.nextcloud-cron = { 1129 - wantedBy = [ "timers.target" ]; 1130 - after = [ "nextcloud-setup.service" ]; 1131 - timerConfig = { 1132 - OnBootSec = "5m"; 1133 - OnUnitActiveSec = "5m"; 1134 - Unit = "nextcloud-cron.service"; 1123 + { 1124 + systemd.timers.nextcloud-cron = { 1125 + wantedBy = [ "timers.target" ]; 1126 + after = [ "nextcloud-setup.service" ]; 1127 + timerConfig = { 1128 + OnBootSec = "5m"; 1129 + OnUnitActiveSec = "5m"; 1130 + Unit = "nextcloud-cron.service"; 1131 + }; 1135 1132 }; 1136 - }; 1133 + 1134 + systemd.tmpfiles.rules = 1135 + map (dir: "d ${dir} 0750 nextcloud nextcloud - -") [ 1136 + "${cfg.home}" 1137 + "${datadir}/config" 1138 + "${datadir}/data" 1139 + "${cfg.home}/store-apps" 1140 + ] 1141 + ++ [ 1142 + "L+ ${datadir}/config/override.config.php - - - - ${overrideConfig}" 1143 + ]; 1137 1144 1138 - systemd.tmpfiles.rules = 1139 - map (dir: "d ${dir} 0750 nextcloud nextcloud - -") [ 1140 - "${cfg.home}" 1141 - "${datadir}/config" 1142 - "${datadir}/data" 1143 - "${cfg.home}/store-apps" 1144 - ] 1145 - ++ [ 1146 - "L+ ${datadir}/config/override.config.php - - - - ${overrideConfig}" 1147 - ]; 1145 + services.nextcloud.finalPackage = webroot; 1148 1146 1149 - services.nextcloud.finalPackage = webroot; 1147 + systemd.services = { 1148 + nextcloud-setup = 1149 + let 1150 + c = cfg.config; 1151 + occInstallCmd = 1152 + let 1153 + mkExport = 1154 + { arg, value }: 1155 + '' 1156 + ${arg}=${value}; 1157 + export ${arg}; 1158 + ''; 1159 + dbpass = { 1160 + arg = "DBPASS"; 1161 + value = if c.dbpassFile != null then ''"$(<"$CREDENTIALS_DIRECTORY/dbpass")"'' else ''""''; 1162 + }; 1163 + adminpass = { 1164 + arg = "ADMINPASS"; 1165 + value = ''"$(<"$CREDENTIALS_DIRECTORY/adminpass")"''; 1166 + }; 1167 + installFlags = lib.concatStringsSep " \\\n " ( 1168 + lib.mapAttrsToList (k: v: "${k} ${toString v}") { 1169 + "--database" = ''"${c.dbtype}"''; 1170 + # The following attributes are optional depending on the type of 1171 + # database. Those that evaluate to null on the left hand side 1172 + # will be omitted. 1173 + ${if c.dbname != null then "--database-name" else null} = ''"${c.dbname}"''; 1174 + ${if c.dbhost != null then "--database-host" else null} = ''"${c.dbhost}"''; 1175 + ${if c.dbuser != null then "--database-user" else null} = ''"${c.dbuser}"''; 1176 + "--database-pass" = "\"\$${dbpass.arg}\""; 1177 + "--admin-user" = ''"${c.adminuser}"''; 1178 + "--admin-pass" = "\"\$${adminpass.arg}\""; 1179 + "--data-dir" = ''"${datadir}/data"''; 1180 + } 1181 + ); 1182 + in 1183 + '' 1184 + ${mkExport dbpass} 1185 + ${mkExport adminpass} 1186 + ${lib.getExe occ} maintenance:install \ 1187 + ${installFlags} 1188 + ''; 1189 + occSetTrustedDomainsCmd = lib.concatStringsSep "\n" ( 1190 + lib.imap0 (i: v: '' 1191 + ${lib.getExe occ} config:system:set trusted_domains \ 1192 + ${toString i} --value="${toString v}" 1193 + '') (lib.unique ([ cfg.hostName ] ++ cfg.settings.trusted_domains)) 1194 + ); 1150 1195 1151 - systemd.services = { 1152 - nextcloud-setup = 1153 - let 1154 - c = cfg.config; 1155 - occInstallCmd = 1156 - let 1157 - mkExport = 1158 - { arg, value }: 1159 - '' 1160 - ${arg}=${value}; 1161 - export ${arg}; 1162 - ''; 1163 - dbpass = { 1164 - arg = "DBPASS"; 1165 - value = if c.dbpassFile != null then ''"$(<"$CREDENTIALS_DIRECTORY/dbpass")"'' else ''""''; 1166 - }; 1167 - adminpass = { 1168 - arg = "ADMINPASS"; 1169 - value = ''"$(<"$CREDENTIALS_DIRECTORY/adminpass")"''; 1170 - }; 1171 - installFlags = lib.concatStringsSep " \\\n " ( 1172 - lib.mapAttrsToList (k: v: "${k} ${toString v}") { 1173 - "--database" = ''"${c.dbtype}"''; 1174 - # The following attributes are optional depending on the type of 1175 - # database. Those that evaluate to null on the left hand side 1176 - # will be omitted. 1177 - ${if c.dbname != null then "--database-name" else null} = ''"${c.dbname}"''; 1178 - ${if c.dbhost != null then "--database-host" else null} = ''"${c.dbhost}"''; 1179 - ${if c.dbuser != null then "--database-user" else null} = ''"${c.dbuser}"''; 1180 - "--database-pass" = "\"\$${dbpass.arg}\""; 1181 - "--admin-user" = ''"${c.adminuser}"''; 1182 - "--admin-pass" = "\"\$${adminpass.arg}\""; 1183 - "--data-dir" = ''"${datadir}/data"''; 1184 - } 1185 - ); 1186 - in 1187 - '' 1188 - ${mkExport dbpass} 1189 - ${mkExport adminpass} 1190 - ${lib.getExe occ} maintenance:install \ 1191 - ${installFlags} 1192 - ''; 1193 - occSetTrustedDomainsCmd = lib.concatStringsSep "\n" ( 1194 - lib.imap0 (i: v: '' 1195 - ${lib.getExe occ} config:system:set trusted_domains \ 1196 - ${toString i} --value="${toString v}" 1197 - '') (lib.unique ([ cfg.hostName ] ++ cfg.settings.trusted_domains)) 1198 - ); 1196 + in 1197 + { 1198 + wantedBy = [ "multi-user.target" ]; 1199 + wants = [ "nextcloud-update-db.service" ]; 1200 + before = [ "phpfpm-nextcloud.service" ]; 1201 + after = lib.optional mysqlLocal "mysql.service" ++ lib.optional pgsqlLocal "postgresql.target"; 1202 + requires = lib.optional mysqlLocal "mysql.service" ++ lib.optional pgsqlLocal "postgresql.target"; 1203 + path = [ occ ]; 1204 + restartTriggers = [ overrideConfig ]; 1205 + script = '' 1206 + ${lib.optionalString (c.dbpassFile != null) '' 1207 + if [ -z "$(<"$CREDENTIALS_DIRECTORY/dbpass")" ]; then 1208 + echo "dbpassFile ${c.dbpassFile} is empty!" 1209 + exit 1 1210 + fi 1211 + ''} 1212 + if [ -z "$(<"$CREDENTIALS_DIRECTORY/adminpass")" ]; then 1213 + echo "adminpassFile ${c.adminpassFile} is empty!" 1214 + exit 1 1215 + fi 1199 1216 1200 - in 1201 - { 1202 - wantedBy = [ "multi-user.target" ]; 1203 - wants = [ "nextcloud-update-db.service" ]; 1204 - before = [ "phpfpm-nextcloud.service" ]; 1205 - after = lib.optional mysqlLocal "mysql.service" ++ lib.optional pgsqlLocal "postgresql.target"; 1206 - requires = lib.optional mysqlLocal "mysql.service" ++ lib.optional pgsqlLocal "postgresql.target"; 1207 - path = [ occ ]; 1208 - restartTriggers = [ overrideConfig ]; 1209 - script = '' 1210 - ${lib.optionalString (c.dbpassFile != null) '' 1211 - if [ -z "$(<"$CREDENTIALS_DIRECTORY/dbpass")" ]; then 1212 - echo "dbpassFile ${c.dbpassFile} is empty!" 1217 + # Check if systemd-tmpfiles setup worked correctly 1218 + if [[ ! -O "${datadir}/config" ]]; then 1219 + echo "${datadir}/config is not owned by user 'nextcloud'!" 1220 + echo "Please check the logs via 'journalctl -u systemd-tmpfiles-setup'" 1221 + echo "and make sure there are no unsafe path transitions." 1222 + echo "(https://nixos.org/manual/nixos/stable/#module-services-nextcloud-pitfalls-during-upgrade)" 1213 1223 exit 1 1214 1224 fi 1215 - ''} 1216 - if [ -z "$(<"$CREDENTIALS_DIRECTORY/adminpass")" ]; then 1217 - echo "adminpassFile ${c.adminpassFile} is empty!" 1218 - exit 1 1219 - fi 1220 1225 1221 - # Check if systemd-tmpfiles setup worked correctly 1222 - if [[ ! -O "${datadir}/config" ]]; then 1223 - echo "${datadir}/config is not owned by user 'nextcloud'!" 1224 - echo "Please check the logs via 'journalctl -u systemd-tmpfiles-setup'" 1225 - echo "and make sure there are no unsafe path transitions." 1226 - echo "(https://nixos.org/manual/nixos/stable/#module-services-nextcloud-pitfalls-during-upgrade)" 1227 - exit 1 1228 - fi 1226 + ${lib.concatMapStrings 1227 + (name: '' 1228 + if [ -d "${cfg.home}"/${name} ]; then 1229 + echo "Cleaning up ${name}; these are now bundled in the webroot store-path!" 1230 + rm -r "${cfg.home}"/${name} 1231 + fi 1232 + '') 1233 + [ 1234 + "nix-apps" 1235 + "apps" 1236 + ] 1237 + } 1229 1238 1230 - ${lib.concatMapStrings 1231 - (name: '' 1232 - if [ -d "${cfg.home}"/${name} ]; then 1233 - echo "Cleaning up ${name}; these are now bundled in the webroot store-path!" 1234 - rm -r "${cfg.home}"/${name} 1235 - fi 1236 - '') 1237 - [ 1238 - "nix-apps" 1239 - "apps" 1240 - ] 1241 - } 1239 + # Do not install if already installed 1240 + if [[ ! -s ${datadir}/config/config.php ]]; then 1241 + ${occInstallCmd} 1242 + fi 1242 1243 1243 - # Do not install if already installed 1244 - if [[ ! -s ${datadir}/config/config.php ]]; then 1245 - ${occInstallCmd} 1246 - fi 1244 + ${lib.getExe occ} upgrade 1247 1245 1248 - ${lib.getExe occ} upgrade 1246 + ${lib.getExe occ} config:system:delete trusted_domains 1249 1247 1250 - ${lib.getExe occ} config:system:delete trusted_domains 1248 + ${lib.optionalString (cfg.extraAppsEnable && cfg.extraApps != { }) '' 1249 + # Try to enable apps 1250 + ${lib.getExe occ} app:enable ${lib.concatStringsSep " " (lib.attrNames cfg.extraApps)} 1251 + ''} 1251 1252 1252 - ${lib.optionalString (cfg.extraAppsEnable && cfg.extraApps != { }) '' 1253 - # Try to enable apps 1254 - ${lib.getExe occ} app:enable ${lib.concatStringsSep " " (lib.attrNames cfg.extraApps)} 1255 - ''} 1253 + ${occSetTrustedDomainsCmd} 1254 + ''; 1255 + serviceConfig.Type = "oneshot"; 1256 + serviceConfig.User = "nextcloud"; 1257 + serviceConfig.LoadCredential = [ 1258 + "adminpass:${cfg.config.adminpassFile}" 1259 + ] 1260 + ++ runtimeSystemdCredentials; 1261 + # On Nextcloud ≥ 26, it is not necessary to patch the database files to prevent 1262 + # an automatic creation of the database user. 1263 + environment.NC_setup_create_db_user = "false"; 1264 + }; 1265 + nextcloud-cron = { 1266 + after = [ "nextcloud-setup.service" ]; 1267 + # NOTE: In contrast to the occ wrapper script running phpCli directly will not 1268 + # set NEXTCLOUD_CONFIG_DIR by itself currently. 1269 + environment.NEXTCLOUD_CONFIG_DIR = "${datadir}/config"; 1270 + script = '' 1271 + # NOTE: This early returns the script when nextcloud is in maintenance mode 1272 + # or needs `occ upgrade`. Using ExecCondition= is not possible here 1273 + # because it doesn't work with systemd credentials. 1274 + if [[ $(${lib.getExe occ} status --output=json | ${lib.getExe pkgs.jq} '. | if .maintenance or .needsDbUpgrade then "skip" else "" end' --raw-output) == "skip" ]]; then 1275 + echo "Nextcloud is in maintenance mode or needs DB upgrade, exiting." 1276 + exit 0 1277 + fi 1256 1278 1257 - ${occSetTrustedDomainsCmd} 1279 + ${phpCli} -f ${webroot}/cron.php 1258 1280 ''; 1259 - serviceConfig.Type = "oneshot"; 1260 - serviceConfig.User = "nextcloud"; 1261 - serviceConfig.LoadCredential = [ 1262 - "adminpass:${cfg.config.adminpassFile}" 1263 - ] 1264 - ++ runtimeSystemdCredentials; 1265 - # On Nextcloud ≥ 26, it is not necessary to patch the database files to prevent 1266 - # an automatic creation of the database user. 1267 - environment.NC_setup_create_db_user = "false"; 1281 + serviceConfig = { 1282 + Type = "exec"; 1283 + User = "nextcloud"; 1284 + KillMode = "process"; 1285 + LoadCredential = runtimeSystemdCredentials; 1286 + }; 1268 1287 }; 1269 - nextcloud-cron = { 1270 - after = [ "nextcloud-setup.service" ]; 1271 - # NOTE: In contrast to the occ wrapper script running phpCli directly will not 1272 - # set NEXTCLOUD_CONFIG_DIR by itself currently. 1273 - environment.NEXTCLOUD_CONFIG_DIR = "${datadir}/config"; 1274 - script = '' 1275 - # NOTE: This early returns the script when nextcloud is in maintenance mode 1276 - # or needs `occ upgrade`. Using ExecCondition= is not possible here 1277 - # because it doesn't work with systemd credentials. 1278 - if [[ $(${lib.getExe occ} status --output=json | ${lib.getExe pkgs.jq} '. | if .maintenance or .needsDbUpgrade then "skip" else "" end' --raw-output) == "skip" ]]; then 1279 - echo "Nextcloud is in maintenance mode or needs DB upgrade, exiting." 1280 - exit 0 1281 - fi 1288 + nextcloud-update-plugins = lib.mkIf cfg.autoUpdateApps.enable { 1289 + after = [ "nextcloud-setup.service" ]; 1290 + serviceConfig = { 1291 + Type = "oneshot"; 1292 + ExecStart = "${lib.getExe occ} app:update --all"; 1293 + User = "nextcloud"; 1294 + LoadCredential = runtimeSystemdCredentials; 1295 + }; 1296 + startAt = cfg.autoUpdateApps.startAt; 1297 + }; 1298 + nextcloud-update-db = { 1299 + after = [ "nextcloud-setup.service" ]; 1300 + script = '' 1301 + # NOTE: This early returns the script when nextcloud is in maintenance mode 1302 + # or needs `occ upgrade`. Using ExecCondition= is not possible here 1303 + # because it doesn't work with systemd credentials. 1304 + if [[ $(${lib.getExe occ} status --output=json | ${lib.getExe pkgs.jq} '. | if .maintenance or .needsDbUpgrade then "skip" else "" end' --raw-output) == "skip" ]]; then 1305 + echo "Nextcloud is in maintenance mode or needs DB upgrade, exiting." 1306 + exit 0 1307 + fi 1282 1308 1283 - ${phpCli} -f ${webroot}/cron.php 1284 - ''; 1285 - serviceConfig = { 1286 - Type = "exec"; 1287 - User = "nextcloud"; 1288 - KillMode = "process"; 1289 - LoadCredential = runtimeSystemdCredentials; 1309 + ${lib.getExe occ} db:add-missing-columns 1310 + ${lib.getExe occ} db:add-missing-indices 1311 + ${lib.getExe occ} db:add-missing-primary-keys 1312 + ''; 1313 + serviceConfig = { 1314 + Type = "exec"; 1315 + User = "nextcloud"; 1316 + LoadCredential = runtimeSystemdCredentials; 1317 + }; 1290 1318 }; 1291 - }; 1292 - nextcloud-update-plugins = mkIf cfg.autoUpdateApps.enable { 1293 - after = [ "nextcloud-setup.service" ]; 1294 - serviceConfig = { 1295 - Type = "oneshot"; 1296 - ExecStart = "${lib.getExe occ} app:update --all"; 1297 - User = "nextcloud"; 1298 - LoadCredential = runtimeSystemdCredentials; 1319 + 1320 + phpfpm-nextcloud = { 1321 + # When upgrading the Nextcloud package, Nextcloud can report errors such as 1322 + # "The files of the app [all apps in /var/lib/nextcloud/apps] were not replaced correctly" 1323 + # Restarting phpfpm on Nextcloud package update fixes these issues (but this is a workaround). 1324 + restartTriggers = [ 1325 + webroot 1326 + overrideConfig 1327 + ]; 1328 + } 1329 + // lib.optionalAttrs requiresRuntimeSystemdCredentials { 1330 + serviceConfig.LoadCredential = runtimeSystemdCredentials; 1331 + 1332 + # FIXME: We use a hack to make the credential files readable by the nextcloud 1333 + # user by copying them somewhere else and overriding CREDENTIALS_DIRECTORY 1334 + # for php. This is currently necessary as the unit runs as root. 1335 + serviceConfig.RuntimeDirectory = lib.mkForce "phpfpm phpfpm-nextcloud"; 1336 + preStart = '' 1337 + umask 0077 1338 + 1339 + # NOTE: Runtime directories for this service are currently preserved 1340 + # between restarts. 1341 + rm -rf /run/phpfpm-nextcloud/credentials/ 1342 + mkdir -p /run/phpfpm-nextcloud/credentials/ 1343 + cp "$CREDENTIALS_DIRECTORY"/* /run/phpfpm-nextcloud/credentials/ 1344 + chown -R nextcloud:nextcloud /run/phpfpm-nextcloud/credentials/ 1345 + ''; 1299 1346 }; 1300 - startAt = cfg.autoUpdateApps.startAt; 1301 1347 }; 1302 - nextcloud-update-db = { 1303 - after = [ "nextcloud-setup.service" ]; 1304 - script = '' 1305 - # NOTE: This early returns the script when nextcloud is in maintenance mode 1306 - # or needs `occ upgrade`. Using ExecCondition= is not possible here 1307 - # because it doesn't work with systemd credentials. 1308 - if [[ $(${lib.getExe occ} status --output=json | ${lib.getExe pkgs.jq} '. | if .maintenance or .needsDbUpgrade then "skip" else "" end' --raw-output) == "skip" ]]; then 1309 - echo "Nextcloud is in maintenance mode or needs DB upgrade, exiting." 1310 - exit 0 1311 - fi 1312 1348 1313 - ${lib.getExe occ} db:add-missing-columns 1314 - ${lib.getExe occ} db:add-missing-indices 1315 - ${lib.getExe occ} db:add-missing-primary-keys 1316 - ''; 1317 - serviceConfig = { 1318 - Type = "exec"; 1319 - User = "nextcloud"; 1320 - LoadCredential = runtimeSystemdCredentials; 1349 + services.phpfpm = { 1350 + pools.nextcloud = { 1351 + user = "nextcloud"; 1352 + group = "nextcloud"; 1353 + phpPackage = phpPackage; 1354 + phpEnv = { 1355 + CREDENTIALS_DIRECTORY = "/run/phpfpm-nextcloud/credentials/"; 1356 + NEXTCLOUD_CONFIG_DIR = "${datadir}/config"; 1357 + PATH = "/run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/usr/bin:/bin"; 1358 + }; 1359 + settings = 1360 + lib.mapAttrs (name: lib.mkDefault) { 1361 + "listen.owner" = config.services.nginx.user; 1362 + "listen.group" = config.services.nginx.group; 1363 + } 1364 + // cfg.poolSettings; 1365 + extraConfig = cfg.poolConfig; 1321 1366 }; 1322 1367 }; 1323 1368 1324 - phpfpm-nextcloud = { 1325 - # When upgrading the Nextcloud package, Nextcloud can report errors such as 1326 - # "The files of the app [all apps in /var/lib/nextcloud/apps] were not replaced correctly" 1327 - # Restarting phpfpm on Nextcloud package update fixes these issues (but this is a workaround). 1328 - restartTriggers = [ 1329 - webroot 1330 - overrideConfig 1331 - ]; 1332 - } 1333 - // lib.optionalAttrs requiresRuntimeSystemdCredentials { 1334 - serviceConfig.LoadCredential = runtimeSystemdCredentials; 1369 + users.users.nextcloud = { 1370 + home = "${cfg.home}"; 1371 + group = "nextcloud"; 1372 + isSystemUser = true; 1373 + }; 1374 + users.groups.nextcloud.members = [ 1375 + "nextcloud" 1376 + config.services.nginx.user 1377 + ]; 1335 1378 1336 - # FIXME: We use a hack to make the credential files readable by the nextcloud 1337 - # user by copying them somewhere else and overriding CREDENTIALS_DIRECTORY 1338 - # for php. This is currently necessary as the unit runs as root. 1339 - serviceConfig.RuntimeDirectory = lib.mkForce "phpfpm phpfpm-nextcloud"; 1340 - preStart = '' 1341 - umask 0077 1379 + environment.systemPackages = [ occ ]; 1342 1380 1343 - # NOTE: Runtime directories for this service are currently preserved 1344 - # between restarts. 1345 - rm -rf /run/phpfpm-nextcloud/credentials/ 1346 - mkdir -p /run/phpfpm-nextcloud/credentials/ 1347 - cp "$CREDENTIALS_DIRECTORY"/* /run/phpfpm-nextcloud/credentials/ 1348 - chown -R nextcloud:nextcloud /run/phpfpm-nextcloud/credentials/ 1349 - ''; 1381 + services.mysql = lib.mkIf mysqlLocal { 1382 + enable = true; 1383 + package = lib.mkDefault pkgs.mariadb; 1384 + ensureDatabases = [ cfg.config.dbname ]; 1385 + ensureUsers = [ 1386 + { 1387 + name = cfg.config.dbuser; 1388 + ensurePermissions = { 1389 + "${cfg.config.dbname}.*" = "ALL PRIVILEGES"; 1390 + }; 1391 + } 1392 + ]; 1350 1393 }; 1351 - }; 1352 1394 1353 - services.phpfpm = { 1354 - pools.nextcloud = { 1355 - user = "nextcloud"; 1356 - group = "nextcloud"; 1357 - phpPackage = phpPackage; 1358 - phpEnv = { 1359 - CREDENTIALS_DIRECTORY = "/run/phpfpm-nextcloud/credentials/"; 1360 - NEXTCLOUD_CONFIG_DIR = "${datadir}/config"; 1361 - PATH = "/run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/usr/bin:/bin"; 1362 - }; 1363 - settings = 1364 - lib.mapAttrs (name: lib.mkDefault) { 1365 - "listen.owner" = config.services.nginx.user; 1366 - "listen.group" = config.services.nginx.group; 1395 + services.postgresql = lib.mkIf pgsqlLocal { 1396 + enable = true; 1397 + ensureDatabases = [ cfg.config.dbname ]; 1398 + ensureUsers = [ 1399 + { 1400 + name = cfg.config.dbuser; 1401 + ensureDBOwnership = true; 1367 1402 } 1368 - // cfg.poolSettings; 1369 - extraConfig = cfg.poolConfig; 1403 + ]; 1370 1404 }; 1371 - }; 1372 1405 1373 - users.users.nextcloud = { 1374 - home = "${cfg.home}"; 1375 - group = "nextcloud"; 1376 - isSystemUser = true; 1377 - }; 1378 - users.groups.nextcloud.members = [ 1379 - "nextcloud" 1380 - config.services.nginx.user 1381 - ]; 1406 + services.redis.servers.nextcloud = lib.mkIf cfg.configureRedis { 1407 + enable = true; 1408 + user = "nextcloud"; 1409 + }; 1382 1410 1383 - environment.systemPackages = [ occ ]; 1411 + services.nextcloud = { 1412 + caching.redis = lib.mkIf cfg.configureRedis true; 1413 + settings = lib.mkMerge [ 1414 + { 1415 + datadirectory = lib.mkDefault "${datadir}/data"; 1416 + trusted_domains = [ cfg.hostName ]; 1417 + "upgrade.disable-web" = true; 1418 + # NixOS already provides its own integrity check and the nix store is read-only, therefore Nextcloud does not need to do its own integrity checks. 1419 + "integrity.check.disabled" = true; 1420 + } 1421 + (lib.mkIf cfg.configureRedis { 1422 + "memcache.distributed" = ''\OC\Memcache\Redis''; 1423 + "memcache.locking" = ''\OC\Memcache\Redis''; 1424 + redis = { 1425 + host = config.services.redis.servers.nextcloud.unixSocket; 1426 + port = 0; 1427 + }; 1428 + }) 1429 + ]; 1430 + }; 1384 1431 1385 - services.mysql = lib.mkIf mysqlLocal { 1386 - enable = true; 1387 - package = lib.mkDefault pkgs.mariadb; 1388 - ensureDatabases = [ cfg.config.dbname ]; 1389 - ensureUsers = [ 1390 - { 1391 - name = cfg.config.dbuser; 1392 - ensurePermissions = { 1393 - "${cfg.config.dbname}.*" = "ALL PRIVILEGES"; 1432 + services.nginx.enable = lib.mkDefault true; 1433 + 1434 + services.nginx.virtualHosts.${cfg.hostName} = { 1435 + root = webroot; 1436 + locations = { 1437 + "= /robots.txt" = { 1438 + priority = 100; 1439 + extraConfig = '' 1440 + allow all; 1441 + access_log off; 1442 + ''; 1443 + }; 1444 + "= /" = { 1445 + priority = 100; 1446 + extraConfig = '' 1447 + if ( $http_user_agent ~ ^DavClnt ) { 1448 + return 302 /remote.php/webdav/$is_args$args; 1449 + } 1450 + ''; 1451 + }; 1452 + "^~ /.well-known" = { 1453 + priority = 210; 1454 + extraConfig = '' 1455 + absolute_redirect off; 1456 + location = /.well-known/carddav { 1457 + return 301 /remote.php/dav/; 1458 + } 1459 + location = /.well-known/caldav { 1460 + return 301 /remote.php/dav/; 1461 + } 1462 + location ~ ^/\.well-known/(?!acme-challenge|pki-validation) { 1463 + return 301 /index.php$request_uri; 1464 + } 1465 + try_files $uri $uri/ =404; 1466 + ''; 1467 + }; 1468 + "~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)" = { 1469 + priority = 450; 1470 + extraConfig = '' 1471 + return 404; 1472 + ''; 1473 + }; 1474 + "~ ^/(?:\\.|autotest|occ|issue|indie|db_|console)" = { 1475 + priority = 450; 1476 + extraConfig = '' 1477 + return 404; 1478 + ''; 1394 1479 }; 1395 - } 1396 - ]; 1397 - }; 1398 - 1399 - services.postgresql = mkIf pgsqlLocal { 1400 - enable = true; 1401 - ensureDatabases = [ cfg.config.dbname ]; 1402 - ensureUsers = [ 1403 - { 1404 - name = cfg.config.dbuser; 1405 - ensureDBOwnership = true; 1406 - } 1407 - ]; 1408 - }; 1409 - 1410 - services.redis.servers.nextcloud = lib.mkIf cfg.configureRedis { 1411 - enable = true; 1412 - user = "nextcloud"; 1413 - }; 1414 - 1415 - services.nextcloud = { 1416 - caching.redis = lib.mkIf cfg.configureRedis true; 1417 - settings = mkMerge [ 1418 - { 1419 - datadirectory = lib.mkDefault "${datadir}/data"; 1420 - trusted_domains = [ cfg.hostName ]; 1421 - "upgrade.disable-web" = true; 1422 - # NixOS already provides its own integrity check and the nix store is read-only, therefore Nextcloud does not need to do its own integrity checks. 1423 - "integrity.check.disabled" = true; 1424 - } 1425 - (lib.mkIf cfg.configureRedis { 1426 - "memcache.distributed" = ''\OC\Memcache\Redis''; 1427 - "memcache.locking" = ''\OC\Memcache\Redis''; 1428 - redis = { 1429 - host = config.services.redis.servers.nextcloud.unixSocket; 1430 - port = 0; 1480 + "~ \\.php(?:$|/)" = { 1481 + priority = 500; 1482 + extraConfig = '' 1483 + # legacy support (i.e. static files and directories in cfg.package) 1484 + rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|.+\/richdocumentscode(_arm64)?\/proxy) /index.php$request_uri; 1485 + include ${config.services.nginx.package}/conf/fastcgi.conf; 1486 + fastcgi_split_path_info ^(.+?\.php)(\\/.*)$; 1487 + set $path_info $fastcgi_path_info; 1488 + try_files $fastcgi_script_name =404; 1489 + fastcgi_param PATH_INFO $path_info; 1490 + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 1491 + fastcgi_param HTTPS ${if cfg.https then "on" else "off"}; 1492 + fastcgi_param modHeadersAvailable true; 1493 + fastcgi_param front_controller_active true; 1494 + fastcgi_pass unix:${fpm.socket}; 1495 + fastcgi_intercept_errors on; 1496 + fastcgi_request_buffering ${if cfg.nginx.enableFastcgiRequestBuffering then "on" else "off"}; 1497 + fastcgi_read_timeout ${builtins.toString cfg.fastcgiTimeout}s; 1498 + ''; 1431 1499 }; 1432 - }) 1433 - ]; 1434 - }; 1435 - 1436 - services.nginx.enable = lib.mkDefault true; 1437 - 1438 - services.nginx.virtualHosts.${cfg.hostName} = { 1439 - root = webroot; 1440 - locations = { 1441 - "= /robots.txt" = { 1442 - priority = 100; 1443 - extraConfig = '' 1444 - allow all; 1445 - access_log off; 1500 + "~ \\.(?:css|js|mjs|svg|gif|ico|jpg|jpeg|png|webp|wasm|tflite|map|html|ttf|bcmap|mp4|webm|ogg|flac)$".extraConfig = 1501 + '' 1502 + try_files $uri /index.php$request_uri; 1503 + expires 6M; 1504 + access_log off; 1505 + location ~ \.mjs$ { 1506 + default_type text/javascript; 1507 + } 1508 + location ~ \.wasm$ { 1509 + default_type application/wasm; 1510 + } 1511 + ''; 1512 + "~ ^\\/(?:updater|ocs-provider)(?:$|\\/)".extraConfig = '' 1513 + try_files $uri/ =404; 1514 + index index.php; 1446 1515 ''; 1516 + "/remote" = { 1517 + priority = 1500; 1518 + extraConfig = '' 1519 + return 301 /remote.php$request_uri; 1520 + ''; 1521 + }; 1522 + "/" = { 1523 + priority = 1600; 1524 + extraConfig = '' 1525 + try_files $uri $uri/ /index.php$request_uri; 1526 + ''; 1527 + }; 1447 1528 }; 1448 - "= /" = { 1449 - priority = 100; 1450 - extraConfig = '' 1451 - if ( $http_user_agent ~ ^DavClnt ) { 1452 - return 302 /remote.php/webdav/$is_args$args; 1453 - } 1454 - ''; 1455 - }; 1456 - "^~ /.well-known" = { 1457 - priority = 210; 1458 - extraConfig = '' 1459 - absolute_redirect off; 1460 - location = /.well-known/carddav { 1461 - return 301 /remote.php/dav/; 1462 - } 1463 - location = /.well-known/caldav { 1464 - return 301 /remote.php/dav/; 1465 - } 1466 - location ~ ^/\.well-known/(?!acme-challenge|pki-validation) { 1467 - return 301 /index.php$request_uri; 1468 - } 1469 - try_files $uri $uri/ =404; 1470 - ''; 1471 - }; 1472 - "~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)" = { 1473 - priority = 450; 1474 - extraConfig = '' 1475 - return 404; 1476 - ''; 1477 - }; 1478 - "~ ^/(?:\\.|autotest|occ|issue|indie|db_|console)" = { 1479 - priority = 450; 1480 - extraConfig = '' 1481 - return 404; 1482 - ''; 1483 - }; 1484 - "~ \\.php(?:$|/)" = { 1485 - priority = 500; 1486 - extraConfig = '' 1487 - # legacy support (i.e. static files and directories in cfg.package) 1488 - rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|.+\/richdocumentscode(_arm64)?\/proxy) /index.php$request_uri; 1489 - include ${config.services.nginx.package}/conf/fastcgi.conf; 1490 - fastcgi_split_path_info ^(.+?\.php)(\\/.*)$; 1491 - set $path_info $fastcgi_path_info; 1492 - try_files $fastcgi_script_name =404; 1493 - fastcgi_param PATH_INFO $path_info; 1494 - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 1495 - fastcgi_param HTTPS ${if cfg.https then "on" else "off"}; 1496 - fastcgi_param modHeadersAvailable true; 1497 - fastcgi_param front_controller_active true; 1498 - fastcgi_pass unix:${fpm.socket}; 1499 - fastcgi_intercept_errors on; 1500 - fastcgi_request_buffering ${if cfg.nginx.enableFastcgiRequestBuffering then "on" else "off"}; 1501 - fastcgi_read_timeout ${builtins.toString cfg.fastcgiTimeout}s; 1502 - ''; 1503 - }; 1504 - "~ \\.(?:css|js|mjs|svg|gif|ico|jpg|jpeg|png|webp|wasm|tflite|map|html|ttf|bcmap|mp4|webm|ogg|flac)$".extraConfig = 1505 - '' 1506 - try_files $uri /index.php$request_uri; 1507 - expires 6M; 1508 - access_log off; 1509 - location ~ \.mjs$ { 1510 - default_type text/javascript; 1511 - } 1512 - location ~ \.wasm$ { 1513 - default_type application/wasm; 1514 - } 1515 - ''; 1516 - "~ ^\\/(?:updater|ocs-provider)(?:$|\\/)".extraConfig = '' 1517 - try_files $uri/ =404; 1518 - index index.php; 1529 + extraConfig = '' 1530 + index index.php index.html /index.php$request_uri; 1531 + ${lib.optionalString (cfg.nginx.recommendedHttpHeaders) '' 1532 + add_header X-Content-Type-Options nosniff; 1533 + add_header X-XSS-Protection "1; mode=block"; 1534 + add_header X-Robots-Tag "noindex, nofollow"; 1535 + add_header X-Permitted-Cross-Domain-Policies none; 1536 + add_header X-Frame-Options sameorigin; 1537 + add_header Referrer-Policy no-referrer; 1538 + ''} 1539 + ${lib.optionalString (cfg.https) '' 1540 + add_header Strict-Transport-Security "max-age=${toString cfg.nginx.hstsMaxAge}; includeSubDomains" always; 1541 + ''} 1542 + client_max_body_size ${cfg.maxUploadSize}; 1543 + fastcgi_buffers 64 4K; 1544 + fastcgi_hide_header X-Powered-By; 1545 + gzip on; 1546 + gzip_vary on; 1547 + gzip_comp_level 4; 1548 + gzip_min_length 256; 1549 + gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; 1550 + gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; 1551 + 1552 + ${lib.optionalString cfg.webfinger '' 1553 + rewrite ^/.well-known/host-meta /public.php?service=host-meta last; 1554 + rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; 1555 + ''} 1519 1556 ''; 1520 - "/remote" = { 1521 - priority = 1500; 1522 - extraConfig = '' 1523 - return 301 /remote.php$request_uri; 1524 - ''; 1525 - }; 1526 - "/" = { 1527 - priority = 1600; 1528 - extraConfig = '' 1529 - try_files $uri $uri/ /index.php$request_uri; 1530 - ''; 1531 - }; 1532 1557 }; 1533 - extraConfig = '' 1534 - index index.php index.html /index.php$request_uri; 1535 - ${lib.optionalString (cfg.nginx.recommendedHttpHeaders) '' 1536 - add_header X-Content-Type-Options nosniff; 1537 - add_header X-XSS-Protection "1; mode=block"; 1538 - add_header X-Robots-Tag "noindex, nofollow"; 1539 - add_header X-Permitted-Cross-Domain-Policies none; 1540 - add_header X-Frame-Options sameorigin; 1541 - add_header Referrer-Policy no-referrer; 1542 - ''} 1543 - ${lib.optionalString (cfg.https) '' 1544 - add_header Strict-Transport-Security "max-age=${toString cfg.nginx.hstsMaxAge}; includeSubDomains" always; 1545 - ''} 1546 - client_max_body_size ${cfg.maxUploadSize}; 1547 - fastcgi_buffers 64 4K; 1548 - fastcgi_hide_header X-Powered-By; 1549 - gzip on; 1550 - gzip_vary on; 1551 - gzip_comp_level 4; 1552 - gzip_min_length 256; 1553 - gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; 1554 - gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; 1555 - 1556 - ${lib.optionalString cfg.webfinger '' 1557 - rewrite ^/.well-known/host-meta /public.php?service=host-meta last; 1558 - rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; 1559 - ''} 1560 - ''; 1561 - }; 1562 - } 1563 - ]); 1558 + } 1559 + ] 1560 + ); 1564 1561 1565 1562 meta.doc = ./nextcloud.md; 1566 1563 meta.maintainers = lib.teams.nextcloud.members;
+1 -1
nixos/modules/virtualisation/oci-containers.nix
··· 494 494 filterAttrs (_: v: v == false) container.capabilities 495 495 ) 496 496 ++ map (d: "--device=${escapeShellArg d}") container.devices 497 - ++ map (n: "--network=${escapeShellArg n}") container.networks 497 + ++ map (n: "--network=${escapeShellArg n}") (lib.lists.unique container.networks) 498 498 ++ [ "--pull ${escapeShellArg container.pull}" ] 499 499 ++ map escapeShellArg container.extraOptions 500 500 ++ [ container.image ]
+6 -1
nixos/tests/all-terminfo.nix
··· 13 13 ... 14 14 }: 15 15 let 16 + # Use derivations instead of attr names to avoid listing missing packages 17 + maskedTerminfos = with pkgs; [ 18 + alacritty-graphics # would clobber alacritty terminfo 19 + ]; 16 20 infoFilter = 17 21 name: drv: 18 22 let ··· 23 27 && o.value ? outputs 24 28 && builtins.elem "terminfo" o.value.outputs 25 29 && !o.value.meta.broken 26 - && lib.meta.availableOn pkgs.stdenv.hostPlatform o.value; 30 + && lib.meta.availableOn pkgs.stdenv.hostPlatform o.value 31 + && !(builtins.elem o.value maskedTerminfos); 27 32 terminfos = lib.filterAttrs infoFilter pkgs; 28 33 excludedTerminfos = lib.filterAttrs ( 29 34 _: drv: !(builtins.elem drv.terminfo config.environment.systemPackages)
+1
nixos/tests/all-tests.nix
··· 1123 1123 osquery = handleTestOn [ "x86_64-linux" ] ./osquery.nix { }; 1124 1124 osrm-backend = runTest ./osrm-backend.nix; 1125 1125 overlayfs = runTest ./overlayfs.nix; 1126 + oxidized = handleTest ./oxidized.nix { }; 1126 1127 pacemaker = runTest ./pacemaker.nix; 1127 1128 packagekit = runTest ./packagekit.nix; 1128 1129 paisa = runTest ./paisa.nix;
+104
nixos/tests/oxidized.nix
··· 1 + { 2 + system ? builtins.currentSystem, 3 + pkgs ? import ../.. { 4 + inherit system; 5 + config = { }; 6 + }, 7 + }: 8 + 9 + let 10 + inherit (import ../lib/testing-python.nix { inherit system pkgs; }) makeTest; 11 + in 12 + makeTest { 13 + name = "oxidized"; 14 + 15 + nodes.server = 16 + { config, pkgs, ... }: 17 + { 18 + security.pam.services.sshd.allowNullPassword = true; # the default `UsePam yes` makes this necessary 19 + services = { 20 + sshd.enable = true; 21 + openssh = { 22 + settings.PermitRootLogin = "yes"; 23 + settings.PermitEmptyPasswords = "yes"; 24 + }; 25 + oxidized = { 26 + enable = true; 27 + package = pkgs.oxidized; 28 + routerDB = pkgs.writeText "oxidized-router.db" '' 29 + localhost:linuxgeneric:root 30 + ''; 31 + configFile = pkgs.writeText "oxidized-config.yml" '' 32 + # vi: ft=yaml 33 + --- 34 + extensions: 35 + oxidized-web: 36 + load: true 37 + listen: 127.0.0.1 38 + port: 8888 39 + vhosts: 40 + - localhost 41 + - 127.0.0.1 42 + - oxidized 43 + - oxidized.example.com 44 + interval: 3600 45 + retries: 3 46 + model: linuxgeneric 47 + username: root 48 + source: 49 + default: csv 50 + csv: 51 + file: "/var/lib/oxidized/.config/oxidized/router.db" 52 + delimiter: !ruby/regexp /:/ 53 + map: 54 + name: 0 55 + model: 1 56 + username: 2 57 + password: 3 58 + vars_map: 59 + enable: 4 60 + input: 61 + default: ssh 62 + utf8_encoded: true 63 + output: 64 + default: git 65 + git: 66 + single_repo: true 67 + user: oxidized 68 + email: oxidized@example.com 69 + repo: /var/lib/oxidized/git 70 + ''; 71 + }; 72 + }; 73 + systemd.services.oxidized = { 74 + stopIfChanged = false; 75 + environment.HOME = "/var/lib/oxidized"; 76 + environment.APP_ENV = "production"; 77 + serviceConfig = { 78 + StateDirectory = "oxidized"; 79 + MemoryDenyWriteExecute = false; 80 + 81 + PrivateNetwork = false; 82 + SystemCallFilter = "@system-service"; 83 + }; 84 + 85 + path = [ config.programs.ssh.package ]; 86 + }; 87 + 88 + }; 89 + 90 + testScript = 91 + { nodes, ... }: 92 + '' 93 + start_all() 94 + 95 + server.wait_for_unit("oxidized.service") 96 + 97 + with subtest("Check if oxidized reports the correct version"): 98 + server.wait_until_succeeds(("curl --silent --fail --location http://127.0.0.1:8888/ | grep '${nodes.server.services.oxidized.package.version}' >&2")) 99 + with subtest("Check if oxidized can be accessed with a vhost and reports the correct version"): 100 + server.wait_until_succeeds(("curl --silent --fail --resolve oxidized:8888:127.0.0.1 --location http://oxidized:8888/ | grep '${nodes.server.services.oxidized.package.version}' >&2")) 101 + with subtest("Check if oxidized can connect to linuxgeneric model"): 102 + server.wait_until_succeeds("journalctl -b --grep 'Oxidized::Worker -- Configuration updated for /localhost' -t oxidized") 103 + ''; 104 + }
+2 -2
pkgs/applications/editors/android-studio/default.nix
··· 24 24 sha256Hash = "sha256-qA7iu4nK+29aHKsUmyQWuwV0SFnv5cYQvFq5CAMKyKw="; 25 25 }; 26 26 latestVersion = { 27 - version = "2025.1.3.3"; # "Android Studio Narwhal Feature Drop | 2025.1.3 Canary 3" 28 - sha256Hash = "sha256-0BdbAJMQi9qgss1IJTMxjQpOjynLFuiY0Vlw5VYCY+c="; 27 + version = "2025.1.3.4"; # "Android Studio Narwhal 3 Feature Drop | 2025.1.3 Canary 4" 28 + sha256Hash = "sha256-SAdmuuentJZGtjcFAgAedPa9MLAS9vNtWoOI1pPvDhA="; 29 29 }; 30 30 in 31 31 {
+3 -3
pkgs/applications/emulators/libretro/cores/ppsspp.nix
··· 13 13 }: 14 14 mkLibretroCore { 15 15 core = "ppsspp"; 16 - version = "0-unstable-2025-07-16"; 16 + version = "0-unstable-2025-08-11"; 17 17 18 18 src = fetchFromGitHub { 19 19 owner = "hrydgard"; 20 20 repo = "ppsspp"; 21 - rev = "e68cec63d0d5d89442ddfab5b425c73e2bb5eb35"; 22 - hash = "sha256-xNh+McD/oGBKTcnhQgM3zCZhX4Q7IOf9CcdIJJvqM4g="; 21 + rev = "9912aa5c8d3b95165c56e29ffaa50069aeae0860"; 22 + hash = "sha256-5snyC0hk1VqYH4aqz4E7ukPyOLrDVZwDsw3LPdHDSzM="; 23 23 fetchSubmodules = true; 24 24 }; 25 25
+15 -13
pkgs/applications/misc/slstatus/default.nix pkgs/by-name/sl/slstatus/package.nix
··· 1 1 { 2 2 lib, 3 3 stdenv, 4 - fetchgit, 4 + fetchzip, 5 5 pkg-config, 6 6 writeText, 7 7 libX11, 8 8 libXau, 9 9 libXdmcp, 10 - conf ? null, 11 - patches ? [ ], 10 + config, 11 + conf ? config.slstatus.conf or null, 12 + patches ? config.slstatus.patches or [ ], 13 + extraLibs ? config.slstatus.extraLibs or [ ], 12 14 # update script dependencies 13 15 gitUpdater, 14 16 }: 15 17 16 - stdenv.mkDerivation rec { 18 + stdenv.mkDerivation (finalAttrs: { 17 19 pname = "slstatus"; 18 20 version = "1.1"; 19 21 20 - src = fetchgit { 21 - url = "https://git.suckless.org/slstatus"; 22 - rev = version; 22 + src = fetchzip { 23 + url = "https://dl.suckless.org/tools/slstatus-${finalAttrs.version}.tar.gz"; 23 24 hash = "sha256-MRDovZpQsvnLEvsbJNBzprkzQQ4nIs1T9BLT+tSGta8="; 24 25 }; 25 26 ··· 40 41 libX11 41 42 libXau 42 43 libXdmcp 43 - ]; 44 + ] 45 + ++ extraLibs; 44 46 45 47 installFlags = [ "PREFIX=$(out)" ]; 46 48 47 49 passthru.updateScript = gitUpdater { }; 48 50 49 - meta = with lib; { 51 + meta = { 50 52 homepage = "https://tools.suckless.org/slstatus/"; 51 53 description = "Status monitor for window managers that use WM_NAME like dwm"; 52 - license = licenses.isc; 53 - maintainers = with maintainers; [ 54 + license = lib.licenses.isc; 55 + maintainers = with lib.maintainers; [ 54 56 oxzi 55 57 qusic 56 58 ]; 57 - platforms = platforms.linux; 59 + platforms = lib.platforms.linux; 58 60 mainProgram = "slstatus"; 59 61 }; 60 - } 62 + })
+4
pkgs/applications/networking/maestral-qt/default.nix
··· 52 52 "--prefix PYTHONPATH : ${makePythonPath [ maestral ]}" 53 53 ]; 54 54 55 + postInstall = '' 56 + install -Dm444 -t $out/share/icons/hicolor/512x512/apps src/maestral_qt/resources/maestral.png 57 + ''; 58 + 55 59 # no tests 56 60 doCheck = false; 57 61
+1 -6
pkgs/applications/science/math/cemu-ti/default.nix
··· 46 46 homepage = "https://ce-programming.github.io/CEmu"; 47 47 license = licenses.gpl3Plus; 48 48 maintainers = with maintainers; [ ]; 49 - platforms = [ 50 - "x86_64-linux" 51 - "x86_64-darwin" 52 - "aarch64-linux" 53 - ]; 54 - broken = stdenv.hostPlatform.isDarwin || (stdenv.system == "x86_64-linux"); 49 + platforms = lib.platforms.unix; 55 50 }; 56 51 })
+46
pkgs/by-name/an/analyze-build/package.nix
··· 1 + { 2 + lib, 3 + llvmPackages, 4 + python3, 5 + }: 6 + let 7 + inherit (llvmPackages) clang-unwrapped; 8 + in 9 + python3.pkgs.buildPythonApplication rec { 10 + pname = "analyze-build"; 11 + inherit (clang-unwrapped) version; 12 + 13 + format = "other"; 14 + 15 + src = clang-unwrapped + "/bin"; 16 + 17 + dontUnpack = true; 18 + 19 + dependencies = with python3.pkgs; [ 20 + libscanbuild 21 + ]; 22 + 23 + installPhase = '' 24 + mkdir -p "$out/bin" 25 + install "$src/analyze-build" "$out/bin/" 26 + ''; 27 + 28 + makeWrapperArgs = [ 29 + "--prefix" 30 + "PATH" 31 + ":" 32 + (lib.makeBinPath [ clang-unwrapped ]) 33 + ]; 34 + 35 + meta = { 36 + description = "run Clang static analyzer against a project with compilation database"; 37 + homepage = "https://github.com/llvm/llvm-project/tree/llvmorg-${version}/clang/tools/scan-build-py/"; 38 + mainProgram = "scan-build"; 39 + license = with lib.licenses; [ 40 + asl20 41 + llvm-exception 42 + ]; 43 + maintainers = with lib.maintainers; [ RossSmyth ]; 44 + platforms = lib.intersectLists python3.meta.platforms clang-unwrapped.meta.platforms; 45 + }; 46 + }
+2 -2
pkgs/by-name/as/asn/package.nix
··· 16 16 17 17 stdenv.mkDerivation rec { 18 18 pname = "asn"; 19 - version = "0.78.3"; 19 + version = "0.78.6"; 20 20 21 21 src = fetchFromGitHub { 22 22 owner = "nitefood"; 23 23 repo = "asn"; 24 24 tag = "v${version}"; 25 - hash = "sha256-ydCpCmW6NK3LM05YLw6KtJWo7UtMcsxQt2RH/Xl+bFw="; 25 + hash = "sha256-IcAXcsmzxzDUPJp2ieouxfkpdwpOZP6IBTPdm3C5/k4="; 26 26 }; 27 27 28 28 nativeBuildInputs = [
+3 -3
pkgs/by-name/as/ast-grep/package.nix
··· 11 11 12 12 rustPlatform.buildRustPackage (finalAttrs: { 13 13 pname = "ast-grep"; 14 - version = "0.39.2"; 14 + version = "0.39.3"; 15 15 16 16 src = fetchFromGitHub { 17 17 owner = "ast-grep"; 18 18 repo = "ast-grep"; 19 19 tag = finalAttrs.version; 20 - hash = "sha256-RfsBgxxb9Kd28hzDXNBNFEwpRchxt+VmSMwc2wRDuig="; 20 + hash = "sha256-oUVsfR5azu4i6irCQL1CXCWA8ygIHK+dpWC/grbkSyk="; 21 21 }; 22 22 23 23 # error: linker `aarch64-linux-gnu-gcc` not found ··· 25 25 rm .cargo/config.toml 26 26 ''; 27 27 28 - cargoHash = "sha256-5SDGkOeByG8SUQJH/89TLuEJeKcu9lu/ZKbudwCAM0o="; 28 + cargoHash = "sha256-BX5OAwIZzl9dm7ebw/zyJ2ICVpzCcHUVRTyUDMY4fH0="; 29 29 30 30 nativeBuildInputs = [ installShellFiles ]; 31 31
+2 -2
pkgs/by-name/au/autobase/package.nix
··· 7 7 8 8 buildNpmPackage (finalAttrs: { 9 9 pname = "autobase"; 10 - version = "7.17.0"; 10 + version = "7.17.3"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "holepunchto"; 14 14 repo = "autobase"; 15 15 tag = "v${finalAttrs.version}"; 16 - hash = "sha256-KSx9zOnoJouH2sAByG0947uxgqPu9cx3fTbA2MDiMt4="; 16 + hash = "sha256-RTbK1U63gNuUN81ceJVjFzqNtg0kfvfq8DiLEpDXJq0="; 17 17 }; 18 18 19 19 npmDepsHash = "sha256-H9Xy1VD7WQvi0+86v6CMcmc0L3mB6KuSCtgQSF4AlkY=";
+4 -5
pkgs/by-name/be/beszel/package.nix
··· 5 5 nix-update-script, 6 6 buildNpmPackage, 7 7 }: 8 - 9 8 buildGoModule rec { 10 9 pname = "beszel"; 11 - version = "0.11.1"; 10 + version = "0.12.3"; 12 11 13 12 src = fetchFromGitHub { 14 13 owner = "henrygd"; 15 14 repo = "beszel"; 16 15 tag = "v${version}"; 17 - hash = "sha256-tAi48PAHDGIZn/HMsnCq0mLpvFSqUOMocq47hooiFT8="; 16 + hash = "sha256-rthaufUL0JX3sE2hdrcJ8J73DLK4/2wMR+uOs8GoX2A="; 18 17 }; 19 18 20 19 webui = buildNpmPackage { ··· 48 47 49 48 sourceRoot = "${src.name}/beszel/site"; 50 49 51 - npmDepsHash = "sha256-27NUV23dNHFSwOHiB/wGSAWkp6eZMnw/6Pd3Fwn98+s="; 50 + npmDepsHash = "sha256-6J1LwRzwbQyXVBHNgG7k8CQ67JZIDqYreDbgfm6B4w4="; 52 51 }; 53 52 54 53 sourceRoot = "${src.name}/beszel"; 55 54 56 - vendorHash = "sha256-B6mOqOgcrRn0jV9wnDgRmBvfw7I/Qy5MNYvTiaCgjBE="; 55 + vendorHash = "sha256-Nd2jDlq+tdGrgxU6ZNgj9awAb+G/yDqY1J15dpMcjtw="; 57 56 58 57 preBuild = '' 59 58 mkdir -p site/dist
+10 -12
pkgs/by-name/ca/calamares-nixos-extensions/package.nix
··· 1 1 { 2 2 stdenv, 3 - fetchFromGitHub, 4 3 lib, 4 + glibcLocales, 5 5 }: 6 6 7 7 stdenv.mkDerivation (finalAttrs: { 8 8 pname = "calamares-nixos-extensions"; 9 9 version = "0.3.23"; 10 10 11 - src = fetchFromGitHub { 12 - owner = "NixOS"; 13 - repo = "calamares-nixos-extensions"; 14 - rev = finalAttrs.version; 15 - hash = "sha256-KNRztajU7sTLNDwCwP4WOdR2IRMqfbeapdko58LcrjM="; 16 - }; 11 + src = ./src; 17 12 18 13 installPhase = '' 19 14 runHook preInstall 20 - mkdir -p $out/{lib,share}/calamares 15 + mkdir -p $out/{etc,lib,share}/calamares 21 16 cp -r modules $out/lib/calamares/ 22 - cp -r config/* $out/share/calamares/ 17 + cp -r config/* $out/etc/calamares/ 23 18 cp -r branding $out/share/calamares/ 19 + 20 + substituteInPlace $out/etc/calamares/settings.conf --replace-fail @out@ $out 21 + substituteInPlace $out/etc/calamares/modules/locale.conf --replace-fail @glibcLocales@ ${glibcLocales} 22 + 24 23 runHook postInstall 25 24 ''; 26 25 ··· 28 27 description = "Calamares modules for NixOS"; 29 28 homepage = "https://github.com/NixOS/calamares-nixos-extensions"; 30 29 license = with licenses; [ 31 - gpl3Plus 32 - bsd2 30 + mit 31 + # assets 33 32 cc-by-40 34 33 cc-by-sa-40 35 - cc0 36 34 ]; 37 35 maintainers = with maintainers; [ vlinkz ]; 38 36 platforms = platforms.linux;
+233
pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/branding.desc
··· 1 + # SPDX-FileCopyrightText: no 2 + # SPDX-License-Identifier: CC0-1.0 3 + # 4 + --- 5 + componentName: nixos 6 + 7 + 8 + ### WELCOME / OVERALL WORDING 9 + # 10 + # These settings affect some overall phrasing and looks, 11 + # which are most visible in the welcome page. 12 + 13 + # This selects between different welcome texts. When false, uses 14 + # the traditional "Welcome to the %1 installer.", and when true, 15 + # uses "Welcome to the Calamares installer for %1." This allows 16 + # to distinguish this installer from other installers for the 17 + # same distribution. 18 + welcomeStyleCalamares: false 19 + 20 + # Should the welcome image (productWelcome, below) be scaled 21 + # up beyond its natural size? If false, the image does not grow 22 + # with the window but remains the same size throughout (this 23 + # may have surprising effects on HiDPI monitors). 24 + welcomeExpandingLogo: true 25 + 26 + ### WINDOW CONFIGURATION 27 + # 28 + # The settings here affect the placement of the Calamares 29 + # window through hints to the window manager and initial 30 + # sizing of the Calamares window. 31 + 32 + # Size and expansion policy for Calamares. 33 + # - "normal" or unset, expand as needed, use *windowSize* 34 + # - "fullscreen", start as large as possible, ignore *windowSize* 35 + # - "noexpand", don't expand automatically, use *windowSize* 36 + windowExpanding: normal 37 + 38 + # Size of Calamares window, expressed as w,h. Both w and h 39 + # may be either pixels (suffix px) or font-units (suffix em). 40 + # e.g. "800px,600px" 41 + # "60em,480px" 42 + # This setting is ignored if "fullscreen" is selected for 43 + # *windowExpanding*, above. If not set, use constants defined 44 + # in CalamaresUtilsGui, 800x520. 45 + windowSize: 800px,520px 46 + 47 + # Placement of Calamares window. Either "center" or "free". 48 + # Whether "center" actually works does depend on the window 49 + # manager in use (and only makes sense if you're not using 50 + # *windowExpanding* set to "fullscreen"). 51 + windowPlacement: center 52 + 53 + ### PANELS CONFIGURATION 54 + # 55 + # Calamares has a main content area, and two panels (navigation 56 + # and progress / sidebar). The panels can be controlled individually, 57 + # or switched off. If both panels are switched off, the layout of 58 + # the main content area loses its margins, on the assumption that 59 + # you're doing something special. 60 + 61 + # Kind of sidebar (panel on the left, showing progress). 62 + # - "widget" or unset, use traditional sidebar (logo, items) 63 + # - "none", hide it entirely 64 + # - "qml", use calamares-sidebar.qml from branding folder 65 + # In addition, you **may** specify a side, separated by a comma, 66 + # from the kind. Valid sides are: 67 + # - "left" (if not specified, uses this) 68 + # - "right" 69 + # - "top" 70 + # - "bottom" 71 + # For instance, "widget,right" is valid; so is "qml", which defaults 72 + # to putting the sidebar on the left. Also valid is "qml,top". 73 + # While "widget,top" is valid, the widgets code is **not** flexible 74 + # and results will be terrible. 75 + sidebar: widget 76 + 77 + # Kind of navigation (button panel on the bottom). 78 + # - "widget" or unset, use traditional navigation 79 + # - "none", hide it entirely 80 + # - "qml", use calamares-navigation.qml from branding folder 81 + # In addition, you **may** specify a side, separated by a comma, 82 + # from the kind. The same sides are valid as for *sidebar*, 83 + # except the default is *bottom*. 84 + navigation: widget 85 + 86 + 87 + ### STRINGS, IMAGES AND COLORS 88 + # 89 + # This section contains the "branding proper" of names 90 + # and images, rather than global-look settings. 91 + 92 + # These are strings shown to the user in the user interface. 93 + # There is no provision for translating them -- since they 94 + # are names, the string is included as-is. 95 + # 96 + # The four Url strings are the Urls used by the buttons in 97 + # the welcome screen, and are not shown to the user. Clicking 98 + # on the "Support" button, for instance, opens the link supportUrl. 99 + # If a Url is empty, the corresponding button is not shown. 100 + # 101 + # bootloaderEntryName is how this installation / distro is named 102 + # in the boot loader (e.g. in the GRUB menu). 103 + # 104 + # These strings support substitution from /etc/os-release 105 + # if KDE Frameworks 5.58 are available at build-time. When 106 + # enabled, ${varname} is replaced by the equivalent value 107 + # from os-release. All the supported var-names are in all-caps, 108 + # and are listed on the FreeDesktop.org site, 109 + # https://www.freedesktop.org/software/systemd/man/os-release.html 110 + # Note that ANSI_COLOR and CPE_NAME don't make sense here, and 111 + # are not supported (the rest are). Remember to quote the string 112 + # if it contains substitutions, or you'll get YAML exceptions. 113 + # 114 + # The *Url* entries are used on the welcome page, and they 115 + # are visible as buttons there if the corresponding *show* keys 116 + # are set to "true" (they can also be overridden). 117 + strings: 118 + productName: "${NAME}" 119 + shortProductName: NixOS 120 + version: 121 + shortVersion: 122 + versionedName: NixOS 123 + shortVersionedName: NixOS 124 + bootloaderEntryName: NixOS 125 + productUrl: https://nixos.org/ 126 + supportUrl: https://nixos.org/manual/nixos 127 + knownIssuesUrl: https://github.com/NixOS/nixpkgs/issues 128 + releaseNotesUrl: https://nixos.org/manual/nixos/stable/release-notes.html 129 + donateUrl: https://nixos.org/donate.html 130 + 131 + # These images are loaded from the branding module directory. 132 + # 133 + # productBanner is an optional image, which if present, will be shown 134 + # on the welcome page of the application, above the welcome text. 135 + # It is intended to have a width much greater than height. 136 + # It is displayed at 64px height (also on HiDPI). 137 + # Recommended size is 64px tall, and up to 460px wide. 138 + # productIcon is used as the window icon, and will (usually) be used 139 + # by the window manager to represent the application. This image 140 + # should be square, and may be displayed by the window manager 141 + # as small as 16x16 (but possibly larger). 142 + # productLogo is used as the logo at the top of the left-hand column 143 + # which shows the steps to be taken. The image should be square, 144 + # and is displayed at 80x80 pixels (also on HiDPI). 145 + # productWallpaper is an optional image, which if present, will replace 146 + # the normal solid background on every page of the application. 147 + # It can be any size and proportion, 148 + # and will be tiled to fit the entire window. 149 + # For a non-tiled wallpaper, the size should be the same as 150 + # the overall window, see *windowSize* above (800x520). 151 + # productWelcome is shown on the welcome page of the application in 152 + # the middle of the window, below the welcome text. It can be 153 + # any size and proportion, and will be scaled to fit inside 154 + # the window. Use `welcomeExpandingLogo` to make it non-scaled. 155 + # Recommended size is 320x150. 156 + # 157 + # These filenames can also use substitutions from os-release (see above). 158 + images: 159 + # productBanner: "banner.png" 160 + productIcon: "nix-snowflake.svg" 161 + productLogo: "white.png" 162 + # productWallpaper: "wallpaper.png" 163 + productWelcome: "nix-snowflake.svg" 164 + 165 + # Colors for text and background components. 166 + # 167 + # - SidebarBackground is the background of the sidebar 168 + # - SidebarText is the (foreground) text color 169 + # - SidebarBackgroundCurrent sets the background of the current step. 170 + # Optional, and defaults to the application palette. 171 + # - SidebarTextCurrent is the text color of the current step. 172 + # 173 + # These colors can **also** be set through the stylesheet, if the 174 + # branding component also ships a stylesheet.qss. Then they are 175 + # the corresponding CSS attributes of #sidebarApp. 176 + style: 177 + SidebarBackground: "#5277C3" 178 + SidebarText: "#FFFFFF" 179 + SidebarTextCurrent: "#292F34" 180 + SidebarBackgroundCurrent: "#7EBAE4" 181 + 182 + ### SLIDESHOW 183 + # 184 + # The slideshow is displayed during execution steps (e.g. when the 185 + # installer is actually writing to disk and doing other slow things). 186 + 187 + # The slideshow can be a QML file (recommended) which can display 188 + # arbitrary things -- text, images, animations, or even play a game -- 189 + # during the execution step. The QML **is** abruptly stopped when the 190 + # execution step is done, though, so maybe a game isn't a great idea. 191 + # 192 + # The slideshow can also be a sequence of images (not recommended unless 193 + # you don't want QML at all in your Calamares). The images are displayed 194 + # at a rate of 1 every 2 seconds during the execution step. 195 + # 196 + # To configure a QML file, list a single filename: 197 + # slideshow: "show.qml" 198 + # To configure images, like the filenames (here, as an inline list): 199 + # slideshow: [ "/etc/calamares/slideshow/0.png", "/etc/logo.png" ] 200 + slideshow: "show.qml" 201 + 202 + # There are two available APIs for a QML slideshow: 203 + # - 1 (the default) loads the entire slideshow when the installation- 204 + # slideshow page is shown and starts the QML then. The QML 205 + # is never stopped (after installation is done, times etc. 206 + # continue to fire). 207 + # - 2 loads the slideshow on startup and calls onActivate() and 208 + # onLeave() in the root object. After the installation is done, 209 + # the show is stopped (first by calling onLeave(), then destroying 210 + # the QML components). 211 + # 212 + # An image slideshow does not need to have the API defined. 213 + slideshowAPI: 2 214 + 215 + 216 + # These options are to customize online uploading of logs to pastebins: 217 + # - type : Defines the kind of pastebin service to be used. Currently 218 + # it accepts two values: 219 + # - none : disables the pastebin functionality 220 + # - fiche : use fiche pastebin server 221 + # - url : Defines the address of pastebin service to be used. 222 + # Takes string as input. Important bits are the host and port, 223 + # the scheme is not used. 224 + # - sizeLimit : Defines maximum size limit (in KiB) of log file to be pasted. 225 + # The option must be set, to have the log option work. 226 + # Takes integer as input. If < 0, no limit will be forced, 227 + # else only last (approximately) 'n' KiB of log file will be pasted. 228 + # Please note that upload size may be slightly over the limit (due 229 + # to last minute logging), so provide a suitable value. 230 + uploadServer : 231 + type : "fiche" 232 + url : "http://termbin.com:9999" 233 + sizeLimit : -1
pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/gfx-landing-declarative.png

This is a binary file and will not be displayed.

pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/gfx-landing-reliable.png

This is a binary file and will not be displayed.

pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/gfx-landing-reproducible.png

This is a binary file and will not be displayed.

pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/images/budgie.png

This is a binary file and will not be displayed.

pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/images/cinnamon.png

This is a binary file and will not be displayed.

pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/images/deepin.png

This is a binary file and will not be displayed.

pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/images/enlightenment.png

This is a binary file and will not be displayed.

pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/images/gnome.png

This is a binary file and will not be displayed.

pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/images/lumina.png

This is a binary file and will not be displayed.

pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/images/lxqt.png

This is a binary file and will not be displayed.

pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/images/mate.png

This is a binary file and will not be displayed.

pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/images/nodesktop.png

This is a binary file and will not be displayed.

pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/images/pantheon.png

This is a binary file and will not be displayed.

pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/images/plasma6.png

This is a binary file and will not be displayed.

pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/images/xfce.png

This is a binary file and will not be displayed.

+513
pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/nix-snowflake.svg
··· 1 + <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 + <!-- Created with Inkscape (http://www.inkscape.org/) --> 3 + 4 + <svg 5 + xmlns:dc="http://purl.org/dc/elements/1.1/" 6 + xmlns:cc="http://creativecommons.org/ns#" 7 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 8 + xmlns:svg="http://www.w3.org/2000/svg" 9 + xmlns="http://www.w3.org/2000/svg" 10 + xmlns:xlink="http://www.w3.org/1999/xlink" 11 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 12 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 13 + width="141.5919mm" 14 + height="122.80626mm" 15 + viewBox="0 0 501.70361 435.14028" 16 + id="svg2" 17 + version="1.1" 18 + inkscape:version="0.92.0 r15299" 19 + sodipodi:docname="nix-snowflake.svg"> 20 + <defs 21 + id="defs4"> 22 + <linearGradient 23 + inkscape:collect="always" 24 + id="linearGradient5562"> 25 + <stop 26 + style="stop-color:#699ad7;stop-opacity:1" 27 + offset="0" 28 + id="stop5564" /> 29 + <stop 30 + id="stop5566" 31 + offset="0.24345198" 32 + style="stop-color:#7eb1dd;stop-opacity:1" /> 33 + <stop 34 + style="stop-color:#7ebae4;stop-opacity:1" 35 + offset="1" 36 + id="stop5568" /> 37 + </linearGradient> 38 + <linearGradient 39 + inkscape:collect="always" 40 + id="linearGradient5053"> 41 + <stop 42 + style="stop-color:#415e9a;stop-opacity:1" 43 + offset="0" 44 + id="stop5055" /> 45 + <stop 46 + id="stop5057" 47 + offset="0.23168644" 48 + style="stop-color:#4a6baf;stop-opacity:1" /> 49 + <stop 50 + style="stop-color:#5277c3;stop-opacity:1" 51 + offset="1" 52 + id="stop5059" /> 53 + </linearGradient> 54 + <linearGradient 55 + id="linearGradient5960" 56 + inkscape:collect="always"> 57 + <stop 58 + id="stop5962" 59 + offset="0" 60 + style="stop-color:#637ddf;stop-opacity:1" /> 61 + <stop 62 + style="stop-color:#649afa;stop-opacity:1" 63 + offset="0.23168644" 64 + id="stop5964" /> 65 + <stop 66 + id="stop5966" 67 + offset="1" 68 + style="stop-color:#719efa;stop-opacity:1" /> 69 + </linearGradient> 70 + <linearGradient 71 + inkscape:collect="always" 72 + id="linearGradient5867"> 73 + <stop 74 + style="stop-color:#7363df;stop-opacity:1" 75 + offset="0" 76 + id="stop5869" /> 77 + <stop 78 + id="stop5871" 79 + offset="0.23168644" 80 + style="stop-color:#6478fa;stop-opacity:1" /> 81 + <stop 82 + style="stop-color:#719efa;stop-opacity:1" 83 + offset="1" 84 + id="stop5873" /> 85 + </linearGradient> 86 + <linearGradient 87 + y2="515.97058" 88 + x2="282.26105" 89 + y1="338.62445" 90 + x1="213.95642" 91 + gradientTransform="translate(983.36076,601.38885)" 92 + gradientUnits="userSpaceOnUse" 93 + id="linearGradient5855" 94 + xlink:href="#linearGradient5960" 95 + inkscape:collect="always" /> 96 + <linearGradient 97 + y2="515.97058" 98 + x2="282.26105" 99 + y1="338.62445" 100 + x1="213.95642" 101 + gradientTransform="translate(-197.75174,-337.1451)" 102 + gradientUnits="userSpaceOnUse" 103 + id="linearGradient5855-8" 104 + xlink:href="#linearGradient5867" 105 + inkscape:collect="always" /> 106 + <linearGradient 107 + y2="247.58188" 108 + x2="-702.75317" 109 + y1="102.74675" 110 + x1="-775.20807" 111 + gradientTransform="translate(983.36076,601.38885)" 112 + gradientUnits="userSpaceOnUse" 113 + id="linearGradient4544" 114 + xlink:href="#linearGradient5960" 115 + inkscape:collect="always" /> 116 + <clipPath 117 + id="clipPath4501" 118 + clipPathUnits="userSpaceOnUse"> 119 + <circle 120 + r="241.06563" 121 + cy="686.09473" 122 + cx="335.13995" 123 + id="circle4503" 124 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#adadad;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> 125 + </clipPath> 126 + <clipPath 127 + id="clipPath5410" 128 + clipPathUnits="userSpaceOnUse"> 129 + <circle 130 + r="241.13741" 131 + cy="340.98975" 132 + cx="335.98114" 133 + id="circle5412" 134 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> 135 + </clipPath> 136 + <linearGradient 137 + inkscape:collect="always" 138 + xlink:href="#linearGradient5053" 139 + id="linearGradient5137" 140 + gradientUnits="userSpaceOnUse" 141 + gradientTransform="translate(864.55062,-2197.497)" 142 + x1="-584.19934" 143 + y1="782.33563" 144 + x2="-496.29703" 145 + y2="937.71399" /> 146 + <linearGradient 147 + inkscape:collect="always" 148 + xlink:href="#linearGradient5053" 149 + id="linearGradient5147" 150 + gradientUnits="userSpaceOnUse" 151 + gradientTransform="translate(864.55062,-2197.497)" 152 + x1="-584.19934" 153 + y1="782.33563" 154 + x2="-496.29703" 155 + y2="937.71399" /> 156 + <linearGradient 157 + inkscape:collect="always" 158 + xlink:href="#linearGradient5562" 159 + id="linearGradient5162" 160 + gradientUnits="userSpaceOnUse" 161 + gradientTransform="translate(70.505061,-1761.3076)" 162 + x1="200.59668" 163 + y1="351.41116" 164 + x2="290.08701" 165 + y2="506.18814" /> 166 + <linearGradient 167 + inkscape:collect="always" 168 + xlink:href="#linearGradient5562" 169 + id="linearGradient5172" 170 + gradientUnits="userSpaceOnUse" 171 + gradientTransform="translate(70.505061,-1761.3076)" 172 + x1="200.59668" 173 + y1="351.41116" 174 + x2="290.08701" 175 + y2="506.18814" /> 176 + <linearGradient 177 + inkscape:collect="always" 178 + xlink:href="#linearGradient5562" 179 + id="linearGradient5182" 180 + gradientUnits="userSpaceOnUse" 181 + gradientTransform="translate(70.505061,-1761.3076)" 182 + x1="200.59668" 183 + y1="351.41116" 184 + x2="290.08701" 185 + y2="506.18814" /> 186 + <linearGradient 187 + y2="506.18814" 188 + x2="290.08701" 189 + y1="351.41116" 190 + x1="200.59668" 191 + gradientTransform="translate(70.505061,-1761.3076)" 192 + gradientUnits="userSpaceOnUse" 193 + id="linearGradient5201" 194 + xlink:href="#linearGradient5562" 195 + inkscape:collect="always" /> 196 + <linearGradient 197 + y2="937.71399" 198 + x2="-496.29703" 199 + y1="782.33563" 200 + x1="-584.19934" 201 + gradientTransform="translate(864.55062,-2197.497)" 202 + gradientUnits="userSpaceOnUse" 203 + id="linearGradient5205" 204 + xlink:href="#linearGradient5053" 205 + inkscape:collect="always" /> 206 + <linearGradient 207 + inkscape:collect="always" 208 + xlink:href="#linearGradient5562" 209 + id="linearGradient4328" 210 + gradientUnits="userSpaceOnUse" 211 + gradientTransform="translate(70.650339,-1055.1511)" 212 + x1="200.59668" 213 + y1="351.41116" 214 + x2="290.08701" 215 + y2="506.18814" /> 216 + <linearGradient 217 + inkscape:collect="always" 218 + xlink:href="#linearGradient5053" 219 + id="linearGradient4330" 220 + gradientUnits="userSpaceOnUse" 221 + gradientTransform="translate(864.69589,-1491.3405)" 222 + x1="-584.19934" 223 + y1="782.33563" 224 + x2="-496.29703" 225 + y2="937.71399" /> 226 + </defs> 227 + <sodipodi:namedview 228 + id="base" 229 + pagecolor="#ffffff" 230 + bordercolor="#666666" 231 + borderopacity="1.0" 232 + inkscape:pageopacity="0.0" 233 + inkscape:pageshadow="2" 234 + inkscape:zoom="0.98318225" 235 + inkscape:cx="113.58176" 236 + inkscape:cy="-45.193301" 237 + inkscape:document-units="px" 238 + inkscape:current-layer="layer3" 239 + showgrid="false" 240 + inkscape:window-width="2560" 241 + inkscape:window-height="1577" 242 + inkscape:window-x="0" 243 + inkscape:window-y="0" 244 + inkscape:window-maximized="1" 245 + inkscape:snap-global="true" 246 + fit-margin-top="0" 247 + fit-margin-left="0" 248 + fit-margin-right="0" 249 + fit-margin-bottom="0" /> 250 + <metadata 251 + id="metadata7"> 252 + <rdf:RDF> 253 + <cc:Work 254 + rdf:about=""> 255 + <dc:format>image/svg+xml</dc:format> 256 + <dc:type 257 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 258 + <dc:title /> 259 + </cc:Work> 260 + </rdf:RDF> 261 + </metadata> 262 + <g 263 + inkscape:groupmode="layer" 264 + id="layer7" 265 + inkscape:label="bg" 266 + style="display:none" 267 + transform="translate(-23.75651,-24.84972)"> 268 + <rect 269 + transform="translate(-132.5822,958.04022)" 270 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" 271 + id="rect5389" 272 + width="1543.4283" 273 + height="483.7439" 274 + x="132.5822" 275 + y="-957.77832" /> 276 + </g> 277 + <g 278 + inkscape:groupmode="layer" 279 + id="layer6" 280 + inkscape:label="logo-guide" 281 + style="display:none" 282 + transform="translate(-156.33871,933.1905)"> 283 + <rect 284 + y="-958.02759" 285 + x="132.65129" 286 + height="484.30399" 287 + width="550.41602" 288 + id="rect5379" 289 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5c201e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" 290 + inkscape:export-filename="/home/tim/dev/nix/homepage/logo/nix-wiki.png" 291 + inkscape:export-xdpi="22.07" 292 + inkscape:export-ydpi="22.07" /> 293 + <rect 294 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c24a46;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" 295 + id="rect5372" 296 + width="501.94415" 297 + height="434.30405" 298 + x="156.12303" 299 + y="-933.02759" 300 + inkscape:export-filename="/home/tim/dev/nix/homepage/logo/nixos-logo-only-hires-print.png" 301 + inkscape:export-xdpi="212.2" 302 + inkscape:export-ydpi="212.2" /> 303 + <rect 304 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#d98d8a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" 305 + id="rect5381" 306 + width="24.939611" 307 + height="24.939611" 308 + x="658.02826" 309 + y="-958.04022" /> 310 + </g> 311 + <g 312 + inkscape:label="print-logo" 313 + inkscape:groupmode="layer" 314 + id="layer1" 315 + style="display:inline" 316 + transform="translate(-156.33871,933.1905)" 317 + sodipodi:insensitive="true"> 318 + <path 319 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" 320 + d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z" 321 + id="path4861" 322 + inkscape:connector-curvature="0" 323 + sodipodi:nodetypes="cccccccccc" /> 324 + <path 325 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#7ebae4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" 326 + d="m 353.50926,-797.4433 -122.21756,211.6631 -28.53477,-48.37 32.93839,-56.6875 -65.41521,-0.1719 -13.9414,-24.1698 14.23637,-24.721 93.11177,0.2939 33.46371,-57.6903 z" 327 + id="use4863" 328 + inkscape:connector-curvature="0" 329 + sodipodi:nodetypes="cccccccccc" /> 330 + <path 331 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#7ebae4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" 332 + d="m 362.88537,-628.243 244.41439,0.012 -27.62229,48.8968 -65.56199,-0.1817 32.55876,56.7371 -13.96098,24.1585 -28.52722,0.032 -46.3013,-80.7841 -66.69317,-0.1353 z" 333 + id="use4865" 334 + inkscape:connector-curvature="0" 335 + sodipodi:nodetypes="cccccccccc" /> 336 + <path 337 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#7ebae4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" 338 + d="m 505.14318,-720.9886 -122.19683,-211.6751 56.15706,-0.5268 32.6236,56.8692 32.85645,-56.5653 27.90237,0.011 14.29086,24.6896 -46.81047,80.4902 33.22946,57.8256 z" 339 + id="use4867" 340 + inkscape:connector-curvature="0" 341 + sodipodi:nodetypes="cccccccccc" /> 342 + <path 343 + sodipodi:nodetypes="cccccccccc" 344 + inkscape:connector-curvature="0" 345 + id="path4873" 346 + d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z" 347 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> 348 + <path 349 + sodipodi:nodetypes="cccccccccc" 350 + inkscape:connector-curvature="0" 351 + id="use4875" 352 + d="m 451.3364,-803.53264 -244.4144,-0.012 27.62229,-48.89685 65.56199,0.18175 -32.55875,-56.73717 13.96097,-24.15851 28.52722,-0.0315 46.3013,80.78414 66.69317,0.13524 z" 353 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> 354 + <path 355 + sodipodi:nodetypes="cccccccccc" 356 + inkscape:connector-curvature="0" 357 + id="use4877" 358 + d="m 460.87178,-633.8425 122.21757,-211.66304 28.53477,48.37003 -32.93839,56.68751 65.4152,0.1718 13.9414,24.1698 -14.23636,24.7211 -93.11177,-0.294 -33.46371,57.6904 z" 359 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> 360 + <g 361 + id="layer2" 362 + inkscape:label="guides" 363 + style="display:none" 364 + transform="translate(72.039038,-1799.4476)"> 365 + <path 366 + d="M 460.60629,594.72881 209.74183,594.7288 84.309616,377.4738 209.74185,160.21882 l 250.86446,1e-5 125.43222,217.255 z" 367 + inkscape:randomized="0" 368 + inkscape:rounded="0" 369 + inkscape:flatsided="true" 370 + sodipodi:arg2="1.5707963" 371 + sodipodi:arg1="1.0471976" 372 + sodipodi:r2="217.25499" 373 + sodipodi:r1="250.86446" 374 + sodipodi:cy="377.47382" 375 + sodipodi:cx="335.17407" 376 + sodipodi:sides="6" 377 + id="path6032" 378 + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.23600003;fill:#4e4d52;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" 379 + sodipodi:type="star" /> 380 + <path 381 + transform="translate(0,-308.26772)" 382 + sodipodi:type="star" 383 + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#4e4d52;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" 384 + id="path5875" 385 + sodipodi:sides="6" 386 + sodipodi:cx="335.17407" 387 + sodipodi:cy="685.74158" 388 + sodipodi:r1="100.83495" 389 + sodipodi:r2="87.32563" 390 + sodipodi:arg1="1.0471976" 391 + sodipodi:arg2="1.5707963" 392 + inkscape:flatsided="true" 393 + inkscape:rounded="0" 394 + inkscape:randomized="0" 395 + d="m 385.59154,773.06721 -100.83495,0 -50.41747,-87.32564 50.41748,-87.32563 100.83495,10e-6 50.41748,87.32563 z" /> 396 + <path 397 + transform="translate(0,-308.26772)" 398 + sodipodi:nodetypes="ccccccccc" 399 + inkscape:connector-curvature="0" 400 + id="path5851" 401 + d="m 1216.5591,938.53395 123.0545,228.14035 -42.6807,-1.2616 -43.4823,-79.7725 -39.6506,80.3267 -32.6875,-19.7984 53.4737,-100.2848 -37.1157,-73.88955 z" 402 + style="fill:url(#linearGradient5855);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> 403 + <rect 404 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.41499999;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c53a3a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" 405 + id="rect5884" 406 + width="48.834862" 407 + height="226.22897" 408 + x="-34.74221" 409 + y="446.17056" 410 + transform="rotate(-30)" /> 411 + <path 412 + transform="translate(0,-308.26772)" 413 + sodipodi:type="star" 414 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.50899999;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" 415 + id="path3428" 416 + sodipodi:sides="6" 417 + sodipodi:cx="223.93674" 418 + sodipodi:cy="878.63831" 419 + sodipodi:r1="28.048939" 420 + sodipodi:r2="24.291094" 421 + sodipodi:arg1="0" 422 + sodipodi:arg2="0.52359878" 423 + inkscape:flatsided="true" 424 + inkscape:rounded="0" 425 + inkscape:randomized="0" 426 + d="m 251.98568,878.63831 -14.02447,24.29109 h -28.04894 l -14.02447,-24.29109 14.02447,-24.2911 h 28.04894 z" /> 427 + <use 428 + x="0" 429 + y="0" 430 + xlink:href="#rect5884" 431 + id="use4252" 432 + transform="rotate(60,268.29786,489.4515)" 433 + width="100%" 434 + height="100%" /> 435 + <rect 436 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:0.6507937;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" 437 + id="rect4254" 438 + width="5.3947482" 439 + height="115.12564" 440 + x="545.71014" 441 + y="467.07007" 442 + transform="rotate(30,575.23539,-154.13386)" /> 443 + </g> 444 + </g> 445 + <g 446 + inkscape:groupmode="layer" 447 + id="layer3" 448 + inkscape:label="gradient-logo" 449 + style="display:inline;opacity:1" 450 + sodipodi:insensitive="true" 451 + transform="translate(-156.33871,933.1905)"> 452 + <path 453 + sodipodi:nodetypes="cccccccccc" 454 + inkscape:connector-curvature="0" 455 + id="path3336-6" 456 + d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8257 z" 457 + style="opacity:1;fill:url(#linearGradient4328);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> 458 + <use 459 + height="100%" 460 + width="100%" 461 + transform="rotate(60,407.11155,-715.78724)" 462 + id="use3439-6" 463 + inkscape:transform-center-y="151.59082" 464 + inkscape:transform-center-x="124.43045" 465 + xlink:href="#path3336-6" 466 + y="0" 467 + x="0" /> 468 + <use 469 + height="100%" 470 + width="100%" 471 + transform="rotate(-60,407.31177,-715.70016)" 472 + id="use3445-0" 473 + inkscape:transform-center-y="75.573958" 474 + inkscape:transform-center-x="-168.20651" 475 + xlink:href="#path3336-6" 476 + y="0" 477 + x="0" /> 478 + <use 479 + height="100%" 480 + width="100%" 481 + transform="rotate(180,407.41868,-715.7565)" 482 + id="use3449-5" 483 + inkscape:transform-center-y="-139.94592" 484 + inkscape:transform-center-x="59.669705" 485 + xlink:href="#path3336-6" 486 + y="0" 487 + x="0" /> 488 + <path 489 + style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4330);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" 490 + d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8256 z" 491 + id="path4260-0" 492 + inkscape:connector-curvature="0" 493 + sodipodi:nodetypes="cccccccccc" /> 494 + <use 495 + height="100%" 496 + width="100%" 497 + transform="rotate(120,407.33916,-716.08356)" 498 + id="use4354-5" 499 + xlink:href="#path4260-0" 500 + y="0" 501 + x="0" 502 + style="display:inline" /> 503 + <use 504 + height="100%" 505 + width="100%" 506 + transform="rotate(-120,407.28823,-715.86995)" 507 + id="use4362-2" 508 + xlink:href="#path4260-0" 509 + y="0" 510 + x="0" 511 + style="display:inline" /> 512 + </g> 513 + </svg>
+34
pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/notesqml@unfree.qml
··· 1 + import io.calamares.core 2 + 3 + import QtQuick 4 + import QtQuick.Controls 5 + import QtQuick.Layouts 6 + import org.kde.kirigami as Kirigami 7 + 8 + Page { 9 + width: parent.width 10 + height: parent.height 11 + 12 + ColumnLayout { 13 + width: parent.width 14 + spacing: Kirigami.Units.smallSpacing 15 + 16 + Column { 17 + Layout.fillWidth: true 18 + 19 + Text { 20 + text: qsTr("NixOS is fully open source, but it also provides optional software packages that do not respect users' freedom to run, copy, distribute, study, change and improve the software, and are commonly not open source. By default such \"unfree\" packages are not allowed, but you can enable it here. If you check this box, you agree that unfree software may be installed which might have additional End User License Agreements (EULAs) that you need to agree to. If not enabled, some hardware (notably Nvidia GPUs and some WiFi chips) might not work or not work optimally.<br/>") 21 + width: parent.width 22 + wrapMode: Text.WordWrap 23 + } 24 + 25 + CheckBox { 26 + text: qsTr("Allow unfree software") 27 + 28 + onCheckedChanged: { 29 + Global.insert("nixos_allow_unfree", checked) 30 + } 31 + } 32 + } 33 + } 34 + }
+122
pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/show.qml
··· 1 + import QtQuick 2.0; 2 + import calamares.slideshow 1.0; 3 + 4 + Presentation 5 + { 6 + id: presentation 7 + 8 + function nextSlide() { 9 + presentation.goToNextSlide(); 10 + } 11 + 12 + Timer { 13 + id: advanceTimer 14 + interval: 20000 15 + running: presentation.activatedInCalamares 16 + repeat: true 17 + onTriggered: nextSlide() 18 + } 19 + 20 + Slide { 21 + Text { 22 + id: text1 23 + anchors.centerIn: parent 24 + text: "Reproducible" 25 + font.pixelSize: 30 26 + wrapMode: Text.WordWrap 27 + width: presentation.width 28 + horizontalAlignment: Text.Center 29 + color: "#6586C8" 30 + } 31 + Image { 32 + id: background1 33 + source: "gfx-landing-reproducible.png" 34 + width: 200; height: 200 35 + fillMode: Image.PreserveAspectFit 36 + anchors.bottom: text1.top 37 + anchors.horizontalCenter: parent.horizontalCenter 38 + } 39 + Text { 40 + anchors.horizontalCenter: background1.horizontalCenter 41 + anchors.top: text1.bottom 42 + text: "Nix builds packages in isolation from each other.<br/>"+ 43 + "This ensures that they are reproducible and don't<br/>"+ 44 + "have undeclared dependencies, so <b>if a package<br/>"+ 45 + "works on one machine, it will also work on another.</b>" 46 + wrapMode: Text.WordWrap 47 + width: presentation.width 48 + horizontalAlignment: Text.Center 49 + } 50 + } 51 + 52 + Slide { 53 + Text { 54 + id: text2 55 + anchors.centerIn: parent 56 + text: "Declarative" 57 + font.pixelSize: 30 58 + wrapMode: Text.WordWrap 59 + width: presentation.width 60 + horizontalAlignment: Text.Center 61 + color: "#6586C8" 62 + } 63 + Image { 64 + id: background2 65 + source: "gfx-landing-declarative.png" 66 + width: 200; height: 200 67 + fillMode: Image.PreserveAspectFit 68 + anchors.bottom: text2.top 69 + anchors.horizontalCenter: parent.horizontalCenter 70 + } 71 + Text { 72 + anchors.horizontalCenter: background2.horizontalCenter 73 + anchors.top: text2.bottom 74 + text: "Nix makes it <b>trivial to share development and build<br/>"+ 75 + "environments</b> for your projects, regardless of what<br/>"+ 76 + "programming languages and tools you’re using." 77 + wrapMode: Text.WordWrap 78 + width: presentation.width 79 + horizontalAlignment: Text.Center 80 + } 81 + } 82 + 83 + Slide { 84 + Text { 85 + id: text3 86 + anchors.centerIn: parent 87 + text: "Reliable" 88 + font.pixelSize: 30 89 + wrapMode: Text.WordWrap 90 + width: presentation.width 91 + horizontalAlignment: Text.Center 92 + color: "#6586C8" 93 + } 94 + Image { 95 + id: background3 96 + source: "gfx-landing-reliable.png" 97 + width: 200; height: 200 98 + fillMode: Image.PreserveAspectFit 99 + anchors.bottom: text3.top 100 + anchors.horizontalCenter: parent.horizontalCenter 101 + } 102 + Text { 103 + anchors.horizontalCenter: background3.horizontalCenter 104 + anchors.top: text3.bottom 105 + text: "Nix ensures that installing or upgrading one package<br/>"+ 106 + "<b>cannot break other packages.</b> It allows you to <b>roll<br/>"+ 107 + "back to previous versions,</b> and ensures that no<br/>"+ 108 + "package is in an inconsistent state during an<br/>"+ 109 + "upgrade." 110 + wrapMode: Text.WordWrap 111 + width: presentation.width 112 + horizontalAlignment: Text.Center 113 + } 114 + } 115 + 116 + function onActivate() { 117 + presentation.currentSlide = 0; 118 + } 119 + 120 + function onLeave() { 121 + } 122 + }
pkgs/by-name/ca/calamares-nixos-extensions/src/branding/nixos/white.png

This is a binary file and will not be displayed.

+4
pkgs/by-name/ca/calamares-nixos-extensions/src/config/modules/finished.conf
··· 1 + # https://codeberg.org/Calamares/calamares/src/branch/calamares/src/modules/finished/finished.conf 2 + restartNowMode: user-unchecked 3 + restartNowCommand: "systemctl -i reboot" 4 + notifyOnFinished: true
+7
pkgs/by-name/ca/calamares-nixos-extensions/src/config/modules/keyboard.conf
··· 1 + # https://codeberg.org/Calamares/calamares/src/branch/calamares/src/modules/keyboard/keyboard.conf 2 + xOrgConfFileName: "/etc/X11/xorg.conf.d/00-keyboard.conf" 3 + writeEtcDefaultKeyboard: false 4 + 5 + # Use special code path to configure GNOME keyboard settings 6 + configure: 7 + gnome: true
+11
pkgs/by-name/ca/calamares-nixos-extensions/src/config/modules/locale.conf
··· 1 + # https://codeberg.org/Calamares/calamares/src/branch/calamares/src/modules/locale/locale.conf 2 + useSystemTimezone: true 3 + 4 + # Isn't supported on NixOS 5 + adjustLiveTimezone: false 6 + 7 + localeGenPath: @glibcLocales@/share/i18n/SUPPORTED 8 + 9 + geoip: 10 + style: "json" 11 + url: "https://geoip.kde.org/v1/calamares"
+27
pkgs/by-name/ca/calamares-nixos-extensions/src/config/modules/mount.conf
··· 1 + # https://codeberg.org/Calamares/calamares/src/branch/calamares/src/modules/mount/mount.conf 2 + extraMounts: 3 + - device: proc 4 + fs: proc 5 + mountPoint: /proc 6 + - device: sys 7 + fs: sysfs 8 + mountPoint: /sys 9 + - device: /dev 10 + mountPoint: /dev 11 + options: [ bind ] 12 + - device: tmpfs 13 + fs: tmpfs 14 + mountPoint: /run 15 + - device: /run/udev 16 + mountPoint: /run/udev 17 + options: [ bind ] 18 + - device: efivarfs 19 + fs: efivarfs 20 + mountPoint: /sys/firmware/efi/efivars 21 + efi: true 22 + 23 + # Ensure the right fmask/dmask is set on the ESP, as it will be 24 + # picked up by nixos-generate-config later 25 + mountOptions: 26 + - filesystem: efi 27 + options: [ fmask=0077, dmask=0077 ]
+105
pkgs/by-name/ca/calamares-nixos-extensions/src/config/modules/packagechooser.conf
··· 1 + # https://codeberg.org/Calamares/calamares/src/branch/calamares/src/modules/packagechooser/packagechooser.conf 2 + mode: required 3 + 4 + # FIXME: what's the correct way of doing this now? 5 + method: legacy 6 + 7 + labels: 8 + step: "Desktop" 9 + 10 + default: gnome 11 + 12 + items: 13 + - id: gnome 14 + packages: [ gnome ] 15 + name: GNOME 16 + description: "<html>Every part of GNOME has been designed to make it simple and easy to use. It provides a focused working environment that helps you get things done. GNOME is a popular choice and well tested on NixOS.<br/> 17 + <br/> 18 + Learn more at <a href=\"https://www.gnome.org/\">gnome.org</a></html>" 19 + screenshot: "images/gnome.png" 20 + 21 + - id: plasma6 22 + packages: [ plasma6 ] 23 + name: Plasma 24 + description: "<html>Plasma is made to stay out of the way as it helps you get things done. But under its light and intuitive surface, it's a highly customizable. So you're free to choose ways of usage right as you need them and when you need them. Plasma is a popular choice and well tested on NixOS.<br/> 25 + <br/> 26 + Learn more at <a href=\"https://kde.org/plasma-desktop/\">kde.org/plasma-desktop</a></html>" 27 + screenshot: "images/plasma6.png" 28 + 29 + - id: xfce 30 + packages: [ xfce ] 31 + name: Xfce 32 + description: "<html>Xfce is a lightweight desktop environment. It aims to be fast and low on system resources, while still being visually appealing and user friendly.<br/> 33 + <br/> 34 + Learn more at <a href=\"https://www.xfce.org/\">xfce.org</a></html>" 35 + screenshot: "images/xfce.png" 36 + 37 + - id: pantheon 38 + packages: [ pantheon ] 39 + name: Pantheon 40 + description: "<html>Pantheon is the default desktop of Elementary OS. It provides a productive and intuitive user experience while also being visually appealing.<br/> 41 + <br/> 42 + Learn more at <a href=\"https://elementary.io/docs/learning-the-basics\">elementary.io/docs/learning-the-basics</a></html>" 43 + screenshot: "images/pantheon.png" 44 + 45 + - id: cinnamon 46 + packages: [ cinnamon ] 47 + name: Cinnamon 48 + description: "<html>Cinnamon is a desktop which provides advanced innovative features and a traditional user experience. The emphasis is put on making users feel at home and providing them with an easy to use and comfortable desktop experience.<br/> 49 + <br/> 50 + Learn more at <a href=\"https://projects.linuxmint.com/cinnamon/\">projects.linuxmint.com/cinnamon</a></html>" 51 + screenshot: "images/cinnamon.png" 52 + 53 + - id: mate 54 + packages: [ mate ] 55 + name: MATE 56 + description: "<html>The MATE Desktop Environment is the continuation of GNOME 2. It provides an intuitive and attractive desktop environment.<br/> 57 + <br/> 58 + Learn more at <a href=\"https://mate-desktop.org/\">mate-desktop.org</a></html>" 59 + screenshot: "images/mate.png" 60 + 61 + - id: enlightenment 62 + packages: [ enlightenment ] 63 + name: Enlightenment 64 + description: "<html>Enlightenment is a Window Manager, Compositor and Minimal Desktop. Enlightenment is classed as a desktop shell as it provides everything you need to operate your desktop or laptop, but it is not a full application suite.<br/> 65 + <br/> 66 + Learn more at <a href=\"https://www.enlightenment.org/\">enlightenment.org</a></html>" 67 + screenshot: "images/enlightenment.png" 68 + 69 + - id: lxqt 70 + packages: [ lxqt ] 71 + name: LXQt 72 + description: "<html>LXQt is a lightweight Qt desktop environment. It will not get in your way. It will not hang or slow down your system. It is focused on being a classic desktop with a modern look and feel.<br/> 73 + <br/> 74 + Learn more at <a href=\"https://lxqt-project.org/\">lxqt-project.org</a></html>" 75 + screenshot: "images/lxqt.png" 76 + 77 + # Lumina is not yet stable enough, once it is, simply uncommenting the lines below is all that's needed to enable it as an option 78 + #- id: lumina 79 + # packages: [ lumina ] 80 + # name: Lumina 81 + # description: "<html>Lumina is designed to have a small footprint, giving your system the best performance possible. It is built to flow seamlessly between computer tasks and offers several integrated utilities in one convenient package.<br/> 82 + # - Learn more at <a href=\"https://lumina-desktop.org/\">lumina-desktop.org</a></html>" 83 + # screenshot: "images/lumina.png" 84 + 85 + - id: budgie 86 + packages: [ budgie ] 87 + name: Budgie 88 + description: "<html>The Budgie Desktop is a feature-rich, modern desktop designed to keep out the way of the user.<br/> 89 + <br/> 90 + Learn more at <a href=\"https://docs.buddiesofbudgie.org/\">buddiesofbudgie.org</a></html>" 91 + screenshot: "images/budgie.png" 92 + 93 + - id: deepin 94 + packages: [ deepin ] 95 + name: Deepin 96 + description: "<html>The Deepin Desktop Environment is an elegant, easy to use and reliable desktop environment.<br/> 97 + <br/> 98 + Learn more at <a href=\"https://www.deepin.org/\">deepin.org</a></html>" 99 + screenshot: "images/deepin.png" 100 + 101 + - id: "" 102 + packages: [] 103 + name: "No desktop" 104 + screenshot: "images/nodesktop.png" 105 + description: "A minimal system without a graphical user interface will be installed. This is great for servers or custom setups with window managers. The configuration can be changed after installation."
+22
pkgs/by-name/ca/calamares-nixos-extensions/src/config/modules/partition.conf
··· 1 + # https://codeberg.org/Calamares/calamares/src/branch/calamares/src/modules/partition/partition.conf 2 + efi: 3 + mountPoint: "/boot" 4 + recommendedSize: 1GiB 5 + minimumSize: 32MiB 6 + label: "EFI" 7 + 8 + userSwapChoices: 9 + - none 10 + - small 11 + - suspend 12 + 13 + luksGeneration: luks2 14 + 15 + showNotEncryptedBootMessage: false 16 + 17 + partitionLayout: 18 + - name: "root" 19 + filesystem: "ext4" 20 + noEncrypt: false 21 + mountPoint: "/" 22 + size: 100%
+5
pkgs/by-name/ca/calamares-nixos-extensions/src/config/modules/unfree.conf
··· 1 + --- 2 + qmlSearch: branding 3 + 4 + qmlLabel: 5 + notes: "Unfree software"
+32
pkgs/by-name/ca/calamares-nixos-extensions/src/config/modules/users.conf
··· 1 + # https://codeberg.org/Calamares/calamares/src/branch/calamares/src/modules/users/users.conf 2 + defaultGroups: 3 + - users 4 + - networkmanager 5 + - wheel 6 + 7 + setRootPassword: true 8 + doReusePassword: false 9 + doAutologin: false 10 + 11 + # Recommended libpwquality settings from upstream 12 + passwordRequirements: 13 + minLength: 8 14 + maxLength: 64 15 + libpwquality: 16 + - minlen=8 17 + - maxrepeat=3 18 + - maxsequence=3 19 + - usersubstr=4 20 + - badwords=linux 21 + 22 + allowWeakPasswords: true 23 + allowWeakPasswordsDefault: false 24 + 25 + user: 26 + shell: /run/current-system/sw/bin/bash 27 + forbidden_names: [ root ] 28 + 29 + hostname: 30 + location: None 31 + writeHostsFile: false 32 + forbidden_names: [ localhost ]
+20
pkgs/by-name/ca/calamares-nixos-extensions/src/config/modules/welcome.conf
··· 1 + # https://codeberg.org/Calamares/calamares/src/branch/calamares/src/modules/welcome/welcome.conf 2 + showReleaseNotesUrl: true 3 + 4 + requirements: 5 + requiredStorage: 10 6 + requiredRam: 3.0 7 + 8 + internetCheckUrl: [ https://geoip.kde.org/v1/calamares, https://cache.nixos.org/ ] 9 + 10 + check: 11 + - storage 12 + - ram 13 + - power 14 + - internet 15 + - screen 16 + 17 + required: 18 + - storage 19 + - ram 20 + - internet
+208
pkgs/by-name/ca/calamares-nixos-extensions/src/config/settings.conf
··· 1 + # Configuration file for Calamares 2 + # 3 + # This is the top-level configuration file for Calamares. 4 + # It specifies what modules will be used, as well as some 5 + # overall characteristics -- is this a setup program, or 6 + # an installer. More specific configuration is devolved 7 + # to the branding file (for the UI) and the individual 8 + # module configuration files (for functionality). 9 + --- 10 + # Modules can be job modules (with different interfaces) and QtWidgets view 11 + # modules. They could all be placed in a number of different paths. 12 + # "modules-search" is a list of strings, each of these can either be a full 13 + # path to a directory or the keyword "local". 14 + # 15 + # "local" means: 16 + # - modules in $LIBDIR/calamares/modules, with 17 + # - settings in SHARE/calamares/modules or /etc/calamares/modules. 18 + # In debug-mode (e.g. calamares -d) "local" also adds some paths 19 + # that make sense from inside the build-directory, so that you 20 + # can build-and-run with the latest modules immediately. 21 + # 22 + # Strings other than "local" are taken as paths and interpreted 23 + # relative to wherever Calamares is started. It is therefore **strongly** 24 + # recommended to use only absolute paths here. This is mostly useful 25 + # if your distro has forks of standard Calamares modules, but also 26 + # uses some form of upstream packaging which might overwrite those 27 + # forked modules -- then you can keep modules somewhere outside of 28 + # the "regular" module tree. 29 + # 30 + # 31 + # YAML: list of strings. 32 + modules-search: [ local, @out@/lib/calamares/modules ] 33 + 34 + # Instances section. This section is optional, and it defines custom instances 35 + # for modules of any kind. An instance entry has these keys: 36 + # - *module* name, which matches the module name from the module descriptor 37 + # (usually the name of the directory under `src/modules/`, but third- 38 + # party modules may diverge. 39 + # - *id* (optional) an identifier to distinguish this instance from 40 + # all the others. If none is given, the name of the module is used. 41 + # Together, the module and id form an instance key (see below). 42 + # - *config* (optional) a filename for the configuration. If none is 43 + # given, *module*`.conf` is used (e.g. `welcome.conf` for the welcome 44 + # module) 45 + # - *weight* (optional) In the *exec* phase of the sequence, progress 46 + # is reported as jobs are completed. The jobs from a single module 47 + # together contribute the full weight of that module. The overall 48 + # progress (0 .. 100%) is divided up according to the weight of each 49 + # module. Give modules that take a lot of time to complete, a larger 50 + # weight to keep the overall progress moving along steadily. This 51 + # weight overrides a weight given in the module descriptor. If no weight 52 + # is given, uses the value from the module descriptor, or 1 if there 53 + # isn't one there either. 54 + # 55 + # The primary goal of this mechanism is to allow loading multiple instances 56 + # of the same module, with different configuration. If you don't need this, 57 + # the instances section can safely be left empty. 58 + # 59 + # Module name plus instance name makes an instance key, e.g. 60 + # "webview@owncloud", where "webview" is the module name (for the webview 61 + # viewmodule) and "owncloud" is the instance name. In the *sequence* 62 + # section below, use instance-keys to name instances (instead of just 63 + # a module name, for modules which have only a single instance). 64 + # 65 + # Every module implicitly has an instance with the instance name equal 66 + # to its module name, e.g. "welcome@welcome". In the *sequence* section, 67 + # mentioning a module without a full instance key (e.g. "welcome") 68 + # means that implicit module. 69 + # 70 + # An instance may specify its configuration file (e.g. `webview-home.conf`). 71 + # The implicit instances all have configuration files named `<module>.conf`. 72 + # This (implict) way matches the source examples, where the welcome 73 + # module contains an example `welcome.conf`. Specify a *config* for 74 + # any module (also implicit instances) to change which file is used. 75 + # 76 + # For more information on running module instances, run Calamares in debug 77 + # mode and check the Modules page in the Debug information interface. 78 + # 79 + # A module that is often used with instances is shellprocess, which will 80 + # run shell commands specified in the configuration file. By configuring 81 + # more than one instance of the module, multiple shell sessions can be run 82 + # during install. 83 + # 84 + # YAML: list of maps of string:string key-value pairs. 85 + instances: 86 + - id: unfree 87 + module: notesqml 88 + config: unfree.conf 89 + 90 + # Sequence section. This section describes the sequence of modules, both 91 + # viewmodules and jobmodules, as they should appear and/or run. 92 + # 93 + # A jobmodule instance key (or name) can only appear in an exec phase, whereas 94 + # a viewmodule instance key (or name) can appear in both exec and show phases. 95 + # There is no limit to the number of show or exec phases. However, the same 96 + # module instance key should not appear more than once per phase, and 97 + # deployers should take notice that the global storage structure is persistent 98 + # throughout the application lifetime, possibly influencing behavior across 99 + # phases. A show phase defines a sequence of viewmodules (and therefore 100 + # pages). These viewmodules can offer up jobs for the execution queue. 101 + # 102 + # An exec phase displays a progress page (with brandable slideshow). This 103 + # progress page iterates over the modules listed in the *immediately 104 + # preceding* show phase, and enqueues their jobs, as well as any other jobs 105 + # from jobmodules, in the order defined in the current exec phase. 106 + # 107 + # It then executes the job queue and clears it. If a viewmodule offers up a 108 + # job for execution, but the module name (or instance key) isn't listed in the 109 + # immediately following exec phase, this job will not be executed. 110 + # 111 + # YAML: list of lists of strings. 112 + sequence: 113 + - show: 114 + - welcome 115 + - locale 116 + - keyboard 117 + - users 118 + - packagechooser 119 + - notesqml@unfree 120 + - partition 121 + - summary 122 + - exec: 123 + - partition 124 + - mount 125 + - nixos 126 + - users 127 + - umount 128 + - show: 129 + - finished 130 + 131 + # A branding component is a directory, either in SHARE/calamares/branding or 132 + # in /etc/calamares/branding (the latter takes precedence). The directory must 133 + # contain a YAML file branding.desc which may reference additional resources 134 + # (such as images) as paths relative to the current directory. 135 + # 136 + # A branding component can also ship a QML slideshow for execution pages, 137 + # along with translation files. 138 + # 139 + # Only the name of the branding component (directory) should be specified 140 + # here, Calamares then takes care of finding it and loading the contents. 141 + # 142 + # YAML: string. 143 + branding: nixos 144 + 145 + # If this is set to true, Calamares will show an "Are you sure?" prompt right 146 + # before each execution phase, i.e. at points of no return. If this is set to 147 + # false, no prompt is shown. Default is false, but Calamares will complain if 148 + # this is not explicitly set. 149 + # 150 + # YAML: boolean. 151 + prompt-install: false 152 + 153 + # If this is set to true, Calamares will execute all target environment 154 + # commands in the current environment, without chroot. This setting should 155 + # only be used when setting up Calamares as a post-install configuration tool, 156 + # as opposed to a full operating system installer. 157 + # 158 + # Some official Calamares modules are not expected to function with this 159 + # setting. (e.g. partitioning seems like a bad idea, since that is expected to 160 + # have been done already) 161 + # 162 + # Default is false (for a normal installer), but Calamares will complain if 163 + # this is not explicitly set. 164 + # 165 + # YAML: boolean. 166 + dont-chroot: false 167 + 168 + # If this is set to true, Calamares refers to itself as a "setup program" 169 + # rather than an "installer". Defaults to the value of dont-chroot, but 170 + # Calamares will complain if this is not explicitly set. 171 + oem-setup: false 172 + 173 + # If this is set to true, the "Cancel" button will be disabled entirely. 174 + # The button is also hidden from view. 175 + # 176 + # This can be useful if when e.g. Calamares is used as a post-install 177 + # configuration tool and you require the user to go through all the 178 + # configuration steps. 179 + # 180 + # Default is false, but Calamares will complain if this is not explicitly set. 181 + # 182 + # YAML: boolean. 183 + disable-cancel: false 184 + 185 + # If this is set to true, the "Cancel" button will be disabled once 186 + # you start the 'Installation', meaning there won't be a way to cancel 187 + # the Installation until it has finished or installation has failed. 188 + # 189 + # Default is false, but Calamares will complain if this is not explicitly set. 190 + # 191 + # YAML: boolean. 192 + disable-cancel-during-exec: false 193 + 194 + # If this is set to true, the "Next" and "Back" button will be hidden once 195 + # you start the 'Installation'. 196 + # 197 + # Default is false, but Calamares will complain if this is not explicitly set. 198 + # 199 + # YAML: boolean. 200 + hide-back-and-next-during-exec: false 201 + 202 + # If this is set to true, then once the end of the sequence has 203 + # been reached, the quit (done) button is clicked automatically 204 + # and Calamares will close. Default is false: the user will see 205 + # that the end of installation has been reached, and that things are ok. 206 + # 207 + # 208 + quit-at-end: false
+835
pkgs/by-name/ca/calamares-nixos-extensions/src/modules/nixos/main.py
··· 1 + #!/usr/bin/env python3 2 + # -*- coding: utf-8 -*- 3 + import configparser 4 + import libcalamares 5 + import os 6 + import subprocess 7 + import re 8 + 9 + import gettext 10 + 11 + _ = gettext.translation( 12 + "calamares-python", 13 + localedir=libcalamares.utils.gettext_path(), 14 + languages=libcalamares.utils.gettext_languages(), 15 + fallback=True, 16 + ).gettext 17 + 18 + 19 + # The following strings contain pieces of a nix-configuration file. 20 + # They are adapted from the default config generated from the nixos-generate-config command. 21 + 22 + cfghead = """# Edit this configuration file to define what should be installed on 23 + # your system. Help is available in the configuration.nix(5) man page 24 + # and in the NixOS manual (accessible by running ‘nixos-help’). 25 + 26 + { config, pkgs, ... }: 27 + 28 + { 29 + imports = 30 + [ # Include the results of the hardware scan. 31 + ./hardware-configuration.nix 32 + ]; 33 + 34 + """ 35 + cfgbootefi = """ # Bootloader. 36 + boot.loader.systemd-boot.enable = true; 37 + boot.loader.efi.canTouchEfiVariables = true; 38 + 39 + """ 40 + 41 + cfgbootbios = """ # Bootloader. 42 + boot.loader.grub.enable = true; 43 + boot.loader.grub.device = "@@bootdev@@"; 44 + boot.loader.grub.useOSProber = true; 45 + 46 + """ 47 + 48 + cfgbootnone = """ # Disable bootloader. 49 + boot.loader.grub.enable = false; 50 + 51 + """ 52 + 53 + cfgbootgrubcrypt = """ # Setup keyfile 54 + boot.initrd.secrets = { 55 + "/boot/crypto_keyfile.bin" = null; 56 + }; 57 + 58 + boot.loader.grub.enableCryptodisk = true; 59 + 60 + """ 61 + 62 + cfgnetwork = """ networking.hostName = "@@hostname@@"; # Define your hostname. 63 + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. 64 + 65 + # Configure network proxy if necessary 66 + # networking.proxy.default = "http://user:password@proxy:port/"; 67 + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; 68 + 69 + """ 70 + 71 + cfgnetworkmanager = """ # Enable networking 72 + networking.networkmanager.enable = true; 73 + 74 + """ 75 + 76 + cfgconnman = """ # Enable networking 77 + services.connman.enable = true; 78 + 79 + """ 80 + 81 + cfgnmapplet = """ # Enable network manager applet 82 + programs.nm-applet.enable = true; 83 + 84 + """ 85 + 86 + cfgtime = """ # Set your time zone. 87 + time.timeZone = "@@timezone@@"; 88 + 89 + """ 90 + 91 + cfglocale = """ # Select internationalisation properties. 92 + i18n.defaultLocale = "@@LANG@@"; 93 + 94 + """ 95 + 96 + cfglocaleextra = """ i18n.extraLocaleSettings = { 97 + LC_ADDRESS = "@@LC_ADDRESS@@"; 98 + LC_IDENTIFICATION = "@@LC_IDENTIFICATION@@"; 99 + LC_MEASUREMENT = "@@LC_MEASUREMENT@@"; 100 + LC_MONETARY = "@@LC_MONETARY@@"; 101 + LC_NAME = "@@LC_NAME@@"; 102 + LC_NUMERIC = "@@LC_NUMERIC@@"; 103 + LC_PAPER = "@@LC_PAPER@@"; 104 + LC_TELEPHONE = "@@LC_TELEPHONE@@"; 105 + LC_TIME = "@@LC_TIME@@"; 106 + }; 107 + 108 + """ 109 + 110 + cfggnome = """ # Enable the X11 windowing system. 111 + services.xserver.enable = true; 112 + 113 + # Enable the GNOME Desktop Environment. 114 + services.xserver.displayManager.gdm.enable = true; 115 + services.xserver.desktopManager.gnome.enable = true; 116 + 117 + """ 118 + 119 + cfgplasma6 = """ # Enable the X11 windowing system. 120 + # You can disable this if you're only using the Wayland session. 121 + services.xserver.enable = true; 122 + 123 + # Enable the KDE Plasma Desktop Environment. 124 + services.displayManager.sddm.enable = true; 125 + services.desktopManager.plasma6.enable = true; 126 + 127 + """ 128 + 129 + cfgxfce = """ # Enable the X11 windowing system. 130 + services.xserver.enable = true; 131 + 132 + # Enable the XFCE Desktop Environment. 133 + services.xserver.displayManager.lightdm.enable = true; 134 + services.xserver.desktopManager.xfce.enable = true; 135 + 136 + """ 137 + 138 + cfgpantheon = """ # Enable the X11 windowing system. 139 + services.xserver.enable = true; 140 + 141 + # Enable the Pantheon Desktop Environment. 142 + services.xserver.displayManager.lightdm.enable = true; 143 + services.xserver.desktopManager.pantheon.enable = true; 144 + 145 + """ 146 + 147 + cfgcinnamon = """ # Enable the X11 windowing system. 148 + services.xserver.enable = true; 149 + 150 + # Enable the Cinnamon Desktop Environment. 151 + services.xserver.displayManager.lightdm.enable = true; 152 + services.xserver.desktopManager.cinnamon.enable = true; 153 + 154 + """ 155 + 156 + cfgmate = """ # Enable the X11 windowing system. 157 + services.xserver.enable = true; 158 + 159 + # Enable the MATE Desktop Environment. 160 + services.xserver.displayManager.lightdm.enable = true; 161 + services.xserver.desktopManager.mate.enable = true; 162 + 163 + """ 164 + 165 + cfgenlightenment = """ # Enable the X11 windowing system. 166 + services.xserver.enable = true; 167 + 168 + # Enable the Enlightenment Desktop Environment. 169 + services.xserver.displayManager.lightdm.enable = true; 170 + services.xserver.desktopManager.enlightenment.enable = true; 171 + 172 + # Enable acpid 173 + services.acpid.enable = true; 174 + 175 + """ 176 + 177 + cfglxqt = """ # Enable the X11 windowing system. 178 + services.xserver.enable = true; 179 + 180 + # Enable the LXQT Desktop Environment. 181 + services.xserver.displayManager.lightdm.enable = true; 182 + services.xserver.desktopManager.lxqt.enable = true; 183 + 184 + """ 185 + 186 + cfglumina = """ # Enable the X11 windowing system. 187 + services.xserver.enable = true; 188 + 189 + # Enable the Lumina Desktop Environment. 190 + services.xserver.displayManager.lightdm.enable = true; 191 + services.xserver.desktopManager.lumina.enable = true; 192 + 193 + """ 194 + 195 + cfgbudgie = """ # Enable the X11 windowing system. 196 + services.xserver.enable = true; 197 + 198 + # Enable the Budgie Desktop environment. 199 + services.xserver.displayManager.lightdm.enable = true; 200 + services.xserver.desktopManager.budgie.enable = true; 201 + 202 + """ 203 + 204 + cfgdeepin = """ # Enable the X11 windowing system. 205 + services.xserver.enable = true; 206 + 207 + # Enable the Deepin Desktop Environment. 208 + services.xserver.displayManager.lightdm.enable = true; 209 + services.xserver.desktopManager.deepin.enable = true; 210 + 211 + """ 212 + 213 + cfgkeymap = """ # Configure keymap in X11 214 + services.xserver.xkb = { 215 + layout = "@@kblayout@@"; 216 + variant = "@@kbvariant@@"; 217 + }; 218 + 219 + """ 220 + cfgconsole = """ # Configure console keymap 221 + console.keyMap = "@@vconsole@@"; 222 + 223 + """ 224 + 225 + cfgmisc = """ # Enable CUPS to print documents. 226 + services.printing.enable = true; 227 + 228 + # Enable sound with pipewire. 229 + services.pulseaudio.enable = false; 230 + security.rtkit.enable = true; 231 + services.pipewire = { 232 + enable = true; 233 + alsa.enable = true; 234 + alsa.support32Bit = true; 235 + pulse.enable = true; 236 + # If you want to use JACK applications, uncomment this 237 + #jack.enable = true; 238 + 239 + # use the example session manager (no others are packaged yet so this is enabled by default, 240 + # no need to redefine it in your config for now) 241 + #media-session.enable = true; 242 + }; 243 + 244 + # Enable touchpad support (enabled default in most desktopManager). 245 + # services.xserver.libinput.enable = true; 246 + 247 + """ 248 + cfgusers = """ # Define a user account. Don't forget to set a password with ‘passwd’. 249 + users.users.@@username@@ = { 250 + isNormalUser = true; 251 + description = "@@fullname@@"; 252 + extraGroups = [ @@groups@@ ]; 253 + packages = with pkgs; [@@pkgs@@]; 254 + }; 255 + 256 + """ 257 + 258 + cfgfirefox = """ # Install firefox. 259 + programs.firefox.enable = true; 260 + 261 + """ 262 + 263 + cfgautologin = """ # Enable automatic login for the user. 264 + services.displayManager.autoLogin.enable = true; 265 + services.displayManager.autoLogin.user = "@@username@@"; 266 + 267 + """ 268 + 269 + cfgautologingdm = """ # Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229 270 + systemd.services."getty@tty1".enable = false; 271 + systemd.services."autovt@tty1".enable = false; 272 + 273 + """ 274 + 275 + cfgautologintty = """ # Enable automatic login for the user. 276 + services.getty.autologinUser = "@@username@@"; 277 + 278 + """ 279 + 280 + cfgunfree = """ # Allow unfree packages 281 + nixpkgs.config.allowUnfree = true; 282 + 283 + """ 284 + 285 + cfgpkgs = """ # List packages installed in system profile. To search, run: 286 + # $ nix search wget 287 + environment.systemPackages = with pkgs; [ 288 + # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. 289 + # wget 290 + ]; 291 + 292 + """ 293 + 294 + cfgtail = """ # Some programs need SUID wrappers, can be configured further or are 295 + # started in user sessions. 296 + # programs.mtr.enable = true; 297 + # programs.gnupg.agent = { 298 + # enable = true; 299 + # enableSSHSupport = true; 300 + # }; 301 + 302 + # List services that you want to enable: 303 + 304 + # Enable the OpenSSH daemon. 305 + # services.openssh.enable = true; 306 + 307 + # Open ports in the firewall. 308 + # networking.firewall.allowedTCPPorts = [ ... ]; 309 + # networking.firewall.allowedUDPPorts = [ ... ]; 310 + # Or disable the firewall altogether. 311 + # networking.firewall.enable = false; 312 + 313 + # This value determines the NixOS release from which the default 314 + # settings for stateful data, like file locations and database versions 315 + # on your system were taken. It‘s perfectly fine and recommended to leave 316 + # this value at the release version of the first install of this system. 317 + # Before changing this value read the documentation for this option 318 + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). 319 + system.stateVersion = "@@nixosversion@@"; # Did you read the comment? 320 + 321 + } 322 + """ 323 + 324 + cfglatestkernel = """ # Use latest kernel. 325 + boot.kernelPackages = pkgs.linuxPackages_latest; 326 + 327 + """ 328 + def env_is_set(name): 329 + envValue = os.environ.get(name) 330 + return not (envValue is None or envValue == "") 331 + 332 + def generateProxyStrings(): 333 + proxyEnv = [] 334 + if env_is_set('http_proxy'): 335 + proxyEnv.append('http_proxy={}'.format(os.environ.get('http_proxy'))) 336 + if env_is_set('https_proxy'): 337 + proxyEnv.append('https_proxy={}'.format(os.environ.get('https_proxy'))) 338 + if env_is_set('HTTP_PROXY'): 339 + proxyEnv.append('HTTP_PROXY={}'.format(os.environ.get('HTTP_PROXY'))) 340 + if env_is_set('HTTPS_PROXY'): 341 + proxyEnv.append('HTTPS_PROXY={}'.format(os.environ.get('HTTPS_PROXY'))) 342 + 343 + if len(proxyEnv) > 0: 344 + proxyEnv.insert(0, "env") 345 + 346 + return proxyEnv 347 + 348 + def pretty_name(): 349 + return _("Installing NixOS.") 350 + 351 + 352 + status = pretty_name() 353 + 354 + 355 + def pretty_status_message(): 356 + return status 357 + 358 + 359 + def catenate(d, key, *values): 360 + """ 361 + Sets @p d[key] to the string-concatenation of @p values 362 + if none of the values are None. 363 + This can be used to set keys conditionally based on 364 + the values being found. 365 + """ 366 + if [v for v in values if v is None]: 367 + return 368 + 369 + d[key] = "".join(values) 370 + 371 + 372 + def run(): 373 + """NixOS Configuration.""" 374 + 375 + global status 376 + status = _("Configuring NixOS") 377 + libcalamares.job.setprogress(0.1) 378 + 379 + ngc_cfg = configparser.ConfigParser() 380 + ngc_cfg["Defaults"] = { "Kernel": "lts" } 381 + ngc_cfg.read("/etc/nixos-generate-config.conf") 382 + 383 + # Create initial config file 384 + cfg = cfghead 385 + gs = libcalamares.globalstorage 386 + variables = dict() 387 + 388 + # Setup variables 389 + root_mount_point = gs.value("rootMountPoint") 390 + config = os.path.join(root_mount_point, "etc/nixos/configuration.nix") 391 + fw_type = gs.value("firmwareType") 392 + bootdev = ( 393 + "nodev" 394 + if gs.value("bootLoader") is None 395 + else gs.value("bootLoader")["installPath"] 396 + ) 397 + 398 + # Pick config parts and prepare substitution 399 + 400 + # Check bootloader 401 + if fw_type == "efi": 402 + cfg += cfgbootefi 403 + elif bootdev != "nodev": 404 + cfg += cfgbootbios 405 + catenate(variables, "bootdev", bootdev) 406 + else: 407 + cfg += cfgbootnone 408 + 409 + if ngc_cfg["Defaults"]["Kernel"] == "latest": 410 + cfg += cfglatestkernel 411 + 412 + # Setup encrypted swap devices. nixos-generate-config doesn't seem to notice them. 413 + for part in gs.value("partitions"): 414 + if ( 415 + part["claimed"] is True 416 + and (part["fsName"] == "luks" or part["fsName"] == "luks2") 417 + and part["device"] is not None 418 + and part["fs"] == "linuxswap" 419 + ): 420 + cfg += """ boot.initrd.luks.devices."{}".device = "/dev/disk/by-uuid/{}";\n""".format( 421 + part["luksMapperName"], part["uuid"] 422 + ) 423 + 424 + # Check partitions 425 + root_is_encrypted = False 426 + boot_is_encrypted = False 427 + boot_is_partition = False 428 + 429 + for part in gs.value("partitions"): 430 + if part["mountPoint"] == "/": 431 + root_is_encrypted = part["fsName"] in ["luks", "luks2"] 432 + elif part["mountPoint"] == "/boot": 433 + boot_is_partition = True 434 + boot_is_encrypted = part["fsName"] in ["luks", "luks2"] 435 + 436 + # Setup keys in /boot/crypto_keyfile if using BIOS and Grub cryptodisk 437 + if fw_type != "efi" and ( 438 + (boot_is_partition and boot_is_encrypted) 439 + or (root_is_encrypted and not boot_is_partition) 440 + ): 441 + cfg += cfgbootgrubcrypt 442 + status = _("Setting up LUKS") 443 + libcalamares.job.setprogress(0.15) 444 + try: 445 + libcalamares.utils.host_env_process_output( 446 + ["mkdir", "-p", root_mount_point + "/boot"], None 447 + ) 448 + libcalamares.utils.host_env_process_output( 449 + ["chmod", "0700", root_mount_point + "/boot"], None 450 + ) 451 + # Create /boot/crypto_keyfile.bin 452 + libcalamares.utils.host_env_process_output( 453 + [ 454 + "dd", 455 + "bs=512", 456 + "count=4", 457 + "if=/dev/random", 458 + "of=" + root_mount_point + "/boot/crypto_keyfile.bin", 459 + "iflag=fullblock", 460 + ], 461 + None, 462 + ) 463 + libcalamares.utils.host_env_process_output( 464 + ["chmod", "600", root_mount_point + "/boot/crypto_keyfile.bin"], None 465 + ) 466 + except subprocess.CalledProcessError: 467 + libcalamares.utils.error("Failed to create /boot/crypto_keyfile.bin") 468 + return ( 469 + _("Failed to create /boot/crypto_keyfile.bin"), 470 + _("Check if you have enough free space on your partition."), 471 + ) 472 + 473 + for part in gs.value("partitions"): 474 + if ( 475 + part["claimed"] is True 476 + and (part["fsName"] == "luks" or part["fsName"] == "luks2") 477 + and part["device"] is not None 478 + ): 479 + cfg += """ boot.initrd.luks.devices."{}".keyFile = "/boot/crypto_keyfile.bin";\n""".format( 480 + part["luksMapperName"] 481 + ) 482 + try: 483 + # Grub currently only supports pbkdf2 for luks2 484 + libcalamares.utils.host_env_process_output( 485 + [ 486 + "cryptsetup", 487 + "luksConvertKey", 488 + "--hash", 489 + "sha256", 490 + "--pbkdf", 491 + "pbkdf2", 492 + part["device"], 493 + ], 494 + None, 495 + part["luksPassphrase"], 496 + ) 497 + # Add luks drives to /boot/crypto_keyfile.bin 498 + libcalamares.utils.host_env_process_output( 499 + [ 500 + "cryptsetup", 501 + "luksAddKey", 502 + "--hash", 503 + "sha256", 504 + "--pbkdf", 505 + "pbkdf2", 506 + part["device"], 507 + root_mount_point + "/boot/crypto_keyfile.bin", 508 + ], 509 + None, 510 + part["luksPassphrase"], 511 + ) 512 + except subprocess.CalledProcessError: 513 + libcalamares.utils.error( 514 + "Failed to add {} to /boot/crypto_keyfile.bin".format( 515 + part["luksMapperName"] 516 + ) 517 + ) 518 + return ( 519 + _("cryptsetup failed"), 520 + _( 521 + "Failed to add {} to /boot/crypto_keyfile.bin".format( 522 + part["luksMapperName"] 523 + ) 524 + ), 525 + ) 526 + 527 + status = _("Configuring NixOS") 528 + libcalamares.job.setprogress(0.18) 529 + 530 + cfg += cfgnetwork 531 + if gs.value("packagechooser_packagechooser") == "enlightenment": 532 + cfg += cfgconnman 533 + else: 534 + cfg += cfgnetworkmanager 535 + 536 + if ( 537 + (gs.value("packagechooser_packagechooser") == "mate") 538 + | (gs.value("packagechooser_packagechooser") == "lxqt") 539 + | (gs.value("packagechooser_packagechooser") == "lumina") 540 + ): 541 + cfg += cfgnmapplet 542 + 543 + if gs.value("hostname") is None: 544 + catenate(variables, "hostname", "nixos") 545 + else: 546 + catenate(variables, "hostname", gs.value("hostname")) 547 + 548 + if gs.value("locationRegion") is not None and gs.value("locationZone") is not None: 549 + cfg += cfgtime 550 + catenate( 551 + variables, 552 + "timezone", 553 + gs.value("locationRegion"), 554 + "/", 555 + gs.value("locationZone"), 556 + ) 557 + 558 + if gs.value("localeConf") is not None: 559 + localeconf = gs.value("localeConf") 560 + locale = localeconf.pop("LANG").split("/")[0] 561 + cfg += cfglocale 562 + catenate(variables, "LANG", locale) 563 + if ( 564 + len(set(localeconf.values())) != 1 565 + or list(set(localeconf.values()))[0] != locale 566 + ): 567 + cfg += cfglocaleextra 568 + for conf in localeconf: 569 + catenate(variables, conf, localeconf.get(conf).split("/")[0]) 570 + 571 + # Choose desktop environment 572 + if gs.value("packagechooser_packagechooser") == "gnome": 573 + cfg += cfggnome 574 + elif gs.value("packagechooser_packagechooser") == "plasma6": 575 + cfg += cfgplasma6 576 + elif gs.value("packagechooser_packagechooser") == "xfce": 577 + cfg += cfgxfce 578 + elif gs.value("packagechooser_packagechooser") == "pantheon": 579 + cfg += cfgpantheon 580 + elif gs.value("packagechooser_packagechooser") == "cinnamon": 581 + cfg += cfgcinnamon 582 + elif gs.value("packagechooser_packagechooser") == "mate": 583 + cfg += cfgmate 584 + elif gs.value("packagechooser_packagechooser") == "enlightenment": 585 + cfg += cfgenlightenment 586 + elif gs.value("packagechooser_packagechooser") == "lxqt": 587 + cfg += cfglxqt 588 + elif gs.value("packagechooser_packagechooser") == "lumina": 589 + cfg += cfglumina 590 + elif gs.value("packagechooser_packagechooser") == "budgie": 591 + cfg += cfgbudgie 592 + elif gs.value("packagechooser_packagechooser") == "deepin": 593 + cfg += cfgdeepin 594 + 595 + if ( 596 + gs.value("keyboardLayout") is not None 597 + and gs.value("keyboardVariant") is not None 598 + ): 599 + cfg += cfgkeymap 600 + catenate(variables, "kblayout", gs.value("keyboardLayout")) 601 + catenate(variables, "kbvariant", gs.value("keyboardVariant")) 602 + 603 + if gs.value("keyboardVConsoleKeymap") is not None: 604 + try: 605 + subprocess.check_output( 606 + ["pkexec", "loadkeys", gs.value("keyboardVConsoleKeymap").strip()], 607 + stderr=subprocess.STDOUT, 608 + ) 609 + cfg += cfgconsole 610 + catenate( 611 + variables, "vconsole", gs.value("keyboardVConsoleKeymap").strip() 612 + ) 613 + except subprocess.CalledProcessError as e: 614 + libcalamares.utils.error("loadkeys: {}".format(e.output)) 615 + libcalamares.utils.error( 616 + "Setting vconsole keymap to {} will fail, using default".format( 617 + gs.value("keyboardVConsoleKeymap").strip() 618 + ) 619 + ) 620 + else: 621 + kbdmodelmap = open( 622 + "/run/current-system/sw/share/systemd/kbd-model-map", "r" 623 + ) 624 + kbd = kbdmodelmap.readlines() 625 + out = [] 626 + for line in kbd: 627 + if line.startswith("#"): 628 + continue 629 + out.append(line.split()) 630 + # Find rows with same layout 631 + find = [] 632 + for row in out: 633 + if gs.value("keyboardLayout") == row[1]: 634 + find.append(row) 635 + if find != []: 636 + vconsole = find[0][0] 637 + else: 638 + vconsole = "" 639 + if gs.value("keyboardVariant") is not None: 640 + variant = gs.value("keyboardVariant") 641 + else: 642 + variant = "-" 643 + # Find rows with same variant 644 + for row in find: 645 + if variant in row[3]: 646 + vconsole = row[0] 647 + break 648 + # If none found set to "us" 649 + if vconsole != "" and vconsole != "us" and vconsole is not None: 650 + try: 651 + subprocess.check_output( 652 + ["pkexec", "loadkeys", vconsole], stderr=subprocess.STDOUT 653 + ) 654 + cfg += cfgconsole 655 + catenate(variables, "vconsole", vconsole) 656 + except subprocess.CalledProcessError as e: 657 + libcalamares.utils.error("loadkeys: {}".format(e.output)) 658 + libcalamares.utils.error("vconsole value: {}".format(vconsole)) 659 + libcalamares.utils.error( 660 + "Setting vconsole keymap to {} will fail, using default".format( 661 + gs.value("keyboardVConsoleKeymap") 662 + ) 663 + ) 664 + 665 + if ( 666 + gs.value("packagechooser_packagechooser") is not None 667 + and gs.value("packagechooser_packagechooser") != "" 668 + ): 669 + cfg += cfgmisc 670 + 671 + if gs.value("username") is not None: 672 + fullname = gs.value("fullname") 673 + groups = ["networkmanager", "wheel"] 674 + 675 + cfg += cfgusers 676 + catenate(variables, "username", gs.value("username")) 677 + catenate(variables, "fullname", fullname) 678 + catenate(variables, "groups", (" ").join(['"' + s + '"' for s in groups])) 679 + if ( 680 + gs.value("autoLoginUser") is not None 681 + and gs.value("packagechooser_packagechooser") is not None 682 + and gs.value("packagechooser_packagechooser") != "" 683 + ): 684 + cfg += cfgautologin 685 + if gs.value("packagechooser_packagechooser") == "gnome": 686 + cfg += cfgautologingdm 687 + elif gs.value("autoLoginUser") is not None: 688 + cfg += cfgautologintty 689 + 690 + if gs.value("packagechooser_packagechooser") != "": 691 + cfg += cfgfirefox 692 + 693 + # Check if unfree packages are allowed 694 + free = True 695 + if gs.value("nixos_allow_unfree"): 696 + free = False 697 + cfg += cfgunfree 698 + 699 + cfg += cfgpkgs 700 + # Use firefox as default as a graphical web browser, and add kate to plasma desktop 701 + if gs.value("packagechooser_packagechooser") == "plasma6": 702 + catenate( 703 + variables, "pkgs", "\n kdePackages.kate\n # thunderbird\n " 704 + ) 705 + elif gs.value("packagechooser_packagechooser") != "": 706 + catenate(variables, "pkgs", "\n # thunderbird\n ") 707 + else: 708 + catenate(variables, "pkgs", "") 709 + 710 + cfg += cfgtail 711 + version = ".".join(subprocess.getoutput(["nixos-version"]).split(".")[:2])[:5] 712 + catenate(variables, "nixosversion", version) 713 + 714 + # Check that all variables are used 715 + for key in variables.keys(): 716 + pattern = "@@{key}@@".format(key=key) 717 + if pattern not in cfg: 718 + libcalamares.utils.warning("Variable '{key}' is not used.".format(key=key)) 719 + 720 + # Check that all patterns exist 721 + variable_pattern = re.compile(r"@@\w+@@") 722 + for match in variable_pattern.finditer(cfg): 723 + variable_name = cfg[match.start() + 2 : match.end() - 2] 724 + if variable_name not in variables: 725 + libcalamares.utils.warning( 726 + "Variable '{key}' is used but not defined.".format(key=variable_name) 727 + ) 728 + 729 + # Do the substitutions 730 + for key in variables.keys(): 731 + pattern = "@@{key}@@".format(key=key) 732 + cfg = cfg.replace(pattern, str(variables[key])) 733 + 734 + status = _("Generating NixOS configuration") 735 + libcalamares.job.setprogress(0.25) 736 + 737 + try: 738 + # Generate hardware.nix with mounted swap device 739 + subprocess.check_output( 740 + ["pkexec", "nixos-generate-config", "--root", root_mount_point], 741 + stderr=subprocess.STDOUT, 742 + ) 743 + except subprocess.CalledProcessError as e: 744 + if e.output is not None: 745 + libcalamares.utils.error(e.output.decode("utf8")) 746 + return (_("nixos-generate-config failed"), _(e.output.decode("utf8"))) 747 + 748 + # Check for unfree stuff in hardware-configuration.nix 749 + hf = open(root_mount_point + "/etc/nixos/hardware-configuration.nix", "r") 750 + htxt = hf.read() 751 + search = re.search(r"boot\.extraModulePackages = \[ (.*) \];", htxt) 752 + 753 + # Check if any extraModulePackages are defined, and remove if only free packages are allowed 754 + if search is not None and free: 755 + expkgs = search.group(1).split(" ") 756 + for pkg in expkgs: 757 + p = ".".join(pkg.split(".")[3:]) 758 + # Check package p is unfree 759 + isunfree = subprocess.check_output( 760 + [ 761 + "nix-instantiate", 762 + "--eval", 763 + "--strict", 764 + "-E", 765 + "with import <nixpkgs> {{}}; pkgs.linuxKernel.packageAliases.linux_default.{}.meta.unfree".format( 766 + p 767 + ), 768 + "--json", 769 + ], 770 + stderr=subprocess.STDOUT, 771 + ) 772 + if isunfree == b"true": 773 + libcalamares.utils.warning( 774 + "{} is marked as unfree, removing from hardware-configuration.nix".format( 775 + p 776 + ) 777 + ) 778 + expkgs.remove(pkg) 779 + hardwareout = re.sub( 780 + r"boot\.extraModulePackages = \[ (.*) \];", 781 + "boot.extraModulePackages = [ {}];".format( 782 + "".join(map(lambda x: x + " ", expkgs)) 783 + ), 784 + htxt, 785 + ) 786 + # Write the hardware-configuration.nix file 787 + libcalamares.utils.host_env_process_output( 788 + [ 789 + "cp", 790 + "/dev/stdin", 791 + root_mount_point + "/etc/nixos/hardware-configuration.nix", 792 + ], 793 + None, 794 + hardwareout, 795 + ) 796 + 797 + # Write the configuration.nix file 798 + libcalamares.utils.host_env_process_output(["cp", "/dev/stdin", config], None, cfg) 799 + 800 + status = _("Installing NixOS") 801 + libcalamares.job.setprogress(0.3) 802 + 803 + # build nixos-install command 804 + nixosInstallCmd = [ "pkexec" ] 805 + nixosInstallCmd.extend(generateProxyStrings()) 806 + nixosInstallCmd.extend( 807 + [ 808 + "nixos-install", 809 + "--no-root-passwd", 810 + "--root", 811 + root_mount_point 812 + ] 813 + ) 814 + 815 + # Install customizations 816 + try: 817 + output = "" 818 + proc = subprocess.Popen( 819 + nixosInstallCmd, 820 + stdout=subprocess.PIPE, 821 + stderr=subprocess.STDOUT 822 + ) 823 + while True: 824 + line = proc.stdout.readline().decode("utf-8") 825 + output += line 826 + libcalamares.utils.debug("nixos-install: {}".format(line.strip())) 827 + if not line: 828 + break 829 + exit = proc.wait() 830 + if exit != 0: 831 + return (_("nixos-install failed"), _(output)) 832 + except: 833 + return (_("nixos-install failed"), _("Installation failed to complete")) 834 + 835 + return None
+5
pkgs/by-name/ca/calamares-nixos-extensions/src/modules/nixos/module.desc
··· 1 + --- 2 + type: "job" 3 + name: "nixos" 4 + interface: "python" 5 + script: "main.py"
+30
pkgs/by-name/ca/calamares-nixos/package.nix
··· 1 + { 2 + lib, 3 + runCommand, 4 + makeWrapper, 5 + calamares, 6 + calamares-nixos-extensions, 7 + }: 8 + runCommand "calamares-wrapped" 9 + { 10 + inherit (calamares) version meta; 11 + 12 + nativeBuildInputs = [ makeWrapper ]; 13 + } 14 + '' 15 + mkdir -p $out/bin 16 + 17 + cd ${calamares} 18 + 19 + for i in *; do 20 + if [ "$i" == "bin" ]; then 21 + continue 22 + fi 23 + ln -s ${calamares}/$i $out/$i 24 + done 25 + 26 + makeWrapper ${lib.getExe calamares} $out/bin/calamares \ 27 + --prefix XDG_DATA_DIRS : ${calamares-nixos-extensions}/share \ 28 + --prefix XDG_CONFIG_DIRS : ${calamares-nixos-extensions}/etc \ 29 + --add-flag --xdg-config 30 + ''
+33
pkgs/by-name/ca/calamares/let-qml-write-to-global-storage.patch
··· 1 + diff --git a/src/libcalamares/GlobalStorage.h b/src/libcalamares/GlobalStorage.h 2 + index 37ea332d2..b9e629350 100644 3 + --- a/src/libcalamares/GlobalStorage.h 4 + +++ b/src/libcalamares/GlobalStorage.h 5 + @@ -56,13 +56,6 @@ public: 6 + */ 7 + explicit GlobalStorage( QObject* parent = nullptr ); 8 + 9 + - /** @brief Insert a key and value into the store 10 + - * 11 + - * The @p value is added to the store with key @p key. If @p key 12 + - * already exists in the store, its existing value is overwritten. 13 + - * The changed() signal is emitted regardless. 14 + - */ 15 + - void insert( const QString& key, const QVariant& value ); 16 + /** @brief Removes a key and its value 17 + * 18 + * The @p key is removed from the store. If the @p key does not 19 + @@ -123,6 +116,14 @@ public: 20 + QVariantMap data() const { return m; } 21 + 22 + public Q_SLOTS: 23 + + /** @brief Insert a key and value into the store 24 + + * 25 + + * The @p value is added to the store with key @p key. If @p key 26 + + * already exists in the store, its existing value is overwritten. 27 + + * The changed() signal is emitted regardless. 28 + + */ 29 + + void insert( const QString& key, const QVariant& value ); 30 + + 31 + /** @brief Does the store contain the given key? 32 + * 33 + * This can distinguish an explicitly-inserted QVariant() from
+135
pkgs/by-name/ca/calamares/package.nix
··· 1 + { 2 + lib, 3 + stdenv, 4 + 5 + writeShellScriptBin, 6 + xdg-utils, 7 + 8 + fetchFromGitea, 9 + 10 + cmake, 11 + ninja, 12 + kdePackages, 13 + qt6, 14 + 15 + libpwquality, 16 + libxcrypt, 17 + parted, 18 + yaml-cpp, 19 + 20 + tzdata, 21 + ckbcomp, 22 + util-linux, 23 + os-prober, 24 + xkeyboard_config, 25 + 26 + # passthru.tests 27 + calamares-nixos, 28 + }: 29 + 30 + let 31 + # drop privileges so we can launch browsers, etc; 32 + # force going through the portal so we get the right environment 33 + xdg-open-nixos = writeShellScriptBin "xdg-open" '' 34 + sudo --user $(id -nu $PKEXEC_UID) env NIXOS_XDG_OPEN_USE_PORTAL=1 ${xdg-utils}/bin/xdg-open "$@" 35 + ''; 36 + in 37 + stdenv.mkDerivation (finalAttrs: { 38 + pname = "calamares"; 39 + version = "3.4.0"; 40 + 41 + src = fetchFromGitea { 42 + domain = "codeberg.org"; 43 + owner = "Calamares"; 44 + repo = "calamares"; 45 + tag = "v${finalAttrs.version}"; 46 + hash = "sha256-Qk+GnonuEWK3hXjmwxf9awgxr6dGunShJgwmkT78qKM="; 47 + }; 48 + 49 + patches = [ 50 + # Don't allow LUKS in manual partitioning 51 + # FIXME: this really needs to be fixed on the module end 52 + ./dont-allow-manual-luks.patch 53 + 54 + # Don't create users - they're already created by the installer 55 + # FIXME: upstream this? 56 + ./dont-create-users.patch 57 + 58 + # Allow QML to write to GlobalStorage 59 + # FIXME: upstream this 60 + ./let-qml-write-to-global-storage.patch 61 + ]; 62 + 63 + nativeBuildInputs = [ 64 + cmake 65 + ninja 66 + kdePackages.extra-cmake-modules 67 + qt6.wrapQtAppsHook 68 + ]; 69 + 70 + buildInputs = [ 71 + kdePackages.kcoreaddons 72 + kdePackages.kcrash 73 + kdePackages.kpackage 74 + kdePackages.kparts 75 + kdePackages.kpmcore 76 + kdePackages.kservice 77 + kdePackages.libplasma 78 + libpwquality 79 + libxcrypt 80 + parted 81 + kdePackages.polkit-qt-1 82 + qt6.qtbase 83 + qt6.qttools 84 + yaml-cpp 85 + ]; 86 + 87 + postPatch = '' 88 + # this is called via pkexec, which does not resolve symlinks, so the policy 89 + # needs to point at the symlinked path 90 + substituteInPlace io.calamares.calamares.policy \ 91 + --replace-fail /usr/bin/calamares /run/current-system/sw/bin/calamares 92 + 93 + substituteInPlace src/modules/locale/SetTimezoneJob.cpp src/libcalamares/locale/TimeZone.cpp \ 94 + --replace-fail /usr/share/zoneinfo ${tzdata}/share/zoneinfo 95 + 96 + substituteInPlace src/modules/keyboard/keyboardwidget/keyboardglobal.cpp \ 97 + --replace-fail /usr/share/X11/xkb/rules/base.lst ${xkeyboard_config}/share/X11/xkb/rules/base.lst 98 + 99 + substituteInPlace CMakeLists.txt \ 100 + --replace-fail "\''${POLKITQT-1_POLICY_FILES_INSTALL_DIR}" "$out/share/polkit-1/actions" 101 + ''; 102 + 103 + separateDebugInfo = true; 104 + 105 + qtWrapperArgs = [ 106 + "--prefix PATH : ${ 107 + lib.makeBinPath [ 108 + ckbcomp 109 + os-prober 110 + util-linux 111 + xdg-open-nixos 112 + ] 113 + }" 114 + ]; 115 + 116 + passthru.tests = { 117 + inherit calamares-nixos; 118 + }; 119 + 120 + meta = with lib; { 121 + description = "Distribution-independent installer framework"; 122 + homepage = "https://calamares.io/"; 123 + license = with licenses; [ 124 + gpl3Plus 125 + bsd2 126 + cc0 127 + ]; 128 + maintainers = with maintainers; [ 129 + manveru 130 + vlinkz 131 + ]; 132 + platforms = platforms.linux; 133 + mainProgram = "calamares"; 134 + }; 135 + })
+4 -4
pkgs/by-name/cl/claude-code/package-lock.json
··· 6 6 "packages": { 7 7 "": { 8 8 "dependencies": { 9 - "@anthropic-ai/claude-code": "^1.0.72" 9 + "@anthropic-ai/claude-code": "^1.0.73" 10 10 } 11 11 }, 12 12 "node_modules/@anthropic-ai/claude-code": { 13 - "version": "1.0.72", 14 - "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.72.tgz", 15 - "integrity": "sha512-nA/l/xKX4sgOE0Y6P3o6czNGQqlyqJPjs9CHFxantsmyKvOot9VlRW4AiEAn42hQrZReCXeSnt8LOMx9ev7Erg==", 13 + "version": "1.0.73", 14 + "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.73.tgz", 15 + "integrity": "sha512-UVBkta/BWy49xR9fgi/Oy2tl7p/k+lOCinv21zSK/E9KB4JObAAZ1BAOWteu4fhv7gs3Ipfev5r6yo3OplmwNg==", 16 16 "license": "SEE LICENSE IN README.md", 17 17 "bin": { 18 18 "claude": "cli.js"
+3 -3
pkgs/by-name/cl/claude-code/package.nix
··· 7 7 8 8 buildNpmPackage rec { 9 9 pname = "claude-code"; 10 - version = "1.0.72"; 10 + version = "1.0.73"; 11 11 12 12 nodejs = nodejs_20; # required for sandboxed Nix builds on Darwin 13 13 14 14 src = fetchzip { 15 15 url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${version}.tgz"; 16 - hash = "sha256-1vIElqZ5sk62o1amdfOqhmSG4B5wzKWDLcCgvQO4a5o="; 16 + hash = "sha256-DdNMgKiGA4NjBAqes3hsWLouvcgtDDFnBWdNGpRgSV4="; 17 17 }; 18 18 19 - npmDepsHash = "sha256-LkQf2lW6TM1zRr10H7JgtnE+dy0CE7WCxF4GhTd4GT4="; 19 + npmDepsHash = "sha256-PYACkrv/8d4StNaM6QYaIgjrD6rL0N6cc08wagcga+A="; 20 20 21 21 postPatch = '' 22 22 cp ${./package-lock.json} package-lock.json
+4 -4
pkgs/by-name/cr/crush/package.nix
··· 9 9 10 10 buildGoModule (finalAttrs: { 11 11 pname = "crush"; 12 - version = "0.2.1"; 12 + version = "0.5.0"; 13 13 14 14 src = fetchFromGitHub { 15 15 owner = "charmbracelet"; 16 16 repo = "crush"; 17 17 tag = "v${finalAttrs.version}"; 18 - hash = "sha256-SjrkQFSjJrPNynARE92uKA53hkstIUBSvQbqcYSsnaM="; 18 + hash = "sha256-u2w19Xmcm3cx/B8QRNGaP2qeg+Cif/L92RNlJav6H3w="; 19 19 }; 20 20 21 + vendorHash = "sha256-H92TgZoWdYQ863AAb2116zJtmgkKXh2hRoEBRcn5zeA="; 22 + 21 23 # rename TestMain to prevent it from running, as it panics in the sandbox. 22 24 postPatch = '' 23 25 substituteInPlace internal/llm/provider/openai_test.go \ ··· 25 27 "func TestMain" \ 26 28 "func DisabledTestMain" 27 29 ''; 28 - 29 - vendorHash = "sha256-aI3MSaQYUOLJxBxwCoVg13HpxK46q6ZITrw1osx5tiE="; 30 30 31 31 ldflags = [ 32 32 "-s"
+2 -2
pkgs/by-name/cu/cue/package.nix
··· 10 10 11 11 buildGoModule (finalAttrs: { 12 12 pname = "cue"; 13 - version = "0.14.0"; 13 + version = "0.14.1"; 14 14 15 15 src = fetchFromGitHub { 16 16 owner = "cue-lang"; 17 17 repo = "cue"; 18 18 tag = "v${finalAttrs.version}"; 19 - hash = "sha256-rQsFMBREmXnJP1vTr+mz1720nVI0oxvDYEuQtibL79g="; 19 + hash = "sha256-U/Cptda+2UIDIxuStNYAwZABlNdkS723TnoixVlvS4k="; 20 20 }; 21 21 22 22 vendorHash = "sha256-hV5LO9R854YuazzS6VkxoY64h3+JboBgEDRWAoWats8=";
+2 -2
pkgs/by-name/da/dart-sass/package.nix
··· 23 23 in 24 24 buildDartApplication rec { 25 25 pname = "dart-sass"; 26 - version = "1.89.2"; 26 + version = "1.90.0"; 27 27 28 28 src = fetchFromGitHub { 29 29 owner = "sass"; 30 30 repo = "dart-sass"; 31 31 tag = version; 32 - hash = "sha256-IDR00pxEKQ5DQM+q0P/iRnsH80ZUbokZhbnBoomy2oQ="; 32 + hash = "sha256-ChHaFjuEhDpx2MVbsNNrFIg7LQ6tY/9BsWSF3MFofN0="; 33 33 }; 34 34 35 35 pubspecLock = lib.importJSON ./pubspec.lock.json;
+30 -20
pkgs/by-name/da/dart-sass/pubspec.lock.json
··· 4 4 "dependency": "transitive", 5 5 "description": { 6 6 "name": "_fe_analyzer_shared", 7 - "sha256": "e55636ed79578b9abca5fecf9437947798f5ef7456308b5cb85720b793eac92f", 7 + "sha256": "da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f", 8 8 "url": "https://pub.dev" 9 9 }, 10 10 "source": "hosted", 11 - "version": "82.0.0" 11 + "version": "85.0.0" 12 12 }, 13 13 "analyzer": { 14 14 "dependency": "direct dev", 15 15 "description": { 16 16 "name": "analyzer", 17 - "sha256": "904ae5bb474d32c38fb9482e2d925d5454cda04ddd0e55d2e6826bc72f6ba8c0", 17 + "sha256": "974859dc0ff5f37bc4313244b3218c791810d03ab3470a579580279ba971a48d", 18 18 "url": "https://pub.dev" 19 19 }, 20 20 "source": "hosted", 21 - "version": "7.4.5" 21 + "version": "7.7.1" 22 22 }, 23 23 "archive": { 24 24 "dependency": "direct dev", ··· 144 144 "dependency": "transitive", 145 145 "description": { 146 146 "name": "coverage", 147 - "sha256": "aa07dbe5f2294c827b7edb9a87bba44a9c15a3cc81bc8da2ca19b37322d30080", 147 + "sha256": "5da775aa218eaf2151c721b16c01c7676fbfdd99cebba2bf64e8b807a28ff94d", 148 148 "url": "https://pub.dev" 149 149 }, 150 150 "source": "hosted", 151 - "version": "1.14.1" 151 + "version": "1.15.0" 152 152 }, 153 153 "crypto": { 154 154 "dependency": "direct dev", ··· 174 174 "dependency": "transitive", 175 175 "description": { 176 176 "name": "dart_mappable", 177 - "sha256": "2255b2c00e328a65fef5a8df2dabfc0dc9c2e518c33a50051a4519b1c7a28c48", 177 + "sha256": "15f41a35da8ee690bbfa0059fa241edeeaea73f89a2ba685b354ece07cd8ada6", 178 178 "url": "https://pub.dev" 179 179 }, 180 180 "source": "hosted", 181 - "version": "4.5.0" 181 + "version": "4.6.0" 182 + }, 183 + "dart_style": { 184 + "dependency": "transitive", 185 + "description": { 186 + "name": "dart_style", 187 + "sha256": "8a0e5fba27e8ee025d2ffb4ee820b4e6e2cf5e4246a6b1a477eb66866947e0bb", 188 + "url": "https://pub.dev" 189 + }, 190 + "source": "hosted", 191 + "version": "3.1.1" 182 192 }, 183 193 "dartdoc": { 184 194 "dependency": "direct dev", ··· 264 274 "dependency": "direct main", 265 275 "description": { 266 276 "name": "http", 267 - "sha256": "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b", 277 + "sha256": "bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007", 268 278 "url": "https://pub.dev" 269 279 }, 270 280 "source": "hosted", 271 - "version": "1.4.0" 281 + "version": "1.5.0" 272 282 }, 273 283 "http_multi_server": { 274 284 "dependency": "transitive", ··· 474 484 "dependency": "direct main", 475 485 "description": { 476 486 "name": "protobuf", 477 - "sha256": "579fe5557eae58e3adca2e999e38f02441d8aa908703854a9e0a0f47fa857731", 487 + "sha256": "6153efcc92a06910918f3db8231fd2cf828ac81e50ebd87adc8f8a8cb3caff0e", 478 488 "url": "https://pub.dev" 479 489 }, 480 490 "source": "hosted", 481 - "version": "4.1.0" 491 + "version": "4.1.1" 482 492 }, 483 493 "protoc_plugin": { 484 494 "dependency": "direct dev", 485 495 "description": { 486 496 "name": "protoc_plugin", 487 - "sha256": "32fbf4ac1b1a7263440898c9011209c3a13c9063f326ef78da83734e6f992ff3", 497 + "sha256": "5bf4289e0fa9eec4b0ee4e77111fa47fa2e6b54b2a7b9c2e83ec87a971542f01", 488 498 "url": "https://pub.dev" 489 499 }, 490 500 "source": "hosted", 491 - "version": "22.3.0" 501 + "version": "22.5.0" 492 502 }, 493 503 "pub_api_client": { 494 504 "dependency": "direct dev", ··· 654 664 "dependency": "direct dev", 655 665 "description": { 656 666 "name": "test", 657 - "sha256": "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb", 667 + "sha256": "75906bf273541b676716d1ca7627a17e4c4070a3a16272b7a3dc7da3b9f3f6b7", 658 668 "url": "https://pub.dev" 659 669 }, 660 670 "source": "hosted", 661 - "version": "1.26.2" 671 + "version": "1.26.3" 662 672 }, 663 673 "test_api": { 664 674 "dependency": "transitive", 665 675 "description": { 666 676 "name": "test_api", 667 - "sha256": "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00", 677 + "sha256": "ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55", 668 678 "url": "https://pub.dev" 669 679 }, 670 680 "source": "hosted", 671 - "version": "0.7.6" 681 + "version": "0.7.7" 672 682 }, 673 683 "test_core": { 674 684 "dependency": "transitive", 675 685 "description": { 676 686 "name": "test_core", 677 - "sha256": "80bf5a02b60af04b09e14f6fe68b921aad119493e26e490deaca5993fef1b05a", 687 + "sha256": "0cc24b5ff94b38d2ae73e1eb43cc302b77964fbf67abad1e296025b78deb53d0", 678 688 "url": "https://pub.dev" 679 689 }, 680 690 "source": "hosted", 681 - "version": "0.6.11" 691 + "version": "0.6.12" 682 692 }, 683 693 "test_descriptor": { 684 694 "dependency": "direct dev",
+5
pkgs/by-name/el/element-desktop/package.nix
··· 77 77 runHook postConfigure 78 78 ''; 79 79 80 + # Workaround for darwin sandbox build failure: "Error: listen EPERM: operation not permitted ..tsx..." 81 + preBuild = lib.optionalString stdenv.hostPlatform.isDarwin '' 82 + export TMPDIR="$(mktemp -d)" 83 + ''; 84 + 80 85 buildPhase = '' 81 86 runHook preBuild 82 87
+3 -3
pkgs/by-name/fr/fractal/package.nix
··· 30 30 31 31 stdenv.mkDerivation (finalAttrs: { 32 32 pname = "fractal"; 33 - version = "11.2"; 33 + version = "12"; 34 34 35 35 src = fetchFromGitLab { 36 36 domain = "gitlab.gnome.org"; 37 37 owner = "World"; 38 38 repo = "fractal"; 39 39 tag = finalAttrs.version; 40 - hash = "sha256-UE0TRC9DeP+fl85fzuQ8/3ioIPdeSqsJWnW1olB1gmo="; 40 + hash = "sha256-galaFpHcWrN+jQ6uOS78EB6wjfR8KIBLZvKmH7Rb1Xs="; 41 41 }; 42 42 43 43 cargoDeps = rustPlatform.fetchCargoVendor { 44 44 inherit (finalAttrs) src; 45 - hash = "sha256-I+1pGZWxn9Q/CL8D6VxsaO3H4EdBek4wyykvNgCNRZI="; 45 + hash = "sha256-DuEuCvhwulDHVCmUPXcM6PZ34nueRmKYHYffSsFCbLE="; 46 46 }; 47 47 48 48 patches = [
+2 -2
pkgs/by-name/hy/hypercore/package.nix
··· 7 7 8 8 buildNpmPackage (finalAttrs: { 9 9 pname = "hypercore"; 10 - version = "11.11.2"; 10 + version = "11.12.1"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "holepunchto"; 14 14 repo = "hypercore"; 15 15 tag = "v${finalAttrs.version}"; 16 - hash = "sha256-vDI1j5seR6OBp64wq9oy4eVrtlJF7OCiQb+2EEdOGXw="; 16 + hash = "sha256-AhmOT+ehyfut8QkwbcdHITOrWKfLPsjDx9zjBv9xeB4="; 17 17 }; 18 18 19 19 npmDepsHash = "sha256-ZJxVmQWKgHyKkuYfGIlANXFcROjI7fibg6mxIhDZowM=";
+2 -2
pkgs/by-name/im/immich/sources.json
··· 19 19 "version": "1.137.3" 20 20 }, 21 21 "geonames": { 22 - "timestamp": "20250801182552", 23 - "hash": "sha256-jfC/FgfeSz1tdtYc1EqQ/HJw5LlYQSyGntPuXv24JVY=" 22 + "timestamp": "20250812073904", 23 + "hash": "sha256-1ZvFkaNdG5s25YwP5CsblvIFT4rlvNrCBiPNR+lAPTQ=" 24 24 } 25 25 } 26 26 }
+38
pkgs/by-name/in/intercept-build/package.nix
··· 1 + { 2 + lib, 3 + llvmPackages, 4 + python3, 5 + }: 6 + let 7 + inherit (llvmPackages) clang-unwrapped; 8 + in 9 + python3.pkgs.buildPythonApplication rec { 10 + pname = "intercept-build"; 11 + inherit (clang-unwrapped) version; 12 + 13 + format = "other"; 14 + 15 + src = clang-unwrapped + "/bin"; 16 + 17 + dontUnpack = true; 18 + 19 + dependencies = with python3.pkgs; [ 20 + libscanbuild 21 + ]; 22 + 23 + installPhase = '' 24 + mkdir -p "$out/bin" 25 + install "$src/intercept-build" "$out/bin" 26 + ''; 27 + 28 + meta = { 29 + description = "intercepts the build process to generate a compilation database"; 30 + homepage = "https://github.com/llvm/llvm-project/tree/llvmorg-${version}/clang/tools/scan-build-py/"; 31 + mainProgram = "intercept-build"; 32 + license = with lib.licenses; [ 33 + asl20 34 + llvm-exception 35 + ]; 36 + maintainers = with lib.maintainers; [ RossSmyth ]; 37 + }; 38 + }
+3 -3
pkgs/by-name/is/istioctl/package.nix
··· 7 7 8 8 buildGoModule rec { 9 9 pname = "istioctl"; 10 - version = "1.26.3"; 10 + version = "1.27.0"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "istio"; 14 14 repo = "istio"; 15 15 rev = version; 16 - hash = "sha256-GWhG3FV9CLhy+IBJSKjf6FOzvex0xI62+7dmZz/lASg="; 16 + hash = "sha256-Rehzwr/6S1c3kzqyJIIvLO3jDTSSrkyb2HHcUn9Tco8="; 17 17 }; 18 - vendorHash = "sha256-P6h/cIJ3mCHJZEceEB2CDutftwh5Saie9oxmF3TXbdo="; 18 + vendorHash = "sha256-AAWGfNRAgR/Vr3VDMphOPah8a02czsf8fpWi2aeG1Jo="; 19 19 20 20 nativeBuildInputs = [ installShellFiles ]; 21 21
+42
pkgs/by-name/ki/kirsch/package.nix
··· 1 + { 2 + lib, 3 + stdenvNoCC, 4 + fetchzip, 5 + xorg, 6 + }: 7 + 8 + stdenvNoCC.mkDerivation (finalAttrs: { 9 + pname = "kirsch"; 10 + version = "0.6.1"; 11 + 12 + src = fetchzip { 13 + url = "https://github.com/molarmanful/kirsch/releases/download/v${finalAttrs.version}/kirsch-release_v${finalAttrs.version}.zip"; 14 + hash = "sha256-6POi3N1JX6FFWHwqOlB3mrkHMYG+TJXz9URarbSPrZw="; 15 + }; 16 + 17 + nativeBuildInputs = [ xorg.mkfontscale ]; 18 + 19 + installPhase = '' 20 + runHook preInstall 21 + 22 + misc="$out/share/fonts/misc" 23 + install -D -m 644 *.{bdf,otb,pcf} -t "$misc" 24 + install -D -m 644 *.ttf -t "$out/share/fonts/truetype" 25 + 26 + # create fonts.dir so NixOS xorg module adds to fp 27 + mkfontdir "$misc" 28 + 29 + runHook postInstall 30 + ''; 31 + 32 + meta = { 33 + description = "Versatile bitmap font with an organic flair"; 34 + homepage = "https://github.com/molarmanful/kirsch"; 35 + changelog = "https://github.com/molarmanful/kirsch/releases/tag/v${finalAttrs.version}"; 36 + license = lib.licenses.ofl; 37 + platforms = lib.platforms.all; 38 + maintainers = with lib.maintainers; [ 39 + ejiektpobehuk 40 + ]; 41 + }; 42 + })
+2 -2
pkgs/by-name/ko/koboldcpp/package.nix
··· 41 41 in 42 42 effectiveStdenv.mkDerivation (finalAttrs: { 43 43 pname = "koboldcpp"; 44 - version = "1.96.2"; 44 + version = "1.97.4"; 45 45 46 46 src = fetchFromGitHub { 47 47 owner = "LostRuins"; 48 48 repo = "koboldcpp"; 49 49 tag = "v${finalAttrs.version}"; 50 - hash = "sha256-OSAFJ2z6vSTTOovgcF/TZvug51uydmZmkjamN/xv2dc="; 50 + hash = "sha256-z9F3q+1iq6HQV37yRjBOlJRChhnQ/cPP5sAZl5rFDUs="; 51 51 }; 52 52 53 53 enableParallelBuilding = true;
+2 -2
pkgs/by-name/ku/kubevirt/package.nix
··· 9 9 10 10 buildGoModule rec { 11 11 pname = "kubevirt"; 12 - version = "1.5.2"; 12 + version = "1.6.0"; 13 13 14 14 src = fetchFromGitHub { 15 15 owner = "kubevirt"; 16 16 repo = "kubevirt"; 17 17 rev = "v${version}"; 18 - hash = "sha256-R01kW6mS1Ce3oi3p6RFVXif/BybM9HlbL2WT9b5wJuE="; 18 + hash = "sha256-vPlQ03AR44UVlRkZe34ZhdhBInZloOeEgjHXq7RC5Lw="; 19 19 }; 20 20 21 21 vendorHash = null;
+2 -2
pkgs/by-name/li/libmediainfo/package.nix
··· 14 14 15 15 stdenv.mkDerivation rec { 16 16 pname = "libmediainfo"; 17 - version = "25.04"; 17 + version = "25.07.1"; 18 18 19 19 src = fetchurl { 20 20 url = "https://mediaarea.net/download/source/libmediainfo/${version}/libmediainfo_${version}.tar.xz"; 21 - hash = "sha256-rUXtfJ23gHqoA4RcqIutlSaqjaiDpYEn5TkKqi2Bu7E="; 21 + hash = "sha256-jm6S8gzyynzoq6U60LWJqJovp9/T55cdOFAQms1JvtU="; 22 22 }; 23 23 24 24 nativeBuildInputs = [
+11 -4
pkgs/by-name/ly/LycheeSlicer/package.nix
··· 4 4 makeDesktopItem, 5 5 lib, 6 6 xorg, 7 + wayland, 8 + wayland-protocols, 7 9 }: 8 10 let 9 11 pname = "LycheeSlicer"; ··· 18 20 name = "Lychee Slicer"; 19 21 genericName = "Resin Slicer"; 20 22 comment = "All-in-one 3D slicer for Resin and Filament"; 21 - desktopName = "Lychee"; 23 + desktopName = "LycheeSlicer"; 22 24 noDisplay = false; 23 25 exec = "lychee"; 24 26 terminal = false; ··· 39 41 install -Dm444 -t $out/share/applications ${desktopItem}/share/applications/* 40 42 ''; 41 43 42 - extraLibraries = [ 44 + extraPkgs = _: [ 43 45 xorg.libxshmfence 46 + wayland 47 + wayland-protocols 44 48 ]; 45 49 46 50 meta = { 47 51 description = "All-in-one 3D slicer for resin and FDM printers"; 48 52 homepage = "https://lychee.mango3d.io/"; 49 53 license = lib.licenses.unfree; 50 - maintainers = with lib.maintainers; [ tarinaky ]; 54 + maintainers = with lib.maintainers; [ 55 + tarinaky 56 + ZachDavies 57 + ]; 51 58 platforms = [ "x86_64-linux" ]; 52 - mainProgram = "lychee"; 59 + mainProgram = "LycheeSlicer"; 53 60 }; 54 61 }
+2 -2
pkgs/by-name/mt/mtxclient/package.nix
··· 16 16 17 17 stdenv.mkDerivation rec { 18 18 pname = "mtxclient"; 19 - version = "0.10.0"; 19 + version = "0.10.1"; 20 20 21 21 src = fetchFromGitHub { 22 22 owner = "Nheko-Reborn"; 23 23 repo = "mtxclient"; 24 24 rev = "v${version}"; 25 - hash = "sha256-luWcbYCv5OM3aidxiO7glqD+VYnCZMElZYaPKbtvMYI="; 25 + hash = "sha256-Y0FMCq4crSbm0tJtYq04ZFwWw+vlfxXKXBo0XUgf7hw="; 26 26 }; 27 27 28 28 postPatch = ''
+3 -3
pkgs/by-name/n8/n8n/package.nix
··· 17 17 18 18 stdenv.mkDerivation (finalAttrs: { 19 19 pname = "n8n"; 20 - version = "1.104.1"; 20 + version = "1.105.3"; 21 21 22 22 src = fetchFromGitHub { 23 23 owner = "n8n-io"; 24 24 repo = "n8n"; 25 25 tag = "n8n@${finalAttrs.version}"; 26 - hash = "sha256-/GrpcJU94NqeTAcXVGWG+NamS28cLxKDSr6M4sF6Els="; 26 + hash = "sha256-IsAazA4DCkcOE5lNbxNMYgWAZycwjLYneSFBLAhltac="; 27 27 }; 28 28 29 29 pnpmDeps = pnpm_10.fetchDeps { 30 30 inherit (finalAttrs) pname version src; 31 31 fetcherVersion = 1; 32 - hash = "sha256-UhCwZPthRZSF5ZLFLc5SgG5EZeFySnCRLqGRbc+3F/U="; 32 + hash = "sha256-maKD03Gr1gGUQwvTk35kv89a9TvzsIeKqI9NjjTO1TQ="; 33 33 }; 34 34 35 35 nativeBuildInputs = [
+2 -2
pkgs/by-name/nh/nheko/package.nix
··· 26 26 27 27 stdenv.mkDerivation rec { 28 28 pname = "nheko"; 29 - version = "0.12.0"; 29 + version = "0.12.1"; 30 30 31 31 src = fetchFromGitHub { 32 32 owner = "Nheko-Reborn"; 33 33 repo = "nheko"; 34 34 rev = "v${version}"; 35 - hash = "sha256-hQb+K8ogNj/s6ZO2kgS/sZZ35y4CwMeS3lVeMYNucYQ="; 35 + hash = "sha256-WlWxe4utRSc9Tt2FsnhBwxzQsoDML2hvm3g5zRnDEiU="; 36 36 }; 37 37 38 38 nativeBuildInputs = [
+3 -4
pkgs/by-name/ni/nixos-rebuild-ng/README.md
··· 89 89 your password wrong, it will fail during activation (this can be improved 90 90 though) 91 91 - When `--build-host` and `--target-host` are used together, we will use `nix 92 - copy` (or 2 `nix-copy-closure` if you're using Nix <2.18) instead of SSH'ing 93 - to build host and using `nix-copy-closure --to target-host`. The reason for 94 - this is documented in PR 92 + copy` instead of SSH'ing to build host and using 93 + `nix-copy-closure --to target-host`. The reason for this is documented in PR 95 94 [#364698](https://github.com/NixOS/nixpkgs/pull/364698). If you do need the 96 95 previous behavior, you can simulate it using `ssh build-host -- 97 96 nixos-rebuild-ng switch --target-host target-host`. If that is not the case, ··· 119 118 and there was a need to bootstrap a new version of Nix before evaluating the 120 119 configuration (otherwise the new Nixpkgs version may have code that is only 121 120 compatible with a newer version of Nix). Nixpkgs now has a policy to be 122 - compatible with Nix 2.3, and even if this is bumped as long we don't do 121 + compatible with Nix 2.18, and even if this is bumped as long we don't do 123 122 drastic minimum version changes this should not be an issue. Also, the daemon 124 123 itself always run with the previous version since even we can replace Nix in 125 124 `PATH` (so Nix client), but we can't replace the daemon without switching to
+4 -4
pkgs/by-name/ni/nixos-rebuild-ng/nixos-rebuild.8.scd
··· 251 251 252 252 *--use-substitutes* 253 253 When set, nixos-rebuild will add *--use-substitutes* to each invocation 254 - of _nix-copy-closure_/_nix copy_. This will only affect the behavior of 255 - nixos-rebuild if *--target-host* or *--build-host* is also set. This is 256 - useful when the target-host connection to cache.nixos.org is faster than 257 - the connection between hosts. 254 + of _nix copy_. This will only affect the behavior of nixos-rebuild if 255 + *--target-host* or *--build-host* is also set. This is useful when the 256 + target-host connection to cache.nixos.org is faster than the connection 257 + between hosts. 258 258 259 259 *--sudo* 260 260 When set, *nixos-rebuild* prefixes activation commands with sudo.
+3 -11
pkgs/by-name/ni/nixos-rebuild-ng/package.nix
··· 15 15 # Very long tmp dirs lead to "too long for Unix domain socket" 16 16 # SSH ControlPath errors. Especially macOS sets long TMPDIR paths. 17 17 withTmpdir ? if stdenv.hostPlatform.isDarwin then "/tmp" else null, 18 - # This version is kind of arbitrary, we use some features that were 19 - # implemented in newer versions of Nix, but not necessary 2.18. 20 - # However, Lix is a fork of Nix 2.18, so this looks like a good version 21 - # to cut specific functionality. 22 - # ATTN: This currently doesn't disambiguate between Nix and Lix, so using this 23 - # in a conditional needs careful checking against both Nix implementations. 24 - withNix218 ? lib.versionAtLeast nix.version "2.18", 25 18 # passthru.tests 26 19 nixosTests, 27 20 nixVersions, ··· 62 55 postPatch = '' 63 56 substituteInPlace nixos_rebuild/constants.py \ 64 57 --subst-var-by executable ${executable} \ 65 - --subst-var-by withNix218 ${lib.boolToString withNix218} \ 66 58 --subst-var-by withReexec ${lib.boolToString withReexec} \ 67 59 --subst-var-by withShellFiles ${lib.boolToString withShellFiles} 68 60 ··· 121 113 with_nix_stable = nixos-rebuild-ng.override { 122 114 nix = nixVersions.stable; 123 115 }; 124 - with_nix_2_3 = nixos-rebuild-ng.override { 125 - # oldest / minimum supported version in nixpkgs 126 - nix = nixVersions.nix_2_3; 116 + with_nix_2_24 = nixos-rebuild-ng.override { 117 + # oldest supported version in nixpkgs 118 + nix = nixVersions.nix_2_24; 127 119 }; 128 120 with_lix_latest = nixos-rebuild-ng.override { 129 121 nix = lixPackageSets.latest.lix;
+1 -4
pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/__init__.py
··· 6 6 from typing import Final, assert_never 7 7 8 8 from . import nix, services 9 - from .constants import EXECUTABLE, WITH_NIX_2_18, WITH_REEXEC, WITH_SHELL_FILES 9 + from .constants import EXECUTABLE, WITH_REEXEC, WITH_SHELL_FILES 10 10 from .models import Action, BuildAttr, Flake, Profile 11 11 from .process import Remote 12 12 from .utils import LogFormatter ··· 269 269 270 270 def execute(argv: list[str]) -> None: 271 271 args, args_groups = parse_args(argv) 272 - 273 - if not WITH_NIX_2_18: 274 - logger.warning("you're using Nix <2.18, some features will not work correctly") 275 272 276 273 common_flags = vars(args_groups["common_flags"]) 277 274 common_build_flags = common_flags | vars(args_groups["common_build_flags"])
-1
pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/constants.py
··· 6 6 EXECUTABLE: Final[str] = "@executable@" 7 7 # Use either `== "true"` if the default (e.g.: `python -m nixos_rebuild`) is 8 8 # `False` or `!= "false"` if the default is `True` 9 - WITH_NIX_2_18: Final[bool] = "@withNix218@" != "false" 10 9 WITH_REEXEC: Final[bool] = "@withReexec@" == "true" 11 10 WITH_SHELL_FILES: Final[bool] = "@withShellFiles@" == "true"
+1 -13
pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/nix.py
··· 13 13 from typing import Final, Literal 14 14 15 15 from . import tmpdir 16 - from .constants import WITH_NIX_2_18 17 16 from .models import ( 18 17 Action, 19 18 BuildAttr, ··· 228 227 case (Remote(_) as host, None) | (None, Remote(_) as host): 229 228 nix_copy_closure(host, to=bool(to_host)) 230 229 case (Remote(_), Remote(_)): 231 - if WITH_NIX_2_18: 232 - # With newer Nix, use `nix copy` instead of `nix-copy-closure` 233 - # since it supports `--to` and `--from` at the same time 234 - # TODO: once we drop Nix 2.3 from nixpkgs, remove support for 235 - # `nix-copy-closure` 236 - nix_copy(to_host, from_host) 237 - else: 238 - # With older Nix, we need to copy from to local and local to 239 - # host. This means it is slower and need additional disk space 240 - # in local 241 - nix_copy_closure(from_host, to=False) 242 - nix_copy_closure(to_host, to=True) 230 + nix_copy(to_host, from_host) 243 231 244 232 245 233 def edit() -> None:
-5
pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_main.py
··· 10 10 import pytest 11 11 12 12 import nixos_rebuild as nr 13 - from nixos_rebuild.constants import WITH_NIX_2_18 14 13 15 14 from .helpers import get_qualified_name 16 15 ··· 450 449 @patch("subprocess.run", autospec=True) 451 450 @patch("uuid.uuid4", autospec=True) 452 451 @patch(get_qualified_name(nr.services.cleanup_ssh), autospec=True) 453 - @pytest.mark.skipif( 454 - not WITH_NIX_2_18, 455 - reason="Tests internal logic based on the assumption that Nix >= 2.18", 456 - ) 457 452 def test_execute_nix_switch_build_target_host( 458 453 mock_cleanup_ssh: Mock, 459 454 mock_uuid4: Mock,
-17
pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py
··· 254 254 ) 255 255 256 256 monkeypatch.setenv("NIX_SSHOPTS", "--ssh build-target-opt") 257 - monkeypatch.setattr(n, "WITH_NIX_2_18", True) 258 257 extra_env = { 259 258 "NIX_SSHOPTS": " ".join([*p.SSH_DEFAULT_OPTS, "--ssh build-target-opt"]) 260 259 } ··· 274 273 closure, 275 274 ], 276 275 extra_env=extra_env, 277 - ) 278 - 279 - monkeypatch.setattr(n, "WITH_NIX_2_18", False) 280 - with patch(get_qualified_name(n.run_wrapper, n), autospec=True) as mock_run: 281 - n.copy_closure(closure, target_host, build_host) 282 - mock_run.assert_has_calls( 283 - [ 284 - call( 285 - ["nix-copy-closure", "--from", "user@build.host", closure], 286 - extra_env=extra_env, 287 - ), 288 - call( 289 - ["nix-copy-closure", "--to", "user@target.host", closure], 290 - extra_env=extra_env, 291 - ), 292 - ] 293 276 ) 294 277 295 278
+3 -3
pkgs/by-name/no/node-core-utils/package.nix
··· 9 9 10 10 buildNpmPackage (finalAttrs: { 11 11 pname = "node-core-utils"; 12 - version = "5.14.1"; 12 + version = "5.15.0"; 13 13 14 14 src = fetchFromGitHub { 15 15 owner = "nodejs"; 16 16 repo = "node-core-utils"; 17 17 tag = "v${finalAttrs.version}"; 18 - hash = "sha256-F+WMwyMw4cgGevcgi7vUkboXjZmBpPKsTUDvM6NHr0o="; 18 + hash = "sha256-yY3EGSBdMpvUIq8UgeEcAm1RIaaNtZxCVp6TlycYjoY="; 19 19 }; 20 20 21 - npmDepsHash = "sha256-fMWb17t+ARJYsA7DgEBDY3vfbLrrCQiECRy947I90uI="; 21 + npmDepsHash = "sha256-VIkJHEGlJqweNVkx3WfLMiDOQRSPtwpJBfJ3vKHv4YM="; 22 22 23 23 dontNpmBuild = true; 24 24 dontNpmPrune = true;
+2 -2
pkgs/by-name/op/open-policy-agent/package.nix
··· 14 14 15 15 buildGoModule (finalAttrs: { 16 16 pname = "open-policy-agent"; 17 - version = "1.6.0"; 17 + version = "1.7.1"; 18 18 19 19 src = fetchFromGitHub { 20 20 owner = "open-policy-agent"; 21 21 repo = "opa"; 22 22 tag = "v${finalAttrs.version}"; 23 - hash = "sha256-p03yjLPphS4jp0dK3hlREKzAzCKRPOpvUnmGaGzrwww="; 23 + hash = "sha256-FFJiw2OE5mTFyjOdMoau8Ix8Q+id5hIpCeQaUua1IKg="; 24 24 }; 25 25 26 26 vendorHash = null;
+19 -7
pkgs/by-name/op/opencode/package.nix
··· 1 1 { 2 2 lib, 3 + stdenv, 3 4 stdenvNoCC, 4 5 buildGoModule, 5 6 bun, 6 7 fetchFromGitHub, 8 + makeBinaryWrapper, 7 9 models-dev, 8 10 nix-update-script, 9 11 testers, ··· 12 14 13 15 let 14 16 opencode-node-modules-hash = { 15 - "aarch64-darwin" = "sha256-LNp9sLhNUUC4ujLYPvfPx423GlXuIS0Z2H512H5oY8s="; 16 - "aarch64-linux" = "sha256-xeKZwNV4ScF9p1vAcVR+vk4BiEpUH+AOGb7DQ2vLl1I="; 17 - "x86_64-darwin" = "sha256-4NaHXeWf57dGVV+KP3mBSIUkbIApT19BuADT0E4X+rg="; 18 - "x86_64-linux" = "sha256-7Hc3FJcg2dA8AvGQlS082fO1ehGBMPXWPF8N+sAHh2I="; 17 + "aarch64-darwin" = "sha256-/s6eAI1VJ0kXrxP5yTi+jwNqHBCRcoltJC86AT7nVdI="; 18 + "aarch64-linux" = "sha256-aG5e5HMcxO9P7ciZ9cg8uY1rxDpTOKdR31z0L2d9dxY="; 19 + "x86_64-darwin" = "sha256-jkAFmTb+cTO/B7a7MgaKqOzZI3QPkM3uW2RULnBcxSI="; 20 + "x86_64-linux" = "sha256-ql4qcMtuaRwSVVma3OeKkc9tXhe21PWMMko3W3JgpB0="; 19 21 }; 20 22 bun-target = { 21 23 "aarch64-darwin" = "bun-darwin-arm64"; ··· 26 28 in 27 29 stdenvNoCC.mkDerivation (finalAttrs: { 28 30 pname = "opencode"; 29 - version = "0.4.1"; 31 + version = "0.4.26"; 30 32 src = fetchFromGitHub { 31 33 owner = "sst"; 32 34 repo = "opencode"; 33 35 tag = "v${finalAttrs.version}"; 34 - hash = "sha256-LEFmfsqhCuGcRK7CEPZb6EZfjOHAyYpUHptXu04fjpQ="; 36 + hash = "sha256-sQ1le6/OJb22Kehjj4glUsavHE08u0e2I7h8lW9MO9E="; 35 37 }; 36 38 37 39 tui = buildGoModule { ··· 40 42 41 43 modRoot = "packages/tui"; 42 44 43 - vendorHash = "sha256-jGaTgKyAvBMt8Js5JrPFUayhVt3QhgyclFoNatoHac4="; 45 + vendorHash = "sha256-jINbGug/SPGBjsXNsC9X2r5TwvrOl5PJDL+lrOQP69Q="; 44 46 45 47 subPackages = [ "cmd/opencode" ]; 46 48 ··· 109 111 110 112 nativeBuildInputs = [ 111 113 bun 114 + makeBinaryWrapper 112 115 models-dev 113 116 ]; 114 117 ··· 150 153 install -Dm755 opencode $out/bin/opencode 151 154 152 155 runHook postInstall 156 + ''; 157 + 158 + # Execution of commands using bash-tool fail on linux with 159 + # Error [ERR_DLOPEN_FAILED]: libstdc++.so.6: cannot open shared object file: No such 160 + # file or directory 161 + # Thus, we add libstdc++.so.6 manually to LD_LIBRARY_PATH 162 + postFixup = '' 163 + wrapProgram $out/bin/opencode \ 164 + --set LD_LIBRARY_PATH "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}" 153 165 ''; 154 166 155 167 passthru = {
+2 -2
pkgs/by-name/op/openlinkhub/package.nix
··· 9 9 10 10 buildGoModule rec { 11 11 pname = "openlinkhub"; 12 - version = "0.6.0"; 12 + version = "0.6.1"; 13 13 14 14 src = fetchFromGitHub { 15 15 owner = "jurkovic-nikola"; 16 16 repo = "OpenLinkHub"; 17 17 tag = version; 18 - hash = "sha256-pCMdljBgqxfI9mVperzjAiuq5UUsqmmR+xvuywudv9o="; 18 + hash = "sha256-kEbJwCAs2gTNs0z8A3kOl1O4HQ4L5+urTo+hLh6vOPM="; 19 19 }; 20 20 21 21 proxyVendor = true;
+5 -1
pkgs/by-name/ox/oxidized/package.nix
··· 3 3 ruby, 4 4 bundlerApp, 5 5 bundlerUpdateScript, 6 + nixosTests, 6 7 }: 7 8 8 9 bundlerApp { ··· 16 17 "oxs" 17 18 ]; 18 19 19 - passthru.updateScript = bundlerUpdateScript "oxidized"; 20 + passthru = { 21 + tests = nixosTests.oxidized; 22 + updateScript = bundlerUpdateScript "oxidized"; 23 + }; 20 24 21 25 meta = with lib; { 22 26 description = "Network device configuration backup tool. It's a RANCID replacement";
+2 -2
pkgs/by-name/pa/parallel-launcher/package.nix
··· 52 52 in 53 53 { 54 54 pname = "parallel-launcher"; 55 - version = "8.2.1"; # Check ./parallel-n64-next.nix for updates when updating, too 55 + version = "8.3.0"; # Check ./parallel-n64-next.nix for updates when updating, too 56 56 57 57 src = fetchFromGitLab { 58 58 owner = "parallel-launcher"; 59 59 repo = "parallel-launcher"; 60 60 tag = reformatVersion finalAttrs.version; 61 - hash = "sha256-1fPbgpTTfXkhVRBFnNzeNGUzEkLvurBcJQlAhL7Fp6c="; 61 + hash = "sha256-Zp/QTPREfpOG0zgnP1Lg5FgT9u+OEhoqBgnxWMu451A="; 62 62 }; 63 63 64 64 patches =
+1 -1
pkgs/by-name/re/remmina/package.nix
··· 96 96 libsodium 97 97 harfbuzz 98 98 python3 99 - wayland 100 99 ] 101 100 ++ lib.optionals stdenv.hostPlatform.isLinux [ 102 101 fuse3 103 102 libappindicator-gtk3 104 103 libdbusmenu-gtk3 104 + wayland 105 105 ] 106 106 ++ lib.optionals withLibsecret [ libsecret ] 107 107 ++ lib.optionals withKf5Wallet [ libsForQt5.kwallet ]
+2 -2
pkgs/by-name/rs/rss-bridge/package.nix
··· 8 8 9 9 stdenv.mkDerivation rec { 10 10 pname = "rss-bridge"; 11 - version = "2025-06-03"; 11 + version = "2025-08-05"; 12 12 13 13 src = fetchFromGitHub { 14 14 owner = "RSS-Bridge"; 15 15 repo = "rss-bridge"; 16 16 rev = version; 17 - sha256 = "sha256-S9TSTUwuScOcLbEpGgET1zzH1WlO1IMUOiwzMTsA65s="; 17 + sha256 = "sha256-SH5iYsdvGD51j+2xqaG51VDtb35m1v9MR0+yLE1eyWo="; 18 18 }; 19 19 20 20 installPhase = ''
+46
pkgs/by-name/sc/scan-build-py/package.nix
··· 1 + { 2 + lib, 3 + llvmPackages, 4 + python3, 5 + }: 6 + let 7 + inherit (llvmPackages) clang-unwrapped; 8 + in 9 + python3.pkgs.buildPythonApplication rec { 10 + pname = "scan-build-py"; 11 + inherit (clang-unwrapped) version; 12 + 13 + format = "other"; 14 + 15 + src = clang-unwrapped + "/bin"; 16 + 17 + dontUnpack = true; 18 + 19 + dependencies = with python3.pkgs; [ 20 + libscanbuild 21 + ]; 22 + 23 + installPhase = '' 24 + mkdir -p "$out/bin" 25 + install "$src/scan-build-py" "$out/bin/scan-build-py" 26 + ''; 27 + 28 + makeWrapperArgs = [ 29 + "--prefix" 30 + "PATH" 31 + ":" 32 + (lib.makeBinPath [ clang-unwrapped ]) 33 + ]; 34 + 35 + meta = { 36 + description = "intercepts the build process to generate a compilation database"; 37 + homepage = "https://github.com/llvm/llvm-project/tree/llvmorg-${version}/clang/tools/scan-build-py/"; 38 + mainProgram = "scan-build-py"; 39 + license = with lib.licenses; [ 40 + asl20 41 + llvm-exception 42 + ]; 43 + maintainers = with lib.maintainers; [ RossSmyth ]; 44 + platforms = lib.intersectLists python3.meta.platforms clang-unwrapped.meta.platforms; 45 + }; 46 + }
+4 -4
pkgs/by-name/sh/shaperglot-cli/package.nix
··· 9 9 10 10 rustPlatform.buildRustPackage (finalAttrs: { 11 11 pname = "shaperglot-cli"; 12 - version = "0-unstable-2025-07-18"; 12 + version = "0-unstable-2025-08-11"; 13 13 14 14 src = fetchFromGitHub { 15 15 owner = "googlefonts"; 16 16 repo = "shaperglot"; 17 - rev = "fafea94d0c4ffe291b34c6748149006b13476755"; 18 - hash = "sha256-o5fh/rywa5AUhCXWUkuXH3XMCtVX2nio+jk+vwHVN14="; 17 + rev = "b7ba56e583e89a1c169f4ef7c3419e4e76e00974"; 18 + hash = "sha256-XFzsUzHa4KsyDWlOKlWHBNimn1hzdrtCPe+lFrs0EDc="; 19 19 }; 20 20 21 - cargoHash = "sha256-SrC9RAbD/qxn5Ywp83cCZmdjNrxJlZAGBYB9O+/yJHA="; 21 + cargoHash = "sha256-Md48ovCG8pEPbTz6R0nks6rZxO3UEdZ/SYRVgffCIKU="; 22 22 23 23 cargoBuildFlags = [ 24 24 "--package=shaperglot-cli"
+3 -3
pkgs/by-name/sp/speedscope/package.nix
··· 7 7 8 8 buildNpmPackage rec { 9 9 pname = "speedscope"; 10 - version = "1.23.0"; 10 + version = "1.23.1"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "jlfwong"; 14 14 repo = "speedscope"; 15 15 tag = "v${version}"; 16 - hash = "sha256-I7XulOJuMSxDXyGlXL6AeqP0ohjNhzGTEyWsq6MiTho="; 16 + hash = "sha256-PIyx4ceihTSLRDP5MW3n6edtYNFOnx8Uo7qUWW7LTs8="; 17 17 18 18 # scripts/prepack.sh wants to extract the git commit from .git 19 19 # We don't want to keep .git for reproducibility reasons, so save the commit ··· 25 25 ''; 26 26 }; 27 27 28 - npmDepsHash = "sha256-5gsWnk37F+fModNUWETBercXE1avEtbAAu8/qi76yDY="; 28 + npmDepsHash = "sha256-xpFrkKAaFbVE1zJ/haibQte4HjUWmeBR8BVjZuSoyjI="; 29 29 30 30 patches = [ 31 31 ./fix-shebang.patch
+3 -3
pkgs/by-name/st/storj-uplink/package.nix
··· 6 6 7 7 buildGoModule (finalAttrs: { 8 8 pname = "storj-uplink"; 9 - version = "1.133.5"; 9 + version = "1.134.2"; 10 10 11 11 src = fetchFromGitHub { 12 12 owner = "storj"; 13 13 repo = "storj"; 14 14 tag = "v${finalAttrs.version}"; 15 - hash = "sha256-MvaA8AkoP4FszEEM33QKDt5zeXMZ3XDt5uU1t6C6Q1I="; 15 + hash = "sha256-DNxbJ+vw6a2yxbc6y/h+o4C7yhh5laCr2XIdBmjvAyc="; 16 16 }; 17 17 18 18 subPackages = [ "cmd/uplink" ]; 19 19 20 - vendorHash = "sha256-N1rEEM+oH2VVOvg9c8gICQ1aDO9FS/faVbQl0kj1jYM="; 20 + vendorHash = "sha256-ZteKOH6t2C96pm1u3J5GLXgWVdM77FjRqg6bYqIh1wQ="; 21 21 22 22 ldflags = [ "-s" ]; 23 23
+3 -3
pkgs/by-name/td/tdlib/package.nix
··· 38 38 39 39 stdenv.mkDerivation { 40 40 pname = if tde2eOnly then "tde2e" else "tdlib"; 41 - version = "1.8.51"; 41 + version = "1.8.52"; 42 42 43 43 src = fetchFromGitHub { 44 44 owner = "tdlib"; ··· 47 47 # The tdlib authors do not set tags for minor versions, but 48 48 # external programs depending on tdlib constrain the minor 49 49 # version, hence we set a specific commit with a known version. 50 - rev = "bb474a201baa798784d696d2d9d762a9d2807f96"; 51 - hash = "sha256-Jd2ojDDwO/7W54QjnKLlc1ecqTfJEFPRtT50rNlukKA="; 50 + rev = "4269f54e16b9cf564efc2db5bcd29743a2eec6ee"; 51 + hash = "sha256-LAI2MWKawGZ+iuhizBrqUXLU1n50s6YIyci6zepYTz0="; 52 52 }; 53 53 54 54 buildInputs = [
+37 -39
pkgs/development/ocaml-modules/logs/default.nix
··· 3 3 stdenv, 4 4 fetchurl, 5 5 ocaml, 6 - findlib, 7 - ocamlbuild, 6 + version ? if lib.versionAtLeast ocaml.version "4.14" then "0.9.0" else "0.8.0", 8 7 topkg, 9 - result, 10 - lwt, 8 + buildTopkgPackage, 9 + cmdlinerSupport ? true, 11 10 cmdliner, 12 - fmt, 13 11 fmtSupport ? lib.versionAtLeast ocaml.version "4.08", 14 - js_of_ocaml-compiler, 12 + fmt, 15 13 jsooSupport ? true, 14 + js_of_ocaml-compiler, 16 15 lwtSupport ? true, 17 - cmdlinerSupport ? true, 16 + lwt, 18 17 }: 19 18 let 19 + param = 20 + { 21 + "0.8.0" = { 22 + minimalOCamlVersion = "4.03"; 23 + sha512 = "c34c67b00d6a989a2660204ea70db8521736d6105f15d1ee0ec6287a662798fe5c4d47075c6e7c84f5d5372adb5af5c4c404f79db70d69140af5e0ebbea3b6a5"; 24 + }; 25 + "0.9.0" = { 26 + minimalOCamlVersion = "4.14"; 27 + sha512 = "b75fb28e83f33461b06b5c9b60972c4a9a9a1599d637b4a0c7b1e86a87f34fe5361e817cb31f42ad7e7cbb822473b28fab9f58a02870eb189ebe88dae8e045ff"; 28 + }; 29 + } 30 + .${version}; 31 + 20 32 pname = "logs"; 21 33 webpage = "https://erratique.ch/software/${pname}"; 22 34 ··· 48 60 ]) optional_deps; 49 61 optional_buildInputs = map (d: d.pkg) (lib.filter (d: d.enabled) optional_deps); 50 62 in 51 - 52 - if lib.versionOlder ocaml.version "4.03" then 53 - throw "logs is not available for OCaml ${ocaml.version}" 54 - else 55 - 56 - stdenv.mkDerivation rec { 57 - name = "ocaml${ocaml.version}-${pname}-${version}"; 58 - version = "0.8.0"; 59 - 60 - src = fetchurl { 61 - url = "${webpage}/releases/${pname}-${version}.tbz"; 62 - hash = "sha256-mmFRQJX6QvMBIzJiO2yNYF1Ce+qQS2oNF3+OwziCNtg="; 63 - }; 63 + buildTopkgPackage { 64 + inherit pname version; 65 + inherit (param) minimalOCamlVersion; 64 66 65 - nativeBuildInputs = [ 66 - ocaml 67 - findlib 68 - ocamlbuild 69 - topkg 70 - ]; 71 - buildInputs = [ topkg ] ++ optional_buildInputs; 72 - propagatedBuildInputs = [ result ]; 67 + src = fetchurl { 68 + url = "${webpage}/releases/${pname}-${version}.tbz"; 69 + inherit (param) sha512; 70 + }; 73 71 74 - strictDeps = true; 72 + buildInputs = [ topkg ] ++ optional_buildInputs; 75 73 76 - buildPhase = "${topkg.run} build ${lib.escapeShellArgs enable_flags}"; 74 + strictDeps = true; 77 75 78 - inherit (topkg) installPhase; 76 + buildPhase = "${topkg.run} build ${lib.escapeShellArgs enable_flags}"; 79 77 80 - meta = with lib; { 81 - description = "Logging infrastructure for OCaml"; 82 - homepage = webpage; 83 - inherit (ocaml.meta) platforms; 84 - maintainers = [ maintainers.sternenseemann ]; 85 - license = licenses.isc; 86 - }; 87 - } 78 + meta = with lib; { 79 + description = "Logging infrastructure for OCaml"; 80 + homepage = webpage; 81 + inherit (ocaml.meta) platforms; 82 + maintainers = [ maintainers.sternenseemann ]; 83 + license = licenses.isc; 84 + }; 85 + }
+2 -2
pkgs/development/php-packages/ast/default.nix
··· 5 5 }: 6 6 7 7 let 8 - version = "1.1.2"; 8 + version = "1.1.3"; 9 9 in 10 10 buildPecl { 11 11 inherit version; ··· 15 15 owner = "nikic"; 16 16 repo = "php-ast"; 17 17 rev = "v${version}"; 18 - sha256 = "sha256-9HP+hKcpkWmvsx335JiCVjFG+xyAMEm5dWxWC1nZPxU="; 18 + sha256 = "sha256-TGMZA3Qe+/TwG+FIevrcQzy/ufCyN8sXKjsPrnz3K1Q="; 19 19 }; 20 20 21 21 meta = with lib; {
+2 -2
pkgs/development/python-modules/airos/default.nix
··· 14 14 15 15 buildPythonPackage rec { 16 16 pname = "airos"; 17 - version = "0.2.4"; 17 + version = "0.2.7"; 18 18 pyproject = true; 19 19 20 20 disabled = pythonOlder "3.13"; ··· 23 23 owner = "CoMPaTech"; 24 24 repo = "python-airos"; 25 25 tag = "v${version}"; 26 - hash = "sha256-zY0XPucCXiJDo9C4GiDqs/lxQDTphs/mBXBqSYPvkoI="; 26 + hash = "sha256-c/YVjNEy1nI6ClYk8BgLai+zRCwiblTFSJ5Rxx3UaeU="; 27 27 }; 28 28 29 29 build-system = [ setuptools ];
+3 -3
pkgs/development/python-modules/devpi-ldap/default.nix
··· 19 19 version = "2.1.1-unstable-2023-11-28"; 20 20 pyproject = true; 21 21 22 - disabled = pythonOlder "3.7"; 22 + disabled = pythonOlder "3.13"; 23 23 24 24 src = fetchFromGitHub { 25 25 owner = "devpi"; ··· 48 48 pythonImportsCheck = [ "devpi_ldap" ]; 49 49 50 50 meta = { 51 - homepage = "https://github.com/devpi/devpi-ldap"; 52 51 description = "LDAP authentication for devpi-server"; 52 + homepage = "https://github.com/devpi/devpi-ldap"; 53 53 changelog = "https://github.com/devpi/devpi-ldap/blob/main/CHANGELOG.rst"; 54 - license = lib.licenses.mit; # according to its setup.py 54 + license = lib.licenses.mit; 55 55 maintainers = with lib.maintainers; [ confus ]; 56 56 }; 57 57 }
+3
pkgs/development/python-modules/dramatiq/default.nix
··· 89 89 "test_rabbitmq_process_100k_messages_with_cli" 90 90 "test_rabbitmq_process_10k_fib_with_cli" 91 91 "test_rabbitmq_process_1k_latency_with_cli" 92 + # AssertionError 93 + "test_cli_scrubs_stale_pid_files" 94 + "test_message_contains_requeue_time_after_retry" 92 95 ] 93 96 ++ lib.optionals stdenv.hostPlatform.isDarwin [ 94 97 # Takes too long for darwin ofborg
+2 -2
pkgs/development/python-modules/fast-simplification/default.nix
··· 13 13 14 14 buildPythonPackage rec { 15 15 pname = "fast-simplification"; 16 - version = "0.1.11"; 16 + version = "0.1.12"; 17 17 pyproject = true; 18 18 19 19 src = fetchFromGitHub { 20 20 owner = "pyvista"; 21 21 repo = "fast-simplification"; 22 22 tag = "v${version}"; 23 - hash = "sha256-3mqcFTNrq1W376ctJJumzeQccaB4cvoTNW8BHEnv5t8="; 23 + hash = "sha256-OhVJKYmJR+A6JDaM/7Bfkc4PNlhsc6NgRNU+SokCg1U="; 24 24 }; 25 25 26 26 build-system = [
+16 -27
pkgs/development/python-modules/flask-dramatiq/default.nix
··· 1 1 { 2 2 lib, 3 3 buildPythonPackage, 4 - pythonOlder, 5 - fetchFromGitLab, 6 - poetry-core, 7 4 dramatiq, 5 + fetchFromGitLab, 6 + flask-migrate, 8 7 flask, 9 - requests, 10 - pytestCheckHook, 11 - pytest-cov-stub, 12 - flask-migrate, 13 8 periodiq, 9 + poetry-core, 14 10 postgresql, 15 11 postgresqlTestHook, 16 12 psycopg2, 13 + pytest-cov-stub, 14 + pytest-mock, 15 + pytestCheckHook, 16 + requests, 17 17 }: 18 18 19 19 buildPythonPackage { 20 20 pname = "flask-dramatiq"; 21 21 version = "0.6.0"; 22 - format = "pyproject"; 23 - 24 - disabled = pythonOlder "3.6"; 22 + pyproject = true; 25 23 26 24 src = fetchFromGitLab { 27 25 owner = "bersace"; ··· 38 36 patchShebangs --build ./example.py 39 37 ''; 40 38 41 - nativeBuildInputs = [ poetry-core ]; 39 + build-system = [ poetry-core ]; 42 40 43 - propagatedBuildInputs = [ dramatiq ]; 41 + dependencies = [ dramatiq ]; 44 42 45 43 nativeCheckInputs = [ 46 - pytestCheckHook 47 - pytest-cov-stub 48 44 flask 49 - requests 50 45 flask-migrate 51 46 periodiq 52 47 postgresql 53 48 postgresqlTestHook 54 49 psycopg2 50 + pytest-cov-stub 51 + pytest-mock 52 + pytestCheckHook 53 + requests 55 54 ] 56 55 ++ dramatiq.optional-dependencies.rabbitmq; 57 56 ··· 62 61 python3 ./example.py db upgrade 63 62 ''; 64 63 65 - pytestFlags = [ 66 - "-x" 67 - ]; 68 - 69 - disabledTestPaths = [ 70 - "tests/func/" 71 - "tests/unit" 72 - ]; 73 - 74 - pythonImportsCheck = [ "flask_dramatiq" ]; 75 - 76 - # Does HTTP requests to localhost 77 64 disabledTests = [ 78 65 "test_fast" 79 66 "test_other" 80 67 ]; 68 + 69 + pythonImportsCheck = [ "flask_dramatiq" ]; 81 70 82 71 meta = with lib; { 83 72 description = "Adds Dramatiq support to your Flask application";
+2 -2
pkgs/development/python-modules/hass-nabucasa/default.nix
··· 26 26 27 27 buildPythonPackage rec { 28 28 pname = "hass-nabucasa"; 29 - version = "0.111.1"; 29 + version = "0.111.2"; 30 30 pyproject = true; 31 31 32 32 disabled = pythonOlder "3.13"; ··· 35 35 owner = "nabucasa"; 36 36 repo = "hass-nabucasa"; 37 37 tag = version; 38 - hash = "sha256-WmsLn/pHI3KJSmX5U20eNUEs0Q1upuwkkzcHIYPNYjY="; 38 + hash = "sha256-64DdjyzeeYI9u8hYP7CwZvLhCcCzztti2DshvtYcxNQ="; 39 39 }; 40 40 41 41 build-system = [ setuptools ];
+2 -2
pkgs/development/python-modules/knx-frontend/default.nix
··· 7 7 8 8 buildPythonPackage rec { 9 9 pname = "knx-frontend"; 10 - version = "2025.8.6.52906"; 10 + version = "2025.8.9.63154"; 11 11 pyproject = true; 12 12 13 13 # TODO: source build, uses yarn.lock 14 14 src = fetchPypi { 15 15 pname = "knx_frontend"; 16 16 inherit version; 17 - hash = "sha256-Wmiwj5PL68VH1j5xDhZJyAHBakoG+0SKzCJCcCntT18="; 17 + hash = "sha256-Sphetc0ox0Oh70vNdkHorX0jpvC8bckm1TBKk2QSGPo="; 18 18 }; 19 19 20 20 build-system = [ setuptools ];
+37
pkgs/development/python-modules/libear/default.nix
··· 1 + { 2 + lib, 3 + llvmPackages, 4 + buildPythonPackage, 5 + }: 6 + let 7 + inherit (llvmPackages) clang-unwrapped; 8 + in 9 + buildPythonPackage rec { 10 + pname = "libear"; 11 + inherit (clang-unwrapped) version; 12 + 13 + format = "other"; 14 + 15 + src = clang-unwrapped.lib + "/lib/libear"; 16 + 17 + dontUnpack = true; 18 + 19 + installPhase = '' 20 + LIBPATH="$(toPythonPath "$out")/libear" 21 + mkdir -p "$LIBPATH" 22 + 23 + install -t "$LIBPATH" $src/* 24 + ''; 25 + 26 + pythonImportsCheck = [ "libear" ]; 27 + 28 + meta = { 29 + description = "Hooks into build systems to listen to which files are opened"; 30 + homepage = "https://github.com/llvm/llvm-project/tree/llvmorg-${version}/clang/tools/scan-build-py/lib/libear"; 31 + license = with lib.licenses; [ 32 + asl20 33 + llvm-exception 34 + ]; 35 + maintainers = with lib.maintainers; [ RossSmyth ]; 36 + }; 37 + }
+42
pkgs/development/python-modules/libscanbuild/default.nix
··· 1 + { 2 + lib, 3 + llvmPackages, 4 + buildPythonPackage, 5 + libear, 6 + }: 7 + let 8 + inherit (llvmPackages) clang-unwrapped; 9 + in 10 + buildPythonPackage rec { 11 + pname = "libscanbuild"; 12 + inherit (clang-unwrapped) version; 13 + 14 + format = "other"; 15 + 16 + src = clang-unwrapped.lib + "/lib/libscanbuild"; 17 + 18 + dontUnpack = true; 19 + 20 + dependencies = [ 21 + libear 22 + ]; 23 + 24 + installPhase = '' 25 + LIBPATH="$(toPythonPath "$out")/libscanbuild" 26 + mkdir -p "$LIBPATH" 27 + 28 + cp -r "$src/"* "$LIBPATH" 29 + ''; 30 + 31 + pythonImportsCheck = [ "libscanbuild" ]; 32 + 33 + meta = { 34 + description = "Captures all child process creation and log information about it"; 35 + homepage = "https://github.com/llvm/llvm-project/tree/llvmorg-${version}/clang/tools/scan-build-py/lib/libscanbuild"; 36 + license = with lib.licenses; [ 37 + asl20 38 + llvm-exception 39 + ]; 40 + maintainers = with lib.maintainers; [ RossSmyth ]; 41 + }; 42 + }
+2 -2
pkgs/development/python-modules/llama-index-workflows/default.nix
··· 10 10 11 11 buildPythonPackage rec { 12 12 pname = "llama-index-workflows"; 13 - version = "1.2.0"; 13 + version = "1.3.0"; 14 14 pyproject = true; 15 15 16 16 src = fetchPypi { 17 17 pname = "llama_index_workflows"; 18 18 inherit version; 19 - hash = "sha256-9rGfAaNAoa+x0v0ihcnc40bjBKOq5RnmEDBZ9a+yYJ8="; 19 + hash = "sha256-nBaI4jfvrThPFkha9xxvlFai622Fv2H/SeVxfxD/KG0="; 20 20 }; 21 21 22 22 pythonRelaxDeps = [ "pydantic" ];
-34
pkgs/development/python-modules/nixpkgs/default.nix
··· 1 - { 2 - lib, 3 - buildPythonPackage, 4 - fetchPypi, 5 - pbr, 6 - pythonix, 7 - pythonAtLeast, 8 - }: 9 - 10 - buildPythonPackage rec { 11 - pname = "nixpkgs"; 12 - version = "0.2.4"; 13 - format = "setuptools"; 14 - disabled = !pythonAtLeast "3.5"; 15 - 16 - src = fetchPypi { 17 - inherit pname version; 18 - sha256 = "0dlvq4bpamhlva86042wlc0xxfsxlpdgm2adfb1c6y3vjgbm0nvd"; 19 - }; 20 - 21 - buildInputs = [ pbr ]; 22 - propagatedBuildInputs = [ pythonix ]; 23 - 24 - # does not have any tests 25 - doCheck = false; 26 - pythonImportsCheck = [ "nixpkgs" ]; 27 - 28 - meta = with lib; { 29 - description = "Allows to `from nixpkgs import` stuff in interactive Python sessions"; 30 - homepage = "https://github.com/t184256/nixpkgs-python-importer"; 31 - license = licenses.mit; 32 - maintainers = with maintainers; [ t184256 ]; 33 - }; 34 - }
+14 -5
pkgs/development/python-modules/prometheus-flask-exporter/default.nix
··· 5 5 flask, 6 6 prometheus-client, 7 7 pytestCheckHook, 8 + setuptools, 8 9 }: 9 10 10 11 buildPythonPackage rec { 11 12 pname = "prometheus-flask-exporter"; 12 - version = "0.22.4"; 13 - format = "setuptools"; 13 + version = "0.23.2"; 14 + pyproject = true; 14 15 15 16 src = fetchFromGitHub { 16 17 owner = "rycus86"; 17 18 repo = "prometheus_flask_exporter"; 18 - rev = version; 19 - hash = "sha256-GAQ80J7at8Apqu+DUMN3+rLi/lrNv5Y7w/DKpUN2iu8="; 19 + tag = version; 20 + hash = "sha256-fWCIthtBiPJwn/Mbbwdv2+1cr9nlpUsPE2mDkaSsfpM="; 20 21 }; 21 22 22 - propagatedBuildInputs = [ 23 + build-system = [ setuptools ]; 24 + 25 + dependencies = [ 23 26 flask 24 27 prometheus-client 25 28 ]; 26 29 27 30 nativeCheckInputs = [ pytestCheckHook ]; 31 + 28 32 enabledTestPaths = [ "tests/" ]; 33 + 34 + disabledTests = [ 35 + # AssertionError 36 + "test_group_by_lambda_is_not_supported" 37 + ]; 29 38 30 39 meta = with lib; { 31 40 description = "Prometheus exporter for Flask applications";
-54
pkgs/development/python-modules/pythonix/default.nix
··· 1 - { 2 - lib, 3 - buildPythonPackage, 4 - fetchFromGitHub, 5 - ninja, 6 - boost, 7 - meson, 8 - pkg-config, 9 - nix, 10 - isPy3k, 11 - python, 12 - }: 13 - 14 - buildPythonPackage rec { 15 - pname = "pythonix"; 16 - version = "0.1.7"; 17 - format = "other"; 18 - 19 - src = fetchFromGitHub { 20 - owner = "Mic92"; 21 - repo = "pythonix"; 22 - rev = "v${version}"; 23 - sha256 = "1wxqv3i4bva2qq9mx670bcx0g0irjn68fvk28dwvhay9ndwcspqf"; 24 - }; 25 - 26 - disabled = !isPy3k; 27 - 28 - nativeBuildInputs = [ 29 - meson 30 - ninja 31 - pkg-config 32 - ]; 33 - 34 - buildInputs = [ 35 - nix 36 - boost 37 - ]; 38 - 39 - postInstall = '' 40 - # This is typically set by pipInstallHook/eggInstallHook, 41 - # so we have to do so manually when using meson 42 - export PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH 43 - ''; 44 - 45 - pythonImportsCheck = [ "nix" ]; 46 - 47 - meta = with lib; { 48 - description = '' 49 - Eval nix code from python. 50 - ''; 51 - maintainers = [ ]; 52 - license = licenses.mit; 53 - }; 54 - }
+2 -2
pkgs/development/python-modules/zha-quirks/default.nix
··· 13 13 14 14 buildPythonPackage rec { 15 15 pname = "zha-quirks"; 16 - version = "0.0.142"; 16 + version = "0.0.143"; 17 17 pyproject = true; 18 18 19 19 disabled = pythonOlder "3.12"; ··· 22 22 owner = "zigpy"; 23 23 repo = "zha-device-handlers"; 24 24 tag = version; 25 - hash = "sha256-D1FIkyVSa4j6p4PHkjCAU08zpZjjXPGWoL5lKlWUHuU="; 25 + hash = "sha256-txU1KJzQitSR7Y+/18dLo82K0SkPrJ4iQRBX9C4hgGU="; 26 26 }; 27 27 28 28 postPatch = ''
+2 -2
pkgs/development/python-modules/zha/default.nix
··· 27 27 28 28 buildPythonPackage rec { 29 29 pname = "zha"; 30 - version = "0.0.66"; 30 + version = "0.0.68"; 31 31 pyproject = true; 32 32 33 33 disabled = pythonOlder "3.12"; ··· 36 36 owner = "zigpy"; 37 37 repo = "zha"; 38 38 tag = version; 39 - hash = "sha256-74rJ2bdscbGkaLuHMQr8sNxL1wNN72UrlpH4zIkSprY="; 39 + hash = "sha256-NgUUzNfC1XngU5RBfbKpt/o8hu7XRXOUaDUb7OjSJJc="; 40 40 }; 41 41 42 42 postPatch = ''
-1669
pkgs/development/tools/rust/rustup-toolchain-install-master/Cargo.lock
··· 1 - # This file is automatically @generated by Cargo. 2 - # It is not intended for manual editing. 3 - version = 3 4 - 5 - [[package]] 6 - name = "addr2line" 7 - version = "0.19.0" 8 - source = "registry+https://github.com/rust-lang/crates.io-index" 9 - checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" 10 - dependencies = [ 11 - "gimli", 12 - ] 13 - 14 - [[package]] 15 - name = "adler" 16 - version = "1.0.2" 17 - source = "registry+https://github.com/rust-lang/crates.io-index" 18 - checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 19 - 20 - [[package]] 21 - name = "ansi_term" 22 - version = "0.12.1" 23 - source = "registry+https://github.com/rust-lang/crates.io-index" 24 - checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" 25 - dependencies = [ 26 - "winapi 0.3.9", 27 - ] 28 - 29 - [[package]] 30 - name = "async-compression" 31 - version = "0.3.15" 32 - source = "registry+https://github.com/rust-lang/crates.io-index" 33 - checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" 34 - dependencies = [ 35 - "bytes 0.5.6", 36 - "flate2", 37 - "futures-core", 38 - "memchr", 39 - "pin-project-lite 0.2.9", 40 - ] 41 - 42 - [[package]] 43 - name = "atty" 44 - version = "0.2.14" 45 - source = "registry+https://github.com/rust-lang/crates.io-index" 46 - checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" 47 - dependencies = [ 48 - "hermit-abi 0.1.19", 49 - "libc", 50 - "winapi 0.3.9", 51 - ] 52 - 53 - [[package]] 54 - name = "autocfg" 55 - version = "1.1.0" 56 - source = "registry+https://github.com/rust-lang/crates.io-index" 57 - checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 58 - 59 - [[package]] 60 - name = "backtrace" 61 - version = "0.3.67" 62 - source = "registry+https://github.com/rust-lang/crates.io-index" 63 - checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" 64 - dependencies = [ 65 - "addr2line", 66 - "cc", 67 - "cfg-if 1.0.0", 68 - "libc", 69 - "miniz_oxide 0.6.2", 70 - "object", 71 - "rustc-demangle", 72 - ] 73 - 74 - [[package]] 75 - name = "base64" 76 - version = "0.13.1" 77 - source = "registry+https://github.com/rust-lang/crates.io-index" 78 - checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 79 - 80 - [[package]] 81 - name = "bitflags" 82 - version = "1.3.2" 83 - source = "registry+https://github.com/rust-lang/crates.io-index" 84 - checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 85 - 86 - [[package]] 87 - name = "bumpalo" 88 - version = "3.12.2" 89 - source = "registry+https://github.com/rust-lang/crates.io-index" 90 - checksum = "3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b" 91 - 92 - [[package]] 93 - name = "bytes" 94 - version = "0.5.6" 95 - source = "registry+https://github.com/rust-lang/crates.io-index" 96 - checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" 97 - 98 - [[package]] 99 - name = "bytes" 100 - version = "1.4.0" 101 - source = "registry+https://github.com/rust-lang/crates.io-index" 102 - checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" 103 - 104 - [[package]] 105 - name = "cc" 106 - version = "1.0.79" 107 - source = "registry+https://github.com/rust-lang/crates.io-index" 108 - checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" 109 - 110 - [[package]] 111 - name = "cfg-if" 112 - version = "0.1.10" 113 - source = "registry+https://github.com/rust-lang/crates.io-index" 114 - checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" 115 - 116 - [[package]] 117 - name = "cfg-if" 118 - version = "1.0.0" 119 - source = "registry+https://github.com/rust-lang/crates.io-index" 120 - checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 121 - 122 - [[package]] 123 - name = "clap" 124 - version = "2.34.0" 125 - source = "registry+https://github.com/rust-lang/crates.io-index" 126 - checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" 127 - dependencies = [ 128 - "ansi_term", 129 - "atty", 130 - "bitflags", 131 - "strsim", 132 - "textwrap", 133 - "unicode-width", 134 - "vec_map", 135 - ] 136 - 137 - [[package]] 138 - name = "core-foundation" 139 - version = "0.9.3" 140 - source = "registry+https://github.com/rust-lang/crates.io-index" 141 - checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" 142 - dependencies = [ 143 - "core-foundation-sys", 144 - "libc", 145 - ] 146 - 147 - [[package]] 148 - name = "core-foundation-sys" 149 - version = "0.8.4" 150 - source = "registry+https://github.com/rust-lang/crates.io-index" 151 - checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" 152 - 153 - [[package]] 154 - name = "crc32fast" 155 - version = "1.3.2" 156 - source = "registry+https://github.com/rust-lang/crates.io-index" 157 - checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" 158 - dependencies = [ 159 - "cfg-if 1.0.0", 160 - ] 161 - 162 - [[package]] 163 - name = "crossbeam-channel" 164 - version = "0.5.8" 165 - source = "registry+https://github.com/rust-lang/crates.io-index" 166 - checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" 167 - dependencies = [ 168 - "cfg-if 1.0.0", 169 - "crossbeam-utils", 170 - ] 171 - 172 - [[package]] 173 - name = "crossbeam-utils" 174 - version = "0.8.15" 175 - source = "registry+https://github.com/rust-lang/crates.io-index" 176 - checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" 177 - dependencies = [ 178 - "cfg-if 1.0.0", 179 - ] 180 - 181 - [[package]] 182 - name = "encoding_rs" 183 - version = "0.8.32" 184 - source = "registry+https://github.com/rust-lang/crates.io-index" 185 - checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" 186 - dependencies = [ 187 - "cfg-if 1.0.0", 188 - ] 189 - 190 - [[package]] 191 - name = "errno" 192 - version = "0.3.1" 193 - source = "registry+https://github.com/rust-lang/crates.io-index" 194 - checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" 195 - dependencies = [ 196 - "errno-dragonfly", 197 - "libc", 198 - "windows-sys 0.48.0", 199 - ] 200 - 201 - [[package]] 202 - name = "errno-dragonfly" 203 - version = "0.1.2" 204 - source = "registry+https://github.com/rust-lang/crates.io-index" 205 - checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" 206 - dependencies = [ 207 - "cc", 208 - "libc", 209 - ] 210 - 211 - [[package]] 212 - name = "failure" 213 - version = "0.1.8" 214 - source = "registry+https://github.com/rust-lang/crates.io-index" 215 - checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" 216 - dependencies = [ 217 - "backtrace", 218 - "failure_derive", 219 - ] 220 - 221 - [[package]] 222 - name = "failure_derive" 223 - version = "0.1.8" 224 - source = "registry+https://github.com/rust-lang/crates.io-index" 225 - checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" 226 - dependencies = [ 227 - "proc-macro2", 228 - "quote", 229 - "syn 1.0.109", 230 - "synstructure", 231 - ] 232 - 233 - [[package]] 234 - name = "fastrand" 235 - version = "1.9.0" 236 - source = "registry+https://github.com/rust-lang/crates.io-index" 237 - checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" 238 - dependencies = [ 239 - "instant", 240 - ] 241 - 242 - [[package]] 243 - name = "filetime" 244 - version = "0.2.21" 245 - source = "registry+https://github.com/rust-lang/crates.io-index" 246 - checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" 247 - dependencies = [ 248 - "cfg-if 1.0.0", 249 - "libc", 250 - "redox_syscall 0.2.16", 251 - "windows-sys 0.48.0", 252 - ] 253 - 254 - [[package]] 255 - name = "flate2" 256 - version = "1.0.26" 257 - source = "registry+https://github.com/rust-lang/crates.io-index" 258 - checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" 259 - dependencies = [ 260 - "crc32fast", 261 - "miniz_oxide 0.7.1", 262 - ] 263 - 264 - [[package]] 265 - name = "fnv" 266 - version = "1.0.7" 267 - source = "registry+https://github.com/rust-lang/crates.io-index" 268 - checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 269 - 270 - [[package]] 271 - name = "foreign-types" 272 - version = "0.3.2" 273 - source = "registry+https://github.com/rust-lang/crates.io-index" 274 - checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 275 - dependencies = [ 276 - "foreign-types-shared", 277 - ] 278 - 279 - [[package]] 280 - name = "foreign-types-shared" 281 - version = "0.1.1" 282 - source = "registry+https://github.com/rust-lang/crates.io-index" 283 - checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 284 - 285 - [[package]] 286 - name = "form_urlencoded" 287 - version = "1.1.0" 288 - source = "registry+https://github.com/rust-lang/crates.io-index" 289 - checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" 290 - dependencies = [ 291 - "percent-encoding", 292 - ] 293 - 294 - [[package]] 295 - name = "fuchsia-zircon" 296 - version = "0.3.3" 297 - source = "registry+https://github.com/rust-lang/crates.io-index" 298 - checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" 299 - dependencies = [ 300 - "bitflags", 301 - "fuchsia-zircon-sys", 302 - ] 303 - 304 - [[package]] 305 - name = "fuchsia-zircon-sys" 306 - version = "0.3.3" 307 - source = "registry+https://github.com/rust-lang/crates.io-index" 308 - checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 309 - 310 - [[package]] 311 - name = "futures-channel" 312 - version = "0.3.28" 313 - source = "registry+https://github.com/rust-lang/crates.io-index" 314 - checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" 315 - dependencies = [ 316 - "futures-core", 317 - ] 318 - 319 - [[package]] 320 - name = "futures-core" 321 - version = "0.3.28" 322 - source = "registry+https://github.com/rust-lang/crates.io-index" 323 - checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" 324 - 325 - [[package]] 326 - name = "futures-io" 327 - version = "0.3.28" 328 - source = "registry+https://github.com/rust-lang/crates.io-index" 329 - checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" 330 - 331 - [[package]] 332 - name = "futures-sink" 333 - version = "0.3.28" 334 - source = "registry+https://github.com/rust-lang/crates.io-index" 335 - checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" 336 - 337 - [[package]] 338 - name = "futures-task" 339 - version = "0.3.28" 340 - source = "registry+https://github.com/rust-lang/crates.io-index" 341 - checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" 342 - 343 - [[package]] 344 - name = "futures-util" 345 - version = "0.3.28" 346 - source = "registry+https://github.com/rust-lang/crates.io-index" 347 - checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" 348 - dependencies = [ 349 - "futures-core", 350 - "futures-io", 351 - "futures-task", 352 - "memchr", 353 - "pin-project-lite 0.2.9", 354 - "pin-utils", 355 - "slab", 356 - ] 357 - 358 - [[package]] 359 - name = "gimli" 360 - version = "0.27.2" 361 - source = "registry+https://github.com/rust-lang/crates.io-index" 362 - checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" 363 - 364 - [[package]] 365 - name = "h2" 366 - version = "0.2.7" 367 - source = "registry+https://github.com/rust-lang/crates.io-index" 368 - checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535" 369 - dependencies = [ 370 - "bytes 0.5.6", 371 - "fnv", 372 - "futures-core", 373 - "futures-sink", 374 - "futures-util", 375 - "http", 376 - "indexmap", 377 - "slab", 378 - "tokio", 379 - "tokio-util", 380 - "tracing", 381 - "tracing-futures", 382 - ] 383 - 384 - [[package]] 385 - name = "hashbrown" 386 - version = "0.12.3" 387 - source = "registry+https://github.com/rust-lang/crates.io-index" 388 - checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 389 - 390 - [[package]] 391 - name = "heck" 392 - version = "0.3.3" 393 - source = "registry+https://github.com/rust-lang/crates.io-index" 394 - checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" 395 - dependencies = [ 396 - "unicode-segmentation", 397 - ] 398 - 399 - [[package]] 400 - name = "hermit-abi" 401 - version = "0.1.19" 402 - source = "registry+https://github.com/rust-lang/crates.io-index" 403 - checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 404 - dependencies = [ 405 - "libc", 406 - ] 407 - 408 - [[package]] 409 - name = "hermit-abi" 410 - version = "0.2.6" 411 - source = "registry+https://github.com/rust-lang/crates.io-index" 412 - checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" 413 - dependencies = [ 414 - "libc", 415 - ] 416 - 417 - [[package]] 418 - name = "hermit-abi" 419 - version = "0.3.1" 420 - source = "registry+https://github.com/rust-lang/crates.io-index" 421 - checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" 422 - 423 - [[package]] 424 - name = "home" 425 - version = "0.5.5" 426 - source = "registry+https://github.com/rust-lang/crates.io-index" 427 - checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" 428 - dependencies = [ 429 - "windows-sys 0.48.0", 430 - ] 431 - 432 - [[package]] 433 - name = "http" 434 - version = "0.2.9" 435 - source = "registry+https://github.com/rust-lang/crates.io-index" 436 - checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" 437 - dependencies = [ 438 - "bytes 1.4.0", 439 - "fnv", 440 - "itoa 1.0.6", 441 - ] 442 - 443 - [[package]] 444 - name = "http-body" 445 - version = "0.3.1" 446 - source = "registry+https://github.com/rust-lang/crates.io-index" 447 - checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" 448 - dependencies = [ 449 - "bytes 0.5.6", 450 - "http", 451 - ] 452 - 453 - [[package]] 454 - name = "httparse" 455 - version = "1.8.0" 456 - source = "registry+https://github.com/rust-lang/crates.io-index" 457 - checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 458 - 459 - [[package]] 460 - name = "httpdate" 461 - version = "0.3.2" 462 - source = "registry+https://github.com/rust-lang/crates.io-index" 463 - checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" 464 - 465 - [[package]] 466 - name = "hyper" 467 - version = "0.13.10" 468 - source = "registry+https://github.com/rust-lang/crates.io-index" 469 - checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb" 470 - dependencies = [ 471 - "bytes 0.5.6", 472 - "futures-channel", 473 - "futures-core", 474 - "futures-util", 475 - "h2", 476 - "http", 477 - "http-body", 478 - "httparse", 479 - "httpdate", 480 - "itoa 0.4.8", 481 - "pin-project", 482 - "socket2", 483 - "tokio", 484 - "tower-service", 485 - "tracing", 486 - "want", 487 - ] 488 - 489 - [[package]] 490 - name = "hyper-tls" 491 - version = "0.4.3" 492 - source = "registry+https://github.com/rust-lang/crates.io-index" 493 - checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed" 494 - dependencies = [ 495 - "bytes 0.5.6", 496 - "hyper", 497 - "native-tls", 498 - "tokio", 499 - "tokio-tls", 500 - ] 501 - 502 - [[package]] 503 - name = "idna" 504 - version = "0.3.0" 505 - source = "registry+https://github.com/rust-lang/crates.io-index" 506 - checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" 507 - dependencies = [ 508 - "unicode-bidi", 509 - "unicode-normalization", 510 - ] 511 - 512 - [[package]] 513 - name = "indexmap" 514 - version = "1.9.3" 515 - source = "registry+https://github.com/rust-lang/crates.io-index" 516 - checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 517 - dependencies = [ 518 - "autocfg", 519 - "hashbrown", 520 - ] 521 - 522 - [[package]] 523 - name = "instant" 524 - version = "0.1.12" 525 - source = "registry+https://github.com/rust-lang/crates.io-index" 526 - checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 527 - dependencies = [ 528 - "cfg-if 1.0.0", 529 - ] 530 - 531 - [[package]] 532 - name = "io-lifetimes" 533 - version = "1.0.10" 534 - source = "registry+https://github.com/rust-lang/crates.io-index" 535 - checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" 536 - dependencies = [ 537 - "hermit-abi 0.3.1", 538 - "libc", 539 - "windows-sys 0.48.0", 540 - ] 541 - 542 - [[package]] 543 - name = "iovec" 544 - version = "0.1.4" 545 - source = "registry+https://github.com/rust-lang/crates.io-index" 546 - checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" 547 - dependencies = [ 548 - "libc", 549 - ] 550 - 551 - [[package]] 552 - name = "ipnet" 553 - version = "2.7.2" 554 - source = "registry+https://github.com/rust-lang/crates.io-index" 555 - checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" 556 - 557 - [[package]] 558 - name = "itoa" 559 - version = "0.4.8" 560 - source = "registry+https://github.com/rust-lang/crates.io-index" 561 - checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" 562 - 563 - [[package]] 564 - name = "itoa" 565 - version = "1.0.6" 566 - source = "registry+https://github.com/rust-lang/crates.io-index" 567 - checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" 568 - 569 - [[package]] 570 - name = "js-sys" 571 - version = "0.3.62" 572 - source = "registry+https://github.com/rust-lang/crates.io-index" 573 - checksum = "68c16e1bfd491478ab155fd8b4896b86f9ede344949b641e61501e07c2b8b4d5" 574 - dependencies = [ 575 - "wasm-bindgen", 576 - ] 577 - 578 - [[package]] 579 - name = "kernel32-sys" 580 - version = "0.2.2" 581 - source = "registry+https://github.com/rust-lang/crates.io-index" 582 - checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 583 - dependencies = [ 584 - "winapi 0.2.8", 585 - "winapi-build", 586 - ] 587 - 588 - [[package]] 589 - name = "lazy_static" 590 - version = "1.4.0" 591 - source = "registry+https://github.com/rust-lang/crates.io-index" 592 - checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 593 - 594 - [[package]] 595 - name = "libc" 596 - version = "0.2.144" 597 - source = "registry+https://github.com/rust-lang/crates.io-index" 598 - checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" 599 - 600 - [[package]] 601 - name = "linux-raw-sys" 602 - version = "0.3.7" 603 - source = "registry+https://github.com/rust-lang/crates.io-index" 604 - checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" 605 - 606 - [[package]] 607 - name = "log" 608 - version = "0.4.17" 609 - source = "registry+https://github.com/rust-lang/crates.io-index" 610 - checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 611 - dependencies = [ 612 - "cfg-if 1.0.0", 613 - ] 614 - 615 - [[package]] 616 - name = "lzma-sys" 617 - version = "0.1.20" 618 - source = "registry+https://github.com/rust-lang/crates.io-index" 619 - checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" 620 - dependencies = [ 621 - "cc", 622 - "libc", 623 - "pkg-config", 624 - ] 625 - 626 - [[package]] 627 - name = "memchr" 628 - version = "2.5.0" 629 - source = "registry+https://github.com/rust-lang/crates.io-index" 630 - checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 631 - 632 - [[package]] 633 - name = "mime" 634 - version = "0.3.17" 635 - source = "registry+https://github.com/rust-lang/crates.io-index" 636 - checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 637 - 638 - [[package]] 639 - name = "mime_guess" 640 - version = "2.0.4" 641 - source = "registry+https://github.com/rust-lang/crates.io-index" 642 - checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" 643 - dependencies = [ 644 - "mime", 645 - "unicase", 646 - ] 647 - 648 - [[package]] 649 - name = "miniz_oxide" 650 - version = "0.6.2" 651 - source = "registry+https://github.com/rust-lang/crates.io-index" 652 - checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" 653 - dependencies = [ 654 - "adler", 655 - ] 656 - 657 - [[package]] 658 - name = "miniz_oxide" 659 - version = "0.7.1" 660 - source = "registry+https://github.com/rust-lang/crates.io-index" 661 - checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" 662 - dependencies = [ 663 - "adler", 664 - ] 665 - 666 - [[package]] 667 - name = "mio" 668 - version = "0.6.23" 669 - source = "registry+https://github.com/rust-lang/crates.io-index" 670 - checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" 671 - dependencies = [ 672 - "cfg-if 0.1.10", 673 - "fuchsia-zircon", 674 - "fuchsia-zircon-sys", 675 - "iovec", 676 - "kernel32-sys", 677 - "libc", 678 - "log", 679 - "miow", 680 - "net2", 681 - "slab", 682 - "winapi 0.2.8", 683 - ] 684 - 685 - [[package]] 686 - name = "miow" 687 - version = "0.2.2" 688 - source = "registry+https://github.com/rust-lang/crates.io-index" 689 - checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" 690 - dependencies = [ 691 - "kernel32-sys", 692 - "net2", 693 - "winapi 0.2.8", 694 - "ws2_32-sys", 695 - ] 696 - 697 - [[package]] 698 - name = "native-tls" 699 - version = "0.2.11" 700 - source = "registry+https://github.com/rust-lang/crates.io-index" 701 - checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" 702 - dependencies = [ 703 - "lazy_static", 704 - "libc", 705 - "log", 706 - "openssl", 707 - "openssl-probe", 708 - "openssl-sys", 709 - "schannel", 710 - "security-framework", 711 - "security-framework-sys", 712 - "tempfile", 713 - ] 714 - 715 - [[package]] 716 - name = "net2" 717 - version = "0.2.38" 718 - source = "registry+https://github.com/rust-lang/crates.io-index" 719 - checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" 720 - dependencies = [ 721 - "cfg-if 0.1.10", 722 - "libc", 723 - "winapi 0.3.9", 724 - ] 725 - 726 - [[package]] 727 - name = "num_cpus" 728 - version = "1.15.0" 729 - source = "registry+https://github.com/rust-lang/crates.io-index" 730 - checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" 731 - dependencies = [ 732 - "hermit-abi 0.2.6", 733 - "libc", 734 - ] 735 - 736 - [[package]] 737 - name = "object" 738 - version = "0.30.3" 739 - source = "registry+https://github.com/rust-lang/crates.io-index" 740 - checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" 741 - dependencies = [ 742 - "memchr", 743 - ] 744 - 745 - [[package]] 746 - name = "once_cell" 747 - version = "1.17.1" 748 - source = "registry+https://github.com/rust-lang/crates.io-index" 749 - checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" 750 - 751 - [[package]] 752 - name = "openssl" 753 - version = "0.10.52" 754 - source = "registry+https://github.com/rust-lang/crates.io-index" 755 - checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56" 756 - dependencies = [ 757 - "bitflags", 758 - "cfg-if 1.0.0", 759 - "foreign-types", 760 - "libc", 761 - "once_cell", 762 - "openssl-macros", 763 - "openssl-sys", 764 - ] 765 - 766 - [[package]] 767 - name = "openssl-macros" 768 - version = "0.1.1" 769 - source = "registry+https://github.com/rust-lang/crates.io-index" 770 - checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 771 - dependencies = [ 772 - "proc-macro2", 773 - "quote", 774 - "syn 2.0.15", 775 - ] 776 - 777 - [[package]] 778 - name = "openssl-probe" 779 - version = "0.1.5" 780 - source = "registry+https://github.com/rust-lang/crates.io-index" 781 - checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 782 - 783 - [[package]] 784 - name = "openssl-sys" 785 - version = "0.9.87" 786 - source = "registry+https://github.com/rust-lang/crates.io-index" 787 - checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e" 788 - dependencies = [ 789 - "cc", 790 - "libc", 791 - "pkg-config", 792 - "vcpkg", 793 - ] 794 - 795 - [[package]] 796 - name = "pbr" 797 - version = "1.1.1" 798 - source = "registry+https://github.com/rust-lang/crates.io-index" 799 - checksum = "ed5827dfa0d69b6c92493d6c38e633bbaa5937c153d0d7c28bf12313f8c6d514" 800 - dependencies = [ 801 - "crossbeam-channel", 802 - "libc", 803 - "winapi 0.3.9", 804 - ] 805 - 806 - [[package]] 807 - name = "percent-encoding" 808 - version = "2.2.0" 809 - source = "registry+https://github.com/rust-lang/crates.io-index" 810 - checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" 811 - 812 - [[package]] 813 - name = "pin-project" 814 - version = "1.0.12" 815 - source = "registry+https://github.com/rust-lang/crates.io-index" 816 - checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" 817 - dependencies = [ 818 - "pin-project-internal", 819 - ] 820 - 821 - [[package]] 822 - name = "pin-project-internal" 823 - version = "1.0.12" 824 - source = "registry+https://github.com/rust-lang/crates.io-index" 825 - checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" 826 - dependencies = [ 827 - "proc-macro2", 828 - "quote", 829 - "syn 1.0.109", 830 - ] 831 - 832 - [[package]] 833 - name = "pin-project-lite" 834 - version = "0.1.12" 835 - source = "registry+https://github.com/rust-lang/crates.io-index" 836 - checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" 837 - 838 - [[package]] 839 - name = "pin-project-lite" 840 - version = "0.2.9" 841 - source = "registry+https://github.com/rust-lang/crates.io-index" 842 - checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 843 - 844 - [[package]] 845 - name = "pin-utils" 846 - version = "0.1.0" 847 - source = "registry+https://github.com/rust-lang/crates.io-index" 848 - checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 849 - 850 - [[package]] 851 - name = "pkg-config" 852 - version = "0.3.27" 853 - source = "registry+https://github.com/rust-lang/crates.io-index" 854 - checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" 855 - 856 - [[package]] 857 - name = "proc-macro-error" 858 - version = "1.0.4" 859 - source = "registry+https://github.com/rust-lang/crates.io-index" 860 - checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 861 - dependencies = [ 862 - "proc-macro-error-attr", 863 - "proc-macro2", 864 - "quote", 865 - "syn 1.0.109", 866 - "version_check", 867 - ] 868 - 869 - [[package]] 870 - name = "proc-macro-error-attr" 871 - version = "1.0.4" 872 - source = "registry+https://github.com/rust-lang/crates.io-index" 873 - checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 874 - dependencies = [ 875 - "proc-macro2", 876 - "quote", 877 - "version_check", 878 - ] 879 - 880 - [[package]] 881 - name = "proc-macro2" 882 - version = "1.0.56" 883 - source = "registry+https://github.com/rust-lang/crates.io-index" 884 - checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" 885 - dependencies = [ 886 - "unicode-ident", 887 - ] 888 - 889 - [[package]] 890 - name = "quote" 891 - version = "1.0.27" 892 - source = "registry+https://github.com/rust-lang/crates.io-index" 893 - checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500" 894 - dependencies = [ 895 - "proc-macro2", 896 - ] 897 - 898 - [[package]] 899 - name = "redox_syscall" 900 - version = "0.2.16" 901 - source = "registry+https://github.com/rust-lang/crates.io-index" 902 - checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 903 - dependencies = [ 904 - "bitflags", 905 - ] 906 - 907 - [[package]] 908 - name = "redox_syscall" 909 - version = "0.3.5" 910 - source = "registry+https://github.com/rust-lang/crates.io-index" 911 - checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" 912 - dependencies = [ 913 - "bitflags", 914 - ] 915 - 916 - [[package]] 917 - name = "remove_dir_all" 918 - version = "0.5.3" 919 - source = "registry+https://github.com/rust-lang/crates.io-index" 920 - checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" 921 - dependencies = [ 922 - "winapi 0.3.9", 923 - ] 924 - 925 - [[package]] 926 - name = "reqwest" 927 - version = "0.10.10" 928 - source = "registry+https://github.com/rust-lang/crates.io-index" 929 - checksum = "0718f81a8e14c4dbb3b34cf23dc6aaf9ab8a0dfec160c534b3dbca1aaa21f47c" 930 - dependencies = [ 931 - "async-compression", 932 - "base64", 933 - "bytes 0.5.6", 934 - "encoding_rs", 935 - "futures-core", 936 - "futures-util", 937 - "http", 938 - "http-body", 939 - "hyper", 940 - "hyper-tls", 941 - "ipnet", 942 - "js-sys", 943 - "lazy_static", 944 - "log", 945 - "mime", 946 - "mime_guess", 947 - "native-tls", 948 - "percent-encoding", 949 - "pin-project-lite 0.2.9", 950 - "serde", 951 - "serde_urlencoded", 952 - "tokio", 953 - "tokio-tls", 954 - "url", 955 - "wasm-bindgen", 956 - "wasm-bindgen-futures", 957 - "web-sys", 958 - "winreg", 959 - ] 960 - 961 - [[package]] 962 - name = "rustc-demangle" 963 - version = "0.1.23" 964 - source = "registry+https://github.com/rust-lang/crates.io-index" 965 - checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 966 - 967 - [[package]] 968 - name = "rustix" 969 - version = "0.37.19" 970 - source = "registry+https://github.com/rust-lang/crates.io-index" 971 - checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" 972 - dependencies = [ 973 - "bitflags", 974 - "errno", 975 - "io-lifetimes", 976 - "libc", 977 - "linux-raw-sys", 978 - "windows-sys 0.48.0", 979 - ] 980 - 981 - [[package]] 982 - name = "rustup-toolchain-install-master" 983 - version = "1.7.3" 984 - dependencies = [ 985 - "ansi_term", 986 - "failure", 987 - "home", 988 - "pbr", 989 - "remove_dir_all", 990 - "reqwest", 991 - "structopt", 992 - "tar", 993 - "tee", 994 - "tempfile", 995 - "xz2", 996 - ] 997 - 998 - [[package]] 999 - name = "ryu" 1000 - version = "1.0.13" 1001 - source = "registry+https://github.com/rust-lang/crates.io-index" 1002 - checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" 1003 - 1004 - [[package]] 1005 - name = "schannel" 1006 - version = "0.1.21" 1007 - source = "registry+https://github.com/rust-lang/crates.io-index" 1008 - checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" 1009 - dependencies = [ 1010 - "windows-sys 0.42.0", 1011 - ] 1012 - 1013 - [[package]] 1014 - name = "security-framework" 1015 - version = "2.9.0" 1016 - source = "registry+https://github.com/rust-lang/crates.io-index" 1017 - checksum = "ca2855b3715770894e67cbfa3df957790aa0c9edc3bf06efa1a84d77fa0839d1" 1018 - dependencies = [ 1019 - "bitflags", 1020 - "core-foundation", 1021 - "core-foundation-sys", 1022 - "libc", 1023 - "security-framework-sys", 1024 - ] 1025 - 1026 - [[package]] 1027 - name = "security-framework-sys" 1028 - version = "2.9.0" 1029 - source = "registry+https://github.com/rust-lang/crates.io-index" 1030 - checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" 1031 - dependencies = [ 1032 - "core-foundation-sys", 1033 - "libc", 1034 - ] 1035 - 1036 - [[package]] 1037 - name = "serde" 1038 - version = "1.0.163" 1039 - source = "registry+https://github.com/rust-lang/crates.io-index" 1040 - checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" 1041 - 1042 - [[package]] 1043 - name = "serde_json" 1044 - version = "1.0.96" 1045 - source = "registry+https://github.com/rust-lang/crates.io-index" 1046 - checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" 1047 - dependencies = [ 1048 - "itoa 1.0.6", 1049 - "ryu", 1050 - "serde", 1051 - ] 1052 - 1053 - [[package]] 1054 - name = "serde_urlencoded" 1055 - version = "0.7.1" 1056 - source = "registry+https://github.com/rust-lang/crates.io-index" 1057 - checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1058 - dependencies = [ 1059 - "form_urlencoded", 1060 - "itoa 1.0.6", 1061 - "ryu", 1062 - "serde", 1063 - ] 1064 - 1065 - [[package]] 1066 - name = "slab" 1067 - version = "0.4.8" 1068 - source = "registry+https://github.com/rust-lang/crates.io-index" 1069 - checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" 1070 - dependencies = [ 1071 - "autocfg", 1072 - ] 1073 - 1074 - [[package]] 1075 - name = "socket2" 1076 - version = "0.3.19" 1077 - source = "registry+https://github.com/rust-lang/crates.io-index" 1078 - checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" 1079 - dependencies = [ 1080 - "cfg-if 1.0.0", 1081 - "libc", 1082 - "winapi 0.3.9", 1083 - ] 1084 - 1085 - [[package]] 1086 - name = "strsim" 1087 - version = "0.8.0" 1088 - source = "registry+https://github.com/rust-lang/crates.io-index" 1089 - checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" 1090 - 1091 - [[package]] 1092 - name = "structopt" 1093 - version = "0.3.26" 1094 - source = "registry+https://github.com/rust-lang/crates.io-index" 1095 - checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" 1096 - dependencies = [ 1097 - "clap", 1098 - "lazy_static", 1099 - "structopt-derive", 1100 - ] 1101 - 1102 - [[package]] 1103 - name = "structopt-derive" 1104 - version = "0.4.18" 1105 - source = "registry+https://github.com/rust-lang/crates.io-index" 1106 - checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" 1107 - dependencies = [ 1108 - "heck", 1109 - "proc-macro-error", 1110 - "proc-macro2", 1111 - "quote", 1112 - "syn 1.0.109", 1113 - ] 1114 - 1115 - [[package]] 1116 - name = "syn" 1117 - version = "1.0.109" 1118 - source = "registry+https://github.com/rust-lang/crates.io-index" 1119 - checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1120 - dependencies = [ 1121 - "proc-macro2", 1122 - "quote", 1123 - "unicode-ident", 1124 - ] 1125 - 1126 - [[package]] 1127 - name = "syn" 1128 - version = "2.0.15" 1129 - source = "registry+https://github.com/rust-lang/crates.io-index" 1130 - checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" 1131 - dependencies = [ 1132 - "proc-macro2", 1133 - "quote", 1134 - "unicode-ident", 1135 - ] 1136 - 1137 - [[package]] 1138 - name = "synstructure" 1139 - version = "0.12.6" 1140 - source = "registry+https://github.com/rust-lang/crates.io-index" 1141 - checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" 1142 - dependencies = [ 1143 - "proc-macro2", 1144 - "quote", 1145 - "syn 1.0.109", 1146 - "unicode-xid", 1147 - ] 1148 - 1149 - [[package]] 1150 - name = "tar" 1151 - version = "0.4.38" 1152 - source = "registry+https://github.com/rust-lang/crates.io-index" 1153 - checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" 1154 - dependencies = [ 1155 - "filetime", 1156 - "libc", 1157 - "xattr", 1158 - ] 1159 - 1160 - [[package]] 1161 - name = "tee" 1162 - version = "0.1.0" 1163 - source = "registry+https://github.com/rust-lang/crates.io-index" 1164 - checksum = "37c12559dba7383625faaff75be24becf35bfc885044375bcab931111799a3da" 1165 - 1166 - [[package]] 1167 - name = "tempfile" 1168 - version = "3.5.0" 1169 - source = "registry+https://github.com/rust-lang/crates.io-index" 1170 - checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" 1171 - dependencies = [ 1172 - "cfg-if 1.0.0", 1173 - "fastrand", 1174 - "redox_syscall 0.3.5", 1175 - "rustix", 1176 - "windows-sys 0.45.0", 1177 - ] 1178 - 1179 - [[package]] 1180 - name = "textwrap" 1181 - version = "0.11.0" 1182 - source = "registry+https://github.com/rust-lang/crates.io-index" 1183 - checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" 1184 - dependencies = [ 1185 - "unicode-width", 1186 - ] 1187 - 1188 - [[package]] 1189 - name = "tinyvec" 1190 - version = "1.6.0" 1191 - source = "registry+https://github.com/rust-lang/crates.io-index" 1192 - checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 1193 - dependencies = [ 1194 - "tinyvec_macros", 1195 - ] 1196 - 1197 - [[package]] 1198 - name = "tinyvec_macros" 1199 - version = "0.1.1" 1200 - source = "registry+https://github.com/rust-lang/crates.io-index" 1201 - checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1202 - 1203 - [[package]] 1204 - name = "tokio" 1205 - version = "0.2.25" 1206 - source = "registry+https://github.com/rust-lang/crates.io-index" 1207 - checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092" 1208 - dependencies = [ 1209 - "bytes 0.5.6", 1210 - "fnv", 1211 - "futures-core", 1212 - "iovec", 1213 - "lazy_static", 1214 - "memchr", 1215 - "mio", 1216 - "num_cpus", 1217 - "pin-project-lite 0.1.12", 1218 - "slab", 1219 - ] 1220 - 1221 - [[package]] 1222 - name = "tokio-tls" 1223 - version = "0.3.1" 1224 - source = "registry+https://github.com/rust-lang/crates.io-index" 1225 - checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343" 1226 - dependencies = [ 1227 - "native-tls", 1228 - "tokio", 1229 - ] 1230 - 1231 - [[package]] 1232 - name = "tokio-util" 1233 - version = "0.3.1" 1234 - source = "registry+https://github.com/rust-lang/crates.io-index" 1235 - checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" 1236 - dependencies = [ 1237 - "bytes 0.5.6", 1238 - "futures-core", 1239 - "futures-sink", 1240 - "log", 1241 - "pin-project-lite 0.1.12", 1242 - "tokio", 1243 - ] 1244 - 1245 - [[package]] 1246 - name = "tower-service" 1247 - version = "0.3.2" 1248 - source = "registry+https://github.com/rust-lang/crates.io-index" 1249 - checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 1250 - 1251 - [[package]] 1252 - name = "tracing" 1253 - version = "0.1.37" 1254 - source = "registry+https://github.com/rust-lang/crates.io-index" 1255 - checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" 1256 - dependencies = [ 1257 - "cfg-if 1.0.0", 1258 - "log", 1259 - "pin-project-lite 0.2.9", 1260 - "tracing-core", 1261 - ] 1262 - 1263 - [[package]] 1264 - name = "tracing-core" 1265 - version = "0.1.31" 1266 - source = "registry+https://github.com/rust-lang/crates.io-index" 1267 - checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" 1268 - dependencies = [ 1269 - "once_cell", 1270 - ] 1271 - 1272 - [[package]] 1273 - name = "tracing-futures" 1274 - version = "0.2.5" 1275 - source = "registry+https://github.com/rust-lang/crates.io-index" 1276 - checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" 1277 - dependencies = [ 1278 - "pin-project", 1279 - "tracing", 1280 - ] 1281 - 1282 - [[package]] 1283 - name = "try-lock" 1284 - version = "0.2.4" 1285 - source = "registry+https://github.com/rust-lang/crates.io-index" 1286 - checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" 1287 - 1288 - [[package]] 1289 - name = "unicase" 1290 - version = "2.6.0" 1291 - source = "registry+https://github.com/rust-lang/crates.io-index" 1292 - checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" 1293 - dependencies = [ 1294 - "version_check", 1295 - ] 1296 - 1297 - [[package]] 1298 - name = "unicode-bidi" 1299 - version = "0.3.13" 1300 - source = "registry+https://github.com/rust-lang/crates.io-index" 1301 - checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" 1302 - 1303 - [[package]] 1304 - name = "unicode-ident" 1305 - version = "1.0.8" 1306 - source = "registry+https://github.com/rust-lang/crates.io-index" 1307 - checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" 1308 - 1309 - [[package]] 1310 - name = "unicode-normalization" 1311 - version = "0.1.22" 1312 - source = "registry+https://github.com/rust-lang/crates.io-index" 1313 - checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 1314 - dependencies = [ 1315 - "tinyvec", 1316 - ] 1317 - 1318 - [[package]] 1319 - name = "unicode-segmentation" 1320 - version = "1.10.1" 1321 - source = "registry+https://github.com/rust-lang/crates.io-index" 1322 - checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" 1323 - 1324 - [[package]] 1325 - name = "unicode-width" 1326 - version = "0.1.10" 1327 - source = "registry+https://github.com/rust-lang/crates.io-index" 1328 - checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" 1329 - 1330 - [[package]] 1331 - name = "unicode-xid" 1332 - version = "0.2.4" 1333 - source = "registry+https://github.com/rust-lang/crates.io-index" 1334 - checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" 1335 - 1336 - [[package]] 1337 - name = "url" 1338 - version = "2.3.1" 1339 - source = "registry+https://github.com/rust-lang/crates.io-index" 1340 - checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" 1341 - dependencies = [ 1342 - "form_urlencoded", 1343 - "idna", 1344 - "percent-encoding", 1345 - ] 1346 - 1347 - [[package]] 1348 - name = "vcpkg" 1349 - version = "0.2.15" 1350 - source = "registry+https://github.com/rust-lang/crates.io-index" 1351 - checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 1352 - 1353 - [[package]] 1354 - name = "vec_map" 1355 - version = "0.8.2" 1356 - source = "registry+https://github.com/rust-lang/crates.io-index" 1357 - checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" 1358 - 1359 - [[package]] 1360 - name = "version_check" 1361 - version = "0.9.4" 1362 - source = "registry+https://github.com/rust-lang/crates.io-index" 1363 - checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 1364 - 1365 - [[package]] 1366 - name = "want" 1367 - version = "0.3.0" 1368 - source = "registry+https://github.com/rust-lang/crates.io-index" 1369 - checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 1370 - dependencies = [ 1371 - "log", 1372 - "try-lock", 1373 - ] 1374 - 1375 - [[package]] 1376 - name = "wasm-bindgen" 1377 - version = "0.2.85" 1378 - source = "registry+https://github.com/rust-lang/crates.io-index" 1379 - checksum = "5b6cb788c4e39112fbe1822277ef6fb3c55cd86b95cb3d3c4c1c9597e4ac74b4" 1380 - dependencies = [ 1381 - "cfg-if 1.0.0", 1382 - "serde", 1383 - "serde_json", 1384 - "wasm-bindgen-macro", 1385 - ] 1386 - 1387 - [[package]] 1388 - name = "wasm-bindgen-backend" 1389 - version = "0.2.85" 1390 - source = "registry+https://github.com/rust-lang/crates.io-index" 1391 - checksum = "35e522ed4105a9d626d885b35d62501b30d9666283a5c8be12c14a8bdafe7822" 1392 - dependencies = [ 1393 - "bumpalo", 1394 - "log", 1395 - "once_cell", 1396 - "proc-macro2", 1397 - "quote", 1398 - "syn 2.0.15", 1399 - "wasm-bindgen-shared", 1400 - ] 1401 - 1402 - [[package]] 1403 - name = "wasm-bindgen-futures" 1404 - version = "0.4.35" 1405 - source = "registry+https://github.com/rust-lang/crates.io-index" 1406 - checksum = "083abe15c5d88556b77bdf7aef403625be9e327ad37c62c4e4129af740168163" 1407 - dependencies = [ 1408 - "cfg-if 1.0.0", 1409 - "js-sys", 1410 - "wasm-bindgen", 1411 - "web-sys", 1412 - ] 1413 - 1414 - [[package]] 1415 - name = "wasm-bindgen-macro" 1416 - version = "0.2.85" 1417 - source = "registry+https://github.com/rust-lang/crates.io-index" 1418 - checksum = "358a79a0cb89d21db8120cbfb91392335913e4890665b1a7981d9e956903b434" 1419 - dependencies = [ 1420 - "quote", 1421 - "wasm-bindgen-macro-support", 1422 - ] 1423 - 1424 - [[package]] 1425 - name = "wasm-bindgen-macro-support" 1426 - version = "0.2.85" 1427 - source = "registry+https://github.com/rust-lang/crates.io-index" 1428 - checksum = "4783ce29f09b9d93134d41297aded3a712b7b979e9c6f28c32cb88c973a94869" 1429 - dependencies = [ 1430 - "proc-macro2", 1431 - "quote", 1432 - "syn 2.0.15", 1433 - "wasm-bindgen-backend", 1434 - "wasm-bindgen-shared", 1435 - ] 1436 - 1437 - [[package]] 1438 - name = "wasm-bindgen-shared" 1439 - version = "0.2.85" 1440 - source = "registry+https://github.com/rust-lang/crates.io-index" 1441 - checksum = "a901d592cafaa4d711bc324edfaff879ac700b19c3dfd60058d2b445be2691eb" 1442 - 1443 - [[package]] 1444 - name = "web-sys" 1445 - version = "0.3.62" 1446 - source = "registry+https://github.com/rust-lang/crates.io-index" 1447 - checksum = "16b5f940c7edfdc6d12126d98c9ef4d1b3d470011c47c76a6581df47ad9ba721" 1448 - dependencies = [ 1449 - "js-sys", 1450 - "wasm-bindgen", 1451 - ] 1452 - 1453 - [[package]] 1454 - name = "winapi" 1455 - version = "0.2.8" 1456 - source = "registry+https://github.com/rust-lang/crates.io-index" 1457 - checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" 1458 - 1459 - [[package]] 1460 - name = "winapi" 1461 - version = "0.3.9" 1462 - source = "registry+https://github.com/rust-lang/crates.io-index" 1463 - checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 1464 - dependencies = [ 1465 - "winapi-i686-pc-windows-gnu", 1466 - "winapi-x86_64-pc-windows-gnu", 1467 - ] 1468 - 1469 - [[package]] 1470 - name = "winapi-build" 1471 - version = "0.1.1" 1472 - source = "registry+https://github.com/rust-lang/crates.io-index" 1473 - checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" 1474 - 1475 - [[package]] 1476 - name = "winapi-i686-pc-windows-gnu" 1477 - version = "0.4.0" 1478 - source = "registry+https://github.com/rust-lang/crates.io-index" 1479 - checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1480 - 1481 - [[package]] 1482 - name = "winapi-x86_64-pc-windows-gnu" 1483 - version = "0.4.0" 1484 - source = "registry+https://github.com/rust-lang/crates.io-index" 1485 - checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1486 - 1487 - [[package]] 1488 - name = "windows-sys" 1489 - version = "0.42.0" 1490 - source = "registry+https://github.com/rust-lang/crates.io-index" 1491 - checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" 1492 - dependencies = [ 1493 - "windows_aarch64_gnullvm 0.42.2", 1494 - "windows_aarch64_msvc 0.42.2", 1495 - "windows_i686_gnu 0.42.2", 1496 - "windows_i686_msvc 0.42.2", 1497 - "windows_x86_64_gnu 0.42.2", 1498 - "windows_x86_64_gnullvm 0.42.2", 1499 - "windows_x86_64_msvc 0.42.2", 1500 - ] 1501 - 1502 - [[package]] 1503 - name = "windows-sys" 1504 - version = "0.45.0" 1505 - source = "registry+https://github.com/rust-lang/crates.io-index" 1506 - checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 1507 - dependencies = [ 1508 - "windows-targets 0.42.2", 1509 - ] 1510 - 1511 - [[package]] 1512 - name = "windows-sys" 1513 - version = "0.48.0" 1514 - source = "registry+https://github.com/rust-lang/crates.io-index" 1515 - checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 1516 - dependencies = [ 1517 - "windows-targets 0.48.0", 1518 - ] 1519 - 1520 - [[package]] 1521 - name = "windows-targets" 1522 - version = "0.42.2" 1523 - source = "registry+https://github.com/rust-lang/crates.io-index" 1524 - checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 1525 - dependencies = [ 1526 - "windows_aarch64_gnullvm 0.42.2", 1527 - "windows_aarch64_msvc 0.42.2", 1528 - "windows_i686_gnu 0.42.2", 1529 - "windows_i686_msvc 0.42.2", 1530 - "windows_x86_64_gnu 0.42.2", 1531 - "windows_x86_64_gnullvm 0.42.2", 1532 - "windows_x86_64_msvc 0.42.2", 1533 - ] 1534 - 1535 - [[package]] 1536 - name = "windows-targets" 1537 - version = "0.48.0" 1538 - source = "registry+https://github.com/rust-lang/crates.io-index" 1539 - checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" 1540 - dependencies = [ 1541 - "windows_aarch64_gnullvm 0.48.0", 1542 - "windows_aarch64_msvc 0.48.0", 1543 - "windows_i686_gnu 0.48.0", 1544 - "windows_i686_msvc 0.48.0", 1545 - "windows_x86_64_gnu 0.48.0", 1546 - "windows_x86_64_gnullvm 0.48.0", 1547 - "windows_x86_64_msvc 0.48.0", 1548 - ] 1549 - 1550 - [[package]] 1551 - name = "windows_aarch64_gnullvm" 1552 - version = "0.42.2" 1553 - source = "registry+https://github.com/rust-lang/crates.io-index" 1554 - checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 1555 - 1556 - [[package]] 1557 - name = "windows_aarch64_gnullvm" 1558 - version = "0.48.0" 1559 - source = "registry+https://github.com/rust-lang/crates.io-index" 1560 - checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" 1561 - 1562 - [[package]] 1563 - name = "windows_aarch64_msvc" 1564 - version = "0.42.2" 1565 - source = "registry+https://github.com/rust-lang/crates.io-index" 1566 - checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 1567 - 1568 - [[package]] 1569 - name = "windows_aarch64_msvc" 1570 - version = "0.48.0" 1571 - source = "registry+https://github.com/rust-lang/crates.io-index" 1572 - checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" 1573 - 1574 - [[package]] 1575 - name = "windows_i686_gnu" 1576 - version = "0.42.2" 1577 - source = "registry+https://github.com/rust-lang/crates.io-index" 1578 - checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 1579 - 1580 - [[package]] 1581 - name = "windows_i686_gnu" 1582 - version = "0.48.0" 1583 - source = "registry+https://github.com/rust-lang/crates.io-index" 1584 - checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" 1585 - 1586 - [[package]] 1587 - name = "windows_i686_msvc" 1588 - version = "0.42.2" 1589 - source = "registry+https://github.com/rust-lang/crates.io-index" 1590 - checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 1591 - 1592 - [[package]] 1593 - name = "windows_i686_msvc" 1594 - version = "0.48.0" 1595 - source = "registry+https://github.com/rust-lang/crates.io-index" 1596 - checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" 1597 - 1598 - [[package]] 1599 - name = "windows_x86_64_gnu" 1600 - version = "0.42.2" 1601 - source = "registry+https://github.com/rust-lang/crates.io-index" 1602 - checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 1603 - 1604 - [[package]] 1605 - name = "windows_x86_64_gnu" 1606 - version = "0.48.0" 1607 - source = "registry+https://github.com/rust-lang/crates.io-index" 1608 - checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" 1609 - 1610 - [[package]] 1611 - name = "windows_x86_64_gnullvm" 1612 - version = "0.42.2" 1613 - source = "registry+https://github.com/rust-lang/crates.io-index" 1614 - checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 1615 - 1616 - [[package]] 1617 - name = "windows_x86_64_gnullvm" 1618 - version = "0.48.0" 1619 - source = "registry+https://github.com/rust-lang/crates.io-index" 1620 - checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" 1621 - 1622 - [[package]] 1623 - name = "windows_x86_64_msvc" 1624 - version = "0.42.2" 1625 - source = "registry+https://github.com/rust-lang/crates.io-index" 1626 - checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 1627 - 1628 - [[package]] 1629 - name = "windows_x86_64_msvc" 1630 - version = "0.48.0" 1631 - source = "registry+https://github.com/rust-lang/crates.io-index" 1632 - checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" 1633 - 1634 - [[package]] 1635 - name = "winreg" 1636 - version = "0.7.0" 1637 - source = "registry+https://github.com/rust-lang/crates.io-index" 1638 - checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" 1639 - dependencies = [ 1640 - "winapi 0.3.9", 1641 - ] 1642 - 1643 - [[package]] 1644 - name = "ws2_32-sys" 1645 - version = "0.2.1" 1646 - source = "registry+https://github.com/rust-lang/crates.io-index" 1647 - checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" 1648 - dependencies = [ 1649 - "winapi 0.2.8", 1650 - "winapi-build", 1651 - ] 1652 - 1653 - [[package]] 1654 - name = "xattr" 1655 - version = "0.2.3" 1656 - source = "registry+https://github.com/rust-lang/crates.io-index" 1657 - checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" 1658 - dependencies = [ 1659 - "libc", 1660 - ] 1661 - 1662 - [[package]] 1663 - name = "xz2" 1664 - version = "0.1.7" 1665 - source = "registry+https://github.com/rust-lang/crates.io-index" 1666 - checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2" 1667 - dependencies = [ 1668 - "lzma-sys", 1669 - ]
+18 -33
pkgs/development/tools/rust/rustup-toolchain-install-master/default.nix
··· 2 2 lib, 3 3 rustPlatform, 4 4 fetchFromGitHub, 5 - runCommand, 6 5 stdenv, 7 6 patchelf, 8 7 zlib, 9 8 pkg-config, 10 9 openssl, 11 10 xz, 11 + replaceVars, 12 12 }: 13 13 14 - rustPlatform.buildRustPackage rec { 14 + rustPlatform.buildRustPackage (finalAttrs: { 15 15 pname = "rustup-toolchain-install-master"; 16 - version = "1.7.3"; 16 + version = "1.9.0"; 17 17 18 18 src = fetchFromGitHub { 19 19 owner = "kennytm"; 20 - repo = pname; 21 - rev = "v${version}"; 22 - hash = "sha256-J25ER/g8Kylw/oTIEl4Gl8i1xmhR+4JM5M5EHpl1ras="; 20 + repo = "rustup-toolchain-install-master"; 21 + tag = "v${finalAttrs.version}"; 22 + hash = "sha256-0ayc4rzlZ9sLKzRhVr1fpRD7bmwQL69rkQ2jXBAdUPI="; 23 23 }; 24 24 25 - cargoLock = { 26 - lockFile = ./Cargo.lock; 27 - }; 25 + cargoHash = "sha256-VxrtkZbi9BprQOQFxOIAYEoAtg0kqyL3C4ih/5RobZI="; 28 26 29 - patches = 30 - let 31 - patchelfPatch = 32 - runCommand "0001-dynamically-patchelf-binaries.patch" 33 - { 34 - CC = stdenv.cc; 35 - patchelf = patchelf; 36 - libPath = "$ORIGIN/../lib:${lib.makeLibraryPath [ zlib ]}"; 37 - } 38 - '' 39 - export dynamicLinker=$(cat $CC/nix-support/dynamic-linker) 40 - substitute ${./0001-dynamically-patchelf-binaries.patch} $out \ 41 - --subst-var patchelf \ 42 - --subst-var dynamicLinker \ 43 - --subst-var libPath 44 - ''; 45 - in 46 - lib.optionals stdenv.hostPlatform.isLinux [ patchelfPatch ]; 27 + patches = lib.optional stdenv.hostPlatform.isLinux ( 28 + replaceVars ./0001-dynamically-patchelf-binaries.patch { 29 + inherit patchelf; 30 + dynamicLinker = "${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2"; 31 + libPath = lib.makeLibraryPath [ 32 + zlib 33 + (placeholder "out" + "/lib") 34 + ]; 35 + } 36 + ); 47 37 48 38 nativeBuildInputs = [ pkg-config ]; 49 39 buildInputs = [ ··· 51 41 xz 52 42 ]; 53 43 54 - # update Cargo.lock to work with openssl 3 55 - postPatch = '' 56 - ln -sf ${./Cargo.lock} Cargo.lock 57 - ''; 58 - 59 44 meta = with lib; { 60 45 description = "Install a rustc master toolchain usable from rustup"; 61 46 mainProgram = "rustup-toolchain-install-master"; ··· 63 48 license = licenses.mit; 64 49 maintainers = [ ]; 65 50 }; 66 - } 51 + })
+2 -2
pkgs/games/path-of-building/default.nix
··· 17 17 let 18 18 data = stdenv.mkDerivation (finalAttrs: { 19 19 pname = "path-of-building-data"; 20 - version = "2.55.5"; 20 + version = "2.56.0"; 21 21 22 22 src = fetchFromGitHub { 23 23 owner = "PathOfBuildingCommunity"; 24 24 repo = "PathOfBuilding"; 25 25 rev = "v${finalAttrs.version}"; 26 - hash = "sha256-0FgLVQZBv366ACw8zXt72fARdQqFZf4l4lfvt85KpSs="; 26 + hash = "sha256-vzTMkrZgXtsCtEyxaDkea/MRj8tZDzDV3JAc440xrM8="; 27 27 }; 28 28 29 29 nativeBuildInputs = [ unzip ];
+15 -11
pkgs/misc/screensavers/slock/default.nix pkgs/by-name/sl/slock/package.nix
··· 1 1 { 2 2 lib, 3 3 stdenv, 4 - fetchurl, 4 + fetchzip, 5 5 writeText, 6 6 xorgproto, 7 7 libX11, 8 8 libXext, 9 9 libXrandr, 10 10 libxcrypt, 11 - # default header can be obtained from 12 - # https://git.suckless.org/slock/tree/config.def.h 13 - conf ? null, 11 + config, 12 + conf ? config.slock.conf or null, 13 + patches ? config.slock.patches or [ ], 14 + extraLibs ? config.slock.extraLibs or [ ], 14 15 # update script dependencies 15 16 gitUpdater, 16 17 }: ··· 19 20 pname = "slock"; 20 21 version = "1.5"; 21 22 22 - src = fetchurl { 23 + src = fetchzip { 23 24 url = "https://dl.suckless.org/tools/slock-${finalAttrs.version}.tar.gz"; 24 - hash = "sha256-ruHj+/aid/tiWjg4BzuXm2SD57rKTOgvVt4f8ZLbDk0="; 25 + hash = "sha256-nAAbyH4jixmwes9esrWRnHFw3mythKfqWu2+DRdlmx0="; 25 26 }; 26 27 27 28 buildInputs = [ ··· 30 31 libXext 31 32 libXrandr 32 33 libxcrypt 33 - ]; 34 + ] 35 + ++ extraLibs; 34 36 35 37 installFlags = [ "PREFIX=$(out)" ]; 36 38 ··· 40 42 cp ${writeText "config.def.h" conf} config.def.h 41 43 ''; 42 44 45 + inherit patches; 46 + 43 47 makeFlags = [ "CC:=$(CC)" ]; 44 48 45 49 passthru.updateScript = gitUpdater { 46 50 url = "git://git.suckless.org/slock"; 47 51 }; 48 52 49 - meta = with lib; { 53 + meta = { 50 54 homepage = "https://tools.suckless.org/slock"; 51 55 description = "Simple X display locker"; 52 56 mainProgram = "slock"; 53 57 longDescription = '' 54 58 Simple X display locker. This is the simplest X screen locker. 55 59 ''; 56 - license = licenses.mit; 57 - maintainers = with maintainers; [ 60 + license = lib.licenses.mit; 61 + maintainers = with lib.maintainers; [ 58 62 qusic 59 63 ]; 60 - platforms = platforms.linux; 64 + platforms = lib.platforms.linux; 61 65 }; 62 66 })
+2 -1
pkgs/os-specific/linux/rtl8821ce/default.nix
··· 47 47 maintainers = with lib.maintainers; [ defelo ]; 48 48 broken = 49 49 stdenv.hostPlatform.isAarch64 50 - || ((lib.versions.majorMinor kernel.version) == "5.4" && kernel.isHardened); 50 + || ((lib.versions.majorMinor kernel.version) == "5.4" && kernel.isHardened) 51 + || kernel.kernelAtLeast "6.16"; 51 52 }; 52 53 })
+1 -1
pkgs/servers/home-assistant/component-packages.nix
··· 2 2 # Do not edit! 3 3 4 4 { 5 - version = "2025.8.0"; 5 + version = "2025.8.1"; 6 6 components = { 7 7 "3_day_blinds" = 8 8 ps: with ps; [
+2 -2
pkgs/servers/home-assistant/custom-components/xiaomi_miot/package.nix
··· 11 11 buildHomeAssistantComponent rec { 12 12 owner = "al-one"; 13 13 domain = "xiaomi_miot"; 14 - version = "1.0.19"; 14 + version = "1.0.20"; 15 15 16 16 src = fetchFromGitHub { 17 17 owner = "al-one"; 18 18 repo = "hass-xiaomi-miot"; 19 19 rev = "v${version}"; 20 - hash = "sha256-3vaMjY2NsKbw76UxzfAxMdijAeDnagDuM8ICa5Xwgg4="; 20 + hash = "sha256-qn//le4zaS7URP4pWofwsA4FbB20DK7iRRUn8NWzwAI="; 21 21 }; 22 22 23 23 dependencies = [
+14 -3
pkgs/servers/home-assistant/default.nix
··· 281 281 doCheck = false; 282 282 }); 283 283 284 + python-roborock = super.python-roborock.overridePythonAttrs rec { 285 + version = "2.18.2"; 286 + 287 + src = fetchFromGitHub { 288 + owner = "Python-roborock"; 289 + repo = "python-roborock"; 290 + tag = "v${version}"; 291 + hash = "sha256-7xcw1jNCDapHjH1YVB5NW7jxMyb8Raf8HuTnWf2vdFo="; 292 + }; 293 + }; 294 + 284 295 python-telegram-bot = super.python-telegram-bot.overridePythonAttrs (oldAttrs: rec { 285 296 version = "21.5"; 286 297 ··· 342 353 extraBuildInputs = extraPackages python.pkgs; 343 354 344 355 # Don't forget to run update-component-packages.py after updating 345 - hassVersion = "2025.8.0"; 356 + hassVersion = "2025.8.1"; 346 357 347 358 in 348 359 python.pkgs.buildPythonApplication rec { ··· 363 374 owner = "home-assistant"; 364 375 repo = "core"; 365 376 tag = version; 366 - hash = "sha256-o8NZ06GorRmICeu8GQzomkCuE2aALnodT5UuiJ4EOEc="; 377 + hash = "sha256-o1j1ejSMa6T18nNxrmvNcOSWAMbi8b11wgHKO+w5gHA="; 367 378 }; 368 379 369 380 # Secondary source is pypi sdist for translations 370 381 sdist = fetchPypi { 371 382 inherit pname version; 372 - hash = "sha256-U06ttXEWe46h8O2wurYyaCN78EdSCvOs10VbnyOQdsM="; 383 + hash = "sha256-6LyI3t/+wKIVIcVwCny9AIYEaONiwc4GFmbwqjv/9r8="; 373 384 }; 374 385 375 386 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 = "20250806.0"; 11 + version = "20250811.0"; 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-krx62/hxF9MAFOQygZGAgcwbTuYKXTPcRpfmrHfKzEQ="; 19 + hash = "sha256-x//iMjNup4bf3PpvISYkHxOXKH20J2s+6oWQ22gS4BI="; 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.269"; 21 + version = "0.13.270"; 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-5GKUfFxAs3plr5C9F6BQ5J+DU8J77lgyAQrj6xmuSHo="; 30 + hash = "sha256-SDeQuzBZ1Fd97qotyWL6oB2CTB+qfplMN6yOaJguRmI="; 31 31 }; 32 32 33 33 build-system = [ setuptools ];
+1 -1
pkgs/servers/home-assistant/update-component-packages.py
··· 1 1 #! /usr/bin/env nix-shell 2 - #! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ packaging rich ])" -p pyright ruff isort 2 + #! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ packaging rich ])" -p pyright ruff isort nixfmt 3 3 # 4 4 # This script downloads Home Assistant's source tarball. 5 5 # Inside the homeassistant/components directory, each integration has an associated manifest.json,
+9 -9
pkgs/servers/web-apps/plausible/default.nix pkgs/by-name/pl/plausible/package.nix
··· 17 17 18 18 let 19 19 pname = "plausible"; 20 - version = "2.1.5"; 20 + version = "3.0.1"; 21 21 mixEnv = "ce"; 22 22 23 23 src = fetchFromGitHub { 24 24 owner = "plausible"; 25 25 repo = "analytics"; 26 26 rev = "v${version}"; 27 - hash = "sha256-4gwK/AxzhsU0vgvKgIXrOyQLCgZMeZyKjj7PWbUmJ+8="; 27 + hash = "sha256-DQIRsqkH2zgIkb3yezuJEKJ99PS031GJ+bDAeHMLNUY="; 28 28 postFetch = '' 29 29 ${lib.getExe npm-lockfile-fix} $out/assets/package-lock.json 30 30 sed -ie ' ··· 46 46 pname = "${pname}-assets"; 47 47 inherit version; 48 48 src = "${src}/assets"; 49 - npmDepsHash = "sha256-Rf1+G9F/CMK09KEh022vHe02FADJtARKX4QEVbmvSqk="; 49 + npmDepsHash = "sha256-hPbKEC8DE/gb483COG/ZbTuEP8Y44Fs7ppHMpXphCjg="; 50 50 dontNpmBuild = true; 51 51 installPhase = '' 52 52 runHook preInstall ··· 59 59 pname = "${pname}-tracker"; 60 60 inherit version; 61 61 src = "${src}/tracker"; 62 - npmDepsHash = "sha256-ng0YpBZc0vcg5Bsr1LmgXtzNCtNV6hJIgLt3m3yRdh4="; 62 + npmDepsHash = "sha256-kfqJVUw3xnMT0sOkc5O42CwBxPQXiYnOQ5WpdZwzxfE"; 63 63 dontNpmBuild = true; 64 64 installPhase = '' 65 65 runHook preInstall ··· 75 75 src 76 76 mixEnv 77 77 ; 78 - hash = "sha256-edQ8byeV0WUaYDYMnmrstC6L2jztidR/JikGZLpX3WE="; 78 + hash = "sha256-caCbuMEDsLcxm8xehWEJiaTfgl435crBfnQFQpzGsLY"; 79 79 }; 80 80 81 81 mjmlNif = rustPlatform.buildRustPackage { ··· 174 174 mix do deps.loadpaths --no-deps-check, phx.digest priv/static 175 175 ''; 176 176 177 - meta = with lib; { 178 - license = licenses.agpl3Plus; 177 + meta = { 178 + license = lib.licenses.agpl3Plus; 179 179 homepage = "https://plausible.io/"; 180 180 changelog = "https://github.com/plausible/analytics/blob/${src.rev}/CHANGELOG.md"; 181 181 description = "Simple, open-source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics"; 182 182 mainProgram = "plausible"; 183 - teams = [ teams.cyberus ]; 184 - platforms = platforms.unix; 183 + teams = with lib.teams; [ cyberus ]; 184 + platforms = lib.platforms.unix; 185 185 }; 186 186 }
+3 -15
pkgs/tools/misc/calamares/0001-Modifies-the-users-module-to-only-set-passwords-of-u.patch pkgs/by-name/ca/calamares/dont-create-users.patch
··· 1 - From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 2 - From: Victor Fuentes <vmfuentes64@gmail.com> 3 - Date: Thu, 1 Aug 2024 15:53:16 -0400 4 - Subject: [PATCH] Modifies the users module to only set passwords of user and 5 - root 6 - 7 - as the users will have already been created in the configuration.nix 8 - file 9 - --- 10 - src/modules/users/Config.cpp | 15 --------------- 11 - 1 file changed, 15 deletions(-) 12 - 13 1 diff --git a/src/modules/users/Config.cpp b/src/modules/users/Config.cpp 14 - index cd56bc3e2..9b09b36cd 100644 2 + index be754774b..4b0513df0 100644 15 3 --- a/src/modules/users/Config.cpp 16 4 +++ b/src/modules/users/Config.cpp 17 - @@ -1028,12 +1028,6 @@ Config::createJobs() const 5 + @@ -1069,12 +1069,6 @@ Config::createJobs() const 18 6 19 7 Calamares::Job* j; 20 8 ··· 27 15 if ( getActiveDirectoryUsed() ) 28 16 { 29 17 j = new ActiveDirectoryJob( m_activeDirectoryAdminUsername, 30 - @@ -1043,20 +1037,11 @@ Config::createJobs() const 18 + @@ -1084,20 +1078,11 @@ Config::createJobs() const 31 19 jobs.append( Calamares::job_ptr( j ) ); 32 20 } 33 21
-60
pkgs/tools/misc/calamares/0002-Makes-calamares-search-run-current-system-sw-share-c.patch
··· 1 - From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 2 - From: Victor Fuentes <vmfuentes64@gmail.com> 3 - Date: Thu, 1 Aug 2024 15:57:55 -0400 4 - Subject: [PATCH] Makes calamares search 5 - /run/current-system/sw/share/calamares/ for extra configuration files as by 6 - default it only searches /usr/share/calamares/ and 7 - /nix/store/<hash>-calamares-<version>/share/calamares/ but 8 - calamares-nixos-extensions is not in either of these locations 9 - 10 - --- 11 - src/calamares/main.cpp | 1 + 12 - src/libcalamares/utils/Dirs.cpp | 8 ++++++++ 13 - src/libcalamares/utils/Dirs.h | 3 +++ 14 - 3 files changed, 12 insertions(+) 15 - 16 - diff --git a/src/calamares/main.cpp b/src/calamares/main.cpp 17 - index e0491e5f9..faf272016 100644 18 - --- a/src/calamares/main.cpp 19 - +++ b/src/calamares/main.cpp 20 - @@ -132,6 +132,7 @@ main( int argc, char* argv[] ) 21 - #endif 22 - 23 - std::unique_ptr< KDSingleApplication > possiblyUnique; 24 - + Calamares::setNixosDirs(); 25 - const bool is_debug = handle_args( a ); 26 - if ( !is_debug ) 27 - { 28 - diff --git a/src/libcalamares/utils/Dirs.cpp b/src/libcalamares/utils/Dirs.cpp 29 - index c42768a08..dfce7eb5d 100644 30 - --- a/src/libcalamares/utils/Dirs.cpp 31 - +++ b/src/libcalamares/utils/Dirs.cpp 32 - @@ -114,6 +114,14 @@ setXdgDirs() 33 - s_haveExtraDirs = !( s_extraConfigDirs.isEmpty() && s_extraDataDirs.isEmpty() ); 34 - } 35 - 36 - +void 37 - +setNixosDirs() 38 - +{ 39 - + s_extraConfigDirs << "/run/current-system/sw/share/calamares/"; 40 - + s_extraDataDirs << "/run/current-system/sw/share/calamares/"; 41 - + s_haveExtraDirs = !( s_extraConfigDirs.isEmpty() && s_extraDataDirs.isEmpty() ); 42 - +} 43 - + 44 - QStringList 45 - extraConfigDirs() 46 - { 47 - diff --git a/src/libcalamares/utils/Dirs.h b/src/libcalamares/utils/Dirs.h 48 - index d0edd7a4f..26bd16b4e 100644 49 - --- a/src/libcalamares/utils/Dirs.h 50 - +++ b/src/libcalamares/utils/Dirs.h 51 - @@ -50,6 +50,9 @@ DLLEXPORT bool isAppDataDirOverridden(); 52 - /** @brief Setup extra config and data dirs from the XDG variables. 53 - */ 54 - DLLEXPORT void setXdgDirs(); 55 - +/** @brief Setup extra config and data dirs fir NixOS. 56 - + */ 57 - +DLLEXPORT void setNixosDirs(); 58 - /** @brief Are any extra directories configured? */ 59 - DLLEXPORT bool haveExtraDirs(); 60 - /** @brief XDG_CONFIG_DIRS, each guaranteed to end with / */
-119
pkgs/tools/misc/calamares/0003-Uses-pkexec-within-modules-in-order-to-run-calamares.patch
··· 1 - From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 2 - From: Victor Fuentes <vmfuentes64@gmail.com> 3 - Date: Thu, 1 Aug 2024 15:59:54 -0400 4 - Subject: [PATCH] Uses pkexec within modules in order to run calamares without 5 - root permissions as a whole. 6 - 7 - Also fixes storage check in the welcome module 8 - --- 9 - src/libcalamares/utils/Runner.cpp | 8 +++--- 10 - src/modules/mount/main.py | 8 +++--- 11 - .../welcome/checker/GeneralRequirements.cpp | 27 ++++++++++++++++++- 12 - .../welcome/checker/GeneralRequirements.h | 1 + 13 - 4 files changed, 35 insertions(+), 9 deletions(-) 14 - 15 - diff --git a/src/libcalamares/utils/Runner.cpp b/src/libcalamares/utils/Runner.cpp 16 - index f7872a7d0..a246ca110 100644 17 - --- a/src/libcalamares/utils/Runner.cpp 18 - +++ b/src/libcalamares/utils/Runner.cpp 19 - @@ -145,13 +145,13 @@ Calamares::Utils::Runner::run() 20 - } 21 - if ( m_location == RunLocation::RunInTarget ) 22 - { 23 - - process.setProgram( "chroot" ); 24 - - process.setArguments( QStringList { workingDirectory.absolutePath() } << m_command ); 25 - + process.setProgram( "pkexec" ); 26 - + process.setArguments( QStringList { "chroot" } + QStringList { workingDirectory.absolutePath() } << m_command ); 27 - } 28 - else 29 - { 30 - - process.setProgram( "env" ); 31 - - process.setArguments( m_command ); 32 - + process.setProgram( "pkexec" ); 33 - + process.setArguments( QStringList { "env" } + m_command ); 34 - } 35 - 36 - if ( m_output ) 37 - diff --git a/src/modules/mount/main.py b/src/modules/mount/main.py 38 - index 4a16f8872..6d32916a5 100644 39 - --- a/src/modules/mount/main.py 40 - +++ b/src/modules/mount/main.py 41 - @@ -244,7 +244,7 @@ def mount_partition(root_mount_point, partition, partitions, mount_options, moun 42 - # Ensure that the created directory has the correct SELinux context on 43 - # SELinux-enabled systems. 44 - 45 - - os.makedirs(mount_point, exist_ok=True) 46 - + subprocess.check_call(["pkexec", "mkdir", "-p", mount_point]) 47 - 48 - try: 49 - subprocess.call(['chcon', '--reference=' + raw_mount_point, mount_point]) 50 - @@ -288,13 +288,13 @@ def mount_partition(root_mount_point, partition, partitions, mount_options, moun 51 - for s in btrfs_subvolumes: 52 - if not s["subvolume"]: 53 - continue 54 - - os.makedirs(root_mount_point + os.path.dirname(s["subvolume"]), exist_ok=True) 55 - - subprocess.check_call(["btrfs", "subvolume", "create", 56 - + subprocess.check_call(["pkexec", "mkdir", "-p", root_mount_point + os.path.dirname(s["subvolume"])]) 57 - + subprocess.check_call(["pkexec", "btrfs", "subvolume", "create", 58 - root_mount_point + s["subvolume"]]) 59 - if s["mountPoint"] == "/": 60 - # insert the root subvolume into global storage 61 - libcalamares.globalstorage.insert("btrfsRootSubvolume", s["subvolume"]) 62 - - subprocess.check_call(["umount", "-v", root_mount_point]) 63 - + subprocess.check_call(["pkexec", "umount", "-v", root_mount_point]) 64 - 65 - device = partition["device"] 66 - 67 - diff --git a/src/modules/welcome/checker/GeneralRequirements.cpp b/src/modules/welcome/checker/GeneralRequirements.cpp 68 - index a58f3df83..b66576b09 100644 69 - --- a/src/modules/welcome/checker/GeneralRequirements.cpp 70 - +++ b/src/modules/welcome/checker/GeneralRequirements.cpp 71 - @@ -431,10 +431,35 @@ GeneralRequirements::checkEnoughStorage( qint64 requiredSpace ) 72 - cWarning() << "GeneralRequirements is configured without libparted."; 73 - return false; 74 - #else 75 - - return check_big_enough( requiredSpace ); 76 - + return big_enough( requiredSpace ); 77 - #endif 78 - } 79 - 80 - +bool 81 - +GeneralRequirements::big_enough( qint64 requiredSpace ) 82 - +{ 83 - + FILE *fpipe; 84 - + char command[128]; 85 - + snprintf(command, sizeof(command), "lsblk --bytes -no SIZE,TYPE | grep disk | awk '$1 > %llu {print $1}'", requiredSpace); 86 - + char c = 0; 87 - + 88 - + if (0 == (fpipe = (FILE*)popen(command, "r"))) 89 - + { 90 - + cWarning() << "Failed to check storage size."; 91 - + return false; 92 - + } 93 - + 94 - + while (fread(&c, sizeof c, 1, fpipe)) 95 - + { 96 - + pclose(fpipe); 97 - + return true; 98 - + } 99 - + 100 - + pclose(fpipe); 101 - + 102 - + return false; 103 - +} 104 - + 105 - bool 106 - GeneralRequirements::checkEnoughRam( qint64 requiredRam ) 107 - { 108 - diff --git a/src/modules/welcome/checker/GeneralRequirements.h b/src/modules/welcome/checker/GeneralRequirements.h 109 - index b6646da11..ea27324fa 100644 110 - --- a/src/modules/welcome/checker/GeneralRequirements.h 111 - +++ b/src/modules/welcome/checker/GeneralRequirements.h 112 - @@ -36,6 +36,7 @@ private: 113 - bool checkHasPower(); 114 - bool checkHasInternet(); 115 - bool checkIsRoot(); 116 - + bool big_enough( qint64 requiredSpace ); 117 - 118 - qreal m_requiredStorageGiB; 119 - qreal m_requiredRamGiB;
-122
pkgs/tools/misc/calamares/0004-Adds-unfree-qml-to-packagechooserq.patch
··· 1 - From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 2 - From: Victor Fuentes <vmfuentes64@gmail.com> 3 - Date: Thu, 1 Aug 2024 16:00:43 -0400 4 - Subject: [PATCH] Adds unfree qml to packagechooserq 5 - 6 - --- 7 - .../packagechooserq/packagechooserq.qrc | 1 + 8 - .../packagechooserq@unfree.qml | 75 +++++++++++++++++++ 9 - src/modules/packagechooserq/unfree.conf | 11 +++ 10 - 3 files changed, 87 insertions(+) 11 - create mode 100644 src/modules/packagechooserq/packagechooserq@unfree.qml 12 - create mode 100644 src/modules/packagechooserq/unfree.conf 13 - 14 - diff --git a/src/modules/packagechooserq/packagechooserq.qrc b/src/modules/packagechooserq/packagechooserq.qrc 15 - index 1b892dce1..ee80a934b 100644 16 - --- a/src/modules/packagechooserq/packagechooserq.qrc 17 - +++ b/src/modules/packagechooserq/packagechooserq.qrc 18 - @@ -4,5 +4,6 @@ 19 - <file>images/libreoffice.jpg</file> 20 - <file>images/no-selection.png</file> 21 - <file>images/plasma.png</file> 22 - + <file>packagechooserq@unfree.qml</file> 23 - </qresource> 24 - </RCC> 25 - diff --git a/src/modules/packagechooserq/packagechooserq@unfree.qml b/src/modules/packagechooserq/packagechooserq@unfree.qml 26 - new file mode 100644 27 - index 000000000..5e36d77d9 28 - --- /dev/null 29 - +++ b/src/modules/packagechooserq/packagechooserq@unfree.qml 30 - @@ -0,0 +1,75 @@ 31 - +/* === This file is part of Calamares - <https://calamares.io> === 32 - + * 33 - + * SPDX-FileCopyrightText: 2021 Anke Boersma <demm@kaosx.us> 34 - + * SPDX-License-Identifier: GPL-3.0-or-later 35 - + * 36 - + * Calamares is Free Software: see the License-Identifier above. 37 - + * 38 - + */ 39 - + 40 - +import io.calamares.core 1.0 41 - +import io.calamares.ui 1.0 42 - + 43 - +import QtQuick 2.15 44 - +import QtQuick.Controls 2.15 45 - +import QtQuick.Layouts 1.3 46 - + 47 - +Item { 48 - + 49 - + SystemPalette { 50 - + id: palette 51 - + colorGroup: SystemPalette.Active 52 - + } 53 - + 54 - + width: parent.width 55 - + height: parent.height 56 - + 57 - + Rectangle { 58 - + anchors.fill: parent 59 - + color: palette.window 60 - + 61 - + ButtonGroup { 62 - + id: switchGroup 63 - + } 64 - + 65 - + Column { 66 - + id: column 67 - + anchors.centerIn: parent 68 - + spacing: 5 69 - + 70 - + Rectangle { 71 - + width: 700 72 - + height: 250 73 - + color: palette.base 74 - + radius: 10 75 - + border.width: 0 76 - + Text { 77 - + color: palette.text 78 - + width: 600 79 - + height: 200 80 - + anchors.centerIn: parent 81 - + text: qsTr("NixOS is fully open source, but it also provides optional software packages that do not respect users' freedom to run, copy, distribute, study, change and improve the software, and are commonly not open source. By default such \"unfree\" packages are not allowed, but you can enable it here. If you check this box, you agree that unfree software may be installed which might have additional End User License Agreements (EULAs) that you need to agree to. If not enabled, some hardware (notably Nvidia GPUs and some WiFi chips) might not work or not work optimally.<br/>") 82 - + font.pointSize: 12 83 - + wrapMode: Text.WordWrap 84 - + } 85 - + 86 - + CheckBox { 87 - + id: element2 88 - + anchors.horizontalCenter: parent.horizontalCenter 89 - + y: 190 90 - + text: qsTr("Allow unfree software") 91 - + checked: false 92 - + 93 - + onCheckedChanged: { 94 - + if ( checked ) { 95 - + config.packageChoice = "unfree" 96 - + } else { 97 - + config.packageChoice = "free" 98 - + } 99 - + } 100 - + } 101 - + } 102 - + } 103 - + } 104 - + 105 - +} 106 - diff --git a/src/modules/packagechooserq/unfree.conf b/src/modules/packagechooserq/unfree.conf 107 - new file mode 100644 108 - index 000000000..da79a8eac 109 - --- /dev/null 110 - +++ b/src/modules/packagechooserq/unfree.conf 111 - @@ -0,0 +1,11 @@ 112 - +# SPDX-FileCopyrightText: no 113 - +# SPDX-License-Identifier: CC0-1.0 114 - +# 115 - +--- 116 - +qmlLabel: 117 - + label: "Unfree Software" 118 - +method: legacy 119 - +mode: required 120 - +labels: 121 - + step: "Unfree Software" 122 - +packageChoice: free
-100
pkgs/tools/misc/calamares/0005-Modifies-finished-module-to-add-some-NixOS-resources.patch
··· 1 - From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 2 - From: Victor Fuentes <vmfuentes64@gmail.com> 3 - Date: Thu, 1 Aug 2024 16:01:53 -0400 4 - Subject: [PATCH] Modifies finished module to add some NixOS resources. 5 - 6 - Modifies packagechooser module to change the UI. 7 - --- 8 - src/modules/finished/FinishedPage.cpp | 12 +++++--- 9 - .../packagechooser/PackageChooserPage.cpp | 1 + 10 - src/modules/packagechooser/page_package.ui | 28 +++++++++---------- 11 - 3 files changed, 23 insertions(+), 18 deletions(-) 12 - 13 - diff --git a/src/modules/finished/FinishedPage.cpp b/src/modules/finished/FinishedPage.cpp 14 - index 51be52678..307607232 100644 15 - --- a/src/modules/finished/FinishedPage.cpp 16 - +++ b/src/modules/finished/FinishedPage.cpp 17 - @@ -74,8 +74,10 @@ FinishedPage::retranslate() 18 - { 19 - ui->mainText->setText( tr( "<h1>All done.</h1><br/>" 20 - "%1 has been set up on your computer.<br/>" 21 - - "You may now start using your new system.", 22 - - "@info" ) 23 - + "You may now start using your new system.<br/>" 24 - + "You can change every setting later except the bootloader.<br/>" 25 - + "Check the <a href=\"https://nixos.org/manual/nixos/stable/\">manual</a> for instructions on how to install software, upgrade the system or enable services.<br/>" 26 - + "You can find ways to get in touch with the <a href=\"https://nixos.org/community/\">community on the website!</a>", "@info" ) 27 - .arg( branding->versionedName() ) ); 28 - ui->restartCheckBox->setToolTip( tr( "<html><head/><body>" 29 - "<p>When this box is checked, your system will " 30 - @@ -89,8 +91,10 @@ FinishedPage::retranslate() 31 - ui->mainText->setText( tr( "<h1>All done.</h1><br/>" 32 - "%1 has been installed on your computer.<br/>" 33 - "You may now restart into your new system, or continue " 34 - - "using the %2 Live environment.", 35 - - "@info" ) 36 - + "using the %2 Live environment.<br/>" 37 - + "You can change every setting later except the bootloader.<br/>" 38 - + "Check the <a href=\"https://nixos.org/manual/nixos/stable/\">manual</a> for instructions on how to install software, upgrade the system or enable services.<br/>" 39 - + "You can find ways to get in touch with the <a href=\"https://nixos.org/community/\">community on the website!</a>", "@info" ) 40 - .arg( branding->versionedName(), branding->productName() ) ); 41 - ui->restartCheckBox->setToolTip( tr( "<html><head/><body>" 42 - "<p>When this box is checked, your system will " 43 - diff --git a/src/modules/packagechooser/PackageChooserPage.cpp b/src/modules/packagechooser/PackageChooserPage.cpp 44 - index 44a570d2f..4dc931bf3 100644 45 - --- a/src/modules/packagechooser/PackageChooserPage.cpp 46 - +++ b/src/modules/packagechooser/PackageChooserPage.cpp 47 - @@ -52,6 +52,7 @@ PackageChooserPage::currentChanged( const QModelIndex& index ) 48 - if ( !index.isValid() || !ui->products->selectionModel()->hasSelection() ) 49 - { 50 - ui->productName->setText( m_introduction.name.get() ); 51 - + ui->productName->setStyleSheet("font-weight: bold"); 52 - ui->productScreenshot->setPixmap( m_introduction.screenshot ); 53 - ui->productDescription->setText( m_introduction.description.get() ); 54 - } 55 - diff --git a/src/modules/packagechooser/page_package.ui b/src/modules/packagechooser/page_package.ui 56 - index 2ab5b7f13..bed462069 100644 57 - --- a/src/modules/packagechooser/page_package.ui 58 - +++ b/src/modules/packagechooser/page_package.ui 59 - @@ -37,20 +37,7 @@ SPDX-License-Identifier: GPL-3.0-or-later 60 - </widget> 61 - </item> 62 - <item> 63 - - <layout class="QVBoxLayout" name="verticalLayout" stretch="1,30,1"> 64 - - <item> 65 - - <widget class="QLabel" name="productName"> 66 - - <property name="sizePolicy"> 67 - - <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding"> 68 - - <horstretch>0</horstretch> 69 - - <verstretch>0</verstretch> 70 - - </sizepolicy> 71 - - </property> 72 - - <property name="text"> 73 - - <string>Product Name</string> 74 - - </property> 75 - - </widget> 76 - - </item> 77 - + <layout class="QVBoxLayout" name="verticalLayout" stretch="30,1,1"> 78 - <item> 79 - <widget class="FixedAspectRatioLabel" name="productScreenshot"> 80 - <property name="sizePolicy"> 81 - @@ -67,6 +54,19 @@ SPDX-License-Identifier: GPL-3.0-or-later 82 - </property> 83 - </widget> 84 - </item> 85 - + <item> 86 - + <widget class="QLabel" name="productName"> 87 - + <property name="sizePolicy"> 88 - + <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding"> 89 - + <horstretch>0</horstretch> 90 - + <verstretch>0</verstretch> 91 - + </sizepolicy> 92 - + </property> 93 - + <property name="text"> 94 - + <string>Product Name</string> 95 - + </property> 96 - + </widget> 97 - + </item> 98 - <item> 99 - <widget class="QLabel" name="productDescription"> 100 - <property name="sizePolicy">
pkgs/tools/misc/calamares/0006-Remove-options-for-unsupported-partition-types.patch pkgs/by-name/ca/calamares/dont-allow-manual-luks.patch
-35
pkgs/tools/misc/calamares/0007-Fix-setting-the-kayboard-layout-on-GNOME-wayland.patch
··· 1 - From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 2 - From: Victor Fuentes <vmfuentes64@gmail.com> 3 - Date: Thu, 31 Oct 2024 10:34:25 -0700 4 - Subject: [PATCH] Fix setting the kayboard layout on GNOME wayland. 5 - 6 - By default the module uses the setxkbmap, which will not change the 7 - keyboard 8 - --- 9 - src/modules/keyboard/Config.cpp | 6 ++++++ 10 - 1 file changed, 6 insertions(+) 11 - 12 - diff --git a/src/modules/keyboard/Config.cpp b/src/modules/keyboard/Config.cpp 13 - index 54ee7649c..60fe2d7d0 100644 14 - --- a/src/modules/keyboard/Config.cpp 15 - +++ b/src/modules/keyboard/Config.cpp 16 - @@ -306,6 +306,10 @@ Config::applyXkb() 17 - m_additionalLayoutInfo.groupSwitcher ) ); 18 - QProcess::execute( "setxkbmap", basicArguments ); 19 - 20 - + QString xkbmap = QString( "[('xkb','%1\%2'),('xkb','%3\%4')]").arg( 21 - + m_selectedLayout, ((!m_selectedVariant.isEmpty()) ? "+" + m_selectedVariant : ""), 22 - + m_additionalLayoutInfo.additionalLayout, ((!m_additionalLayoutInfo.additionalVariant.isEmpty()) ? "+" + m_additionalLayoutInfo.additionalVariant : "")); 23 - + QProcess::execute( "sh", { "-c", "if command -v gsettings; then gsettings set org.gnome.desktop.input-sources sources \"$0\"; fi", xkbmap }); 24 - cDebug() << "xkbmap selection changed to: " << m_selectedLayout << '-' << m_selectedVariant << "(added " 25 - << m_additionalLayoutInfo.additionalLayout << "-" << m_additionalLayoutInfo.additionalVariant 26 - << " since current layout is not ASCII-capable)"; 27 - @@ -314,6 +318,8 @@ Config::applyXkb() 28 - { 29 - basicArguments.append( xkbmap_layout_args( m_selectedLayout, m_selectedVariant ) ); 30 - QProcess::execute( "setxkbmap", basicArguments ); 31 - + QString xkbmap = QString( "[('xkb','%1\%2')]").arg( m_selectedLayout, ((!m_selectedVariant.isEmpty()) ? "+" + m_selectedVariant : "") ); 32 - + QProcess::execute( "sh", { "-c", "if command -v gsettings; then gsettings set org.gnome.desktop.input-sources sources \"$0\"; fi", xkbmap }); 33 - cDebug() << "xkbmap selection changed to: " << m_selectedLayout << '-' << m_selectedVariant; 34 - } 35 - m_applyTimer.stop();
-22
pkgs/tools/misc/calamares/0008-Change-default-location-where-calamares-searches-for.patch
··· 1 - From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 2 - From: Victor Fuentes <vmfuentes64@gmail.com> 3 - Date: Thu, 1 Aug 2024 16:03:53 -0400 4 - Subject: [PATCH] Change default location where calamares searches for locales 5 - 6 - --- 7 - src/modules/locale/Config.cpp | 2 +- 8 - 1 file changed, 1 insertion(+), 1 deletion(-) 9 - 10 - diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp 11 - index 8fa17a768..79b5419b6 100644 12 - --- a/src/modules/locale/Config.cpp 13 - +++ b/src/modules/locale/Config.cpp 14 - @@ -48,7 +48,7 @@ loadLocales( const QString& localeGenPath ) 15 - // supported locales. We first try that one, and if it doesn't exist, we fall back 16 - // to parsing the lines from locale.gen 17 - localeGenLines.clear(); 18 - - QFile supported( "/usr/share/i18n/SUPPORTED" ); 19 - + QFile supported( "/run/current-system/sw/share/i18n/SUPPORTED" ); 20 - QByteArray ba; 21 - 22 - if ( supported.exists() && supported.open( QIODevice::ReadOnly | QIODevice::Text ) )
-144
pkgs/tools/misc/calamares/default.nix
··· 1 - { 2 - lib, 3 - fetchurl, 4 - boost, 5 - cmake, 6 - extra-cmake-modules, 7 - kparts, 8 - kpmcore, 9 - kirigami2, 10 - kservice, 11 - libatasmart, 12 - libxcb, 13 - yaml-cpp, 14 - libpwquality, 15 - parted, 16 - polkit-qt, 17 - python3, 18 - qtbase, 19 - qtquickcontrols, 20 - qtsvg, 21 - qttools, 22 - qtwebengine, 23 - util-linux, 24 - tzdata, 25 - ckbcomp, 26 - xkeyboard_config, 27 - mkDerivation, 28 - nixos-extensions ? false, 29 - # passthru.tests 30 - calamares-nixos, 31 - }: 32 - 33 - mkDerivation rec { 34 - pname = "calamares"; 35 - version = "3.3.13"; 36 - 37 - # release including submodule 38 - src = fetchurl { 39 - url = "https://github.com/calamares/calamares/releases/download/v${version}/calamares-${version}.tar.gz"; 40 - sha256 = "sha256-5Jz32JTgK6BImM0HcMtXi04k39CAirdmC/lbskVmSNQ="; 41 - }; 42 - 43 - # On major changes, or when otherwise required, you *must* : 44 - # 1. reformat the patches, 45 - # 2. `git am path/to/00*.patch` them into a calamares worktree, 46 - # 3. rebase to the more recent calamares version, 47 - # 4. and export the patches again via 48 - # `git -c format.signoff=false format-patch v${version} --no-numbered --zero-commit --no-signature`. 49 - patches = lib.optionals nixos-extensions [ 50 - ./0001-Modifies-the-users-module-to-only-set-passwords-of-u.patch 51 - ./0002-Makes-calamares-search-run-current-system-sw-share-c.patch 52 - ./0003-Uses-pkexec-within-modules-in-order-to-run-calamares.patch 53 - ./0004-Adds-unfree-qml-to-packagechooserq.patch 54 - ./0005-Modifies-finished-module-to-add-some-NixOS-resources.patch 55 - ./0006-Remove-options-for-unsupported-partition-types.patch 56 - ./0007-Fix-setting-the-kayboard-layout-on-GNOME-wayland.patch 57 - ./0008-Change-default-location-where-calamares-searches-for.patch 58 - ]; 59 - 60 - nativeBuildInputs = [ 61 - cmake 62 - extra-cmake-modules 63 - ]; 64 - buildInputs = [ 65 - boost 66 - kparts.dev 67 - kpmcore.out 68 - kservice.dev 69 - kirigami2 70 - libatasmart 71 - libxcb 72 - yaml-cpp 73 - libpwquality 74 - parted 75 - polkit-qt 76 - python3 77 - qtbase 78 - qtquickcontrols 79 - qtsvg 80 - qttools 81 - qtwebengine.dev 82 - util-linux 83 - ]; 84 - 85 - cmakeFlags = [ 86 - "-DPYTHON_LIBRARY=${python3}/lib/lib${python3.libPrefix}.so" 87 - "-DPYTHON_INCLUDE_DIR=${python3}/include/${python3.libPrefix}" 88 - "-DCMAKE_VERBOSE_MAKEFILE=True" 89 - "-DWITH_PYTHONQT:BOOL=ON" 90 - ]; 91 - 92 - POLKITQT-1_POLICY_FILES_INSTALL_DIR = "$(out)/share/polkit-1/actions"; 93 - 94 - postPatch = '' 95 - # Run calamares without root. Other patches make it functional as a normal user 96 - sed -e "s,pkexec calamares,calamares -D6," \ 97 - -i calamares.desktop 98 - 99 - sed -e "s,X-AppStream-Ignore=true,&\nStartupWMClass=calamares," \ 100 - -i calamares.desktop 101 - 102 - # Fix desktop reference with wayland 103 - mv calamares.desktop io.calamares.calamares.desktop 104 - 105 - sed -e "s,calamares.desktop,io.calamares.calamares.desktop," \ 106 - -i CMakeLists.txt 107 - 108 - sed -e "s,/usr/bin/calamares,$out/bin/calamares," \ 109 - -i com.github.calamares.calamares.policy 110 - 111 - sed -e 's,/usr/share/zoneinfo,${tzdata}/share/zoneinfo,' \ 112 - -i src/modules/locale/SetTimezoneJob.cpp \ 113 - -i src/libcalamares/locale/TimeZone.cpp 114 - 115 - sed -e 's,/usr/share/X11/xkb/rules/base.lst,${xkeyboard_config}/share/X11/xkb/rules/base.lst,' \ 116 - -i src/modules/keyboard/keyboardwidget/keyboardglobal.cpp 117 - 118 - sed -e 's,"ckbcomp","${ckbcomp}/bin/ckbcomp",' \ 119 - -i src/modules/keyboard/keyboardwidget/keyboardpreview.cpp 120 - 121 - sed "s,\''${POLKITQT-1_POLICY_FILES_INSTALL_DIR},''${out}/share/polkit-1/actions," \ 122 - -i CMakeLists.txt 123 - ''; 124 - 125 - passthru.tests = { 126 - inherit calamares-nixos; 127 - }; 128 - 129 - meta = with lib; { 130 - description = "Distribution-independent installer framework"; 131 - homepage = "https://calamares.io/"; 132 - license = with licenses; [ 133 - gpl3Plus 134 - bsd2 135 - cc0 136 - ]; 137 - maintainers = with maintainers; [ 138 - manveru 139 - vlinkz 140 - ]; 141 - platforms = platforms.linux; 142 - mainProgram = "calamares"; 143 - }; 144 - }
+13 -45
pkgs/tools/package-management/nix/common-autoconf.nix
··· 22 22 assert (hash == null) -> (src != null); 23 23 let 24 24 atLeast24 = lib.versionAtLeast version "2.4"; 25 - atLeast224 = lib.versionAtLeast version "2.24pre"; 26 25 atLeast225 = lib.versionAtLeast version "2.25pre"; 27 26 in 28 27 { ··· 118 117 ] 119 118 ++ lib.optional stdenv.hostPlatform.isMusl "fortify"; 120 119 121 - nativeInstallCheckInputs = lib.optionals atLeast224 [ 120 + nativeInstallCheckInputs = [ 122 121 git 123 122 man 124 123 ]; ··· 131 130 flex 132 131 jq 133 132 ] 134 - ++ lib.optionals enableDocumentation ( 135 - if atLeast224 then 136 - [ 137 - (lib.getBin lowdown-unsandboxed) 138 - mdbook 139 - mdbook-linkcheck 140 - ] 141 - else 142 - [ 143 - libxslt 144 - libxml2 145 - docbook_xsl_ns 146 - docbook5 147 - ] 148 - ) 133 + ++ lib.optionals enableDocumentation [ 134 + (lib.getBin lowdown-unsandboxed) 135 + mdbook 136 + mdbook-linkcheck 137 + ] 149 138 ++ lib.optionals stdenv.hostPlatform.isLinux [ 150 139 util-linuxMinimal 151 140 ]; ··· 163 152 gtest 164 153 libarchive 165 154 lowdown 166 - ] 167 - ++ lib.optionals atLeast224 [ 168 155 libgit2 169 156 toml11 170 157 rapidcheck ··· 184 171 185 172 propagatedBuildInputs = [ 186 173 boehmgc 187 - ] 188 - ++ lib.optionals atLeast224 [ 189 174 nlohmann_json 190 175 ]; 191 176 ··· 204 189 chmod u+w $out/lib/*.so.* 205 190 patchelf --set-rpath $out/lib:${lib.getLib stdenv.cc.cc}/lib $out/lib/libboost_thread.so.* 206 191 ''} 207 - '' 208 - + 209 - # On all versions before c9f51e87057652db0013289a95deffba495b35e7, which 210 - # removes config.nix entirely and is not present in 2.3.x, we need to 211 - # patch around an issue where the Nix configure step pulls in the build 212 - # system's bash and other utilities when cross-compiling. 213 - lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform && !atLeast224) '' 214 - mkdir tmp/ 215 - substitute corepkgs/config.nix.in tmp/config.nix.in \ 216 - --subst-var-by bash ${bash}/bin/bash \ 217 - --subst-var-by coreutils ${coreutils}/bin \ 218 - --subst-var-by bzip2 ${bzip2}/bin/bzip2 \ 219 - --subst-var-by gzip ${gzip}/bin/gzip \ 220 - --subst-var-by xz ${xz}/bin/xz \ 221 - --subst-var-by tar ${gnutar}/bin/tar \ 222 - --subst-var-by tr ${coreutils}/bin/tr 223 - mv tmp/config.nix.in corepkgs/config.nix.in 224 - ''; 192 + ''; 225 193 226 194 configureFlags = [ 227 195 "--with-store-dir=${storeDir}" ··· 235 203 ++ lib.optionals stdenv.hostPlatform.isLinux [ 236 204 "--with-sandbox-shell=${busybox-sandbox-shell}/bin/busybox" 237 205 ] 238 - ++ lib.optionals (atLeast224 && stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isStatic) [ 206 + ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isStatic) [ 239 207 "--enable-embedded-sandbox-shell" 240 208 ] 241 209 ++ ··· 252 220 # RISC-V support in progress https://github.com/seccomp/libseccomp/pull/50 253 221 "--disable-seccomp-sandboxing" 254 222 ] 255 - ++ lib.optionals (atLeast224 && stdenv.cc.isGNU && !enableStatic) [ 223 + ++ lib.optionals (stdenv.cc.isGNU && !enableStatic) [ 256 224 "--enable-lto" 257 225 ]; 258 226 ··· 277 245 installFlags = [ "sysconfdir=$(out)/etc" ]; 278 246 279 247 doInstallCheck = true; 280 - installCheckTarget = if atLeast224 then "installcheck" else null; 248 + installCheckTarget = "installcheck"; 281 249 282 250 # socket path becomes too long otherwise 283 251 preInstallCheck = ··· 290 258 export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES 291 259 '' 292 260 # See https://github.com/NixOS/nix/issues/5687 293 - + lib.optionalString (atLeast224 && stdenv.hostPlatform.isDarwin) '' 261 + + lib.optionalString (stdenv.hostPlatform.isDarwin) '' 294 262 echo "exit 99" > tests/gc-non-blocking.sh 295 263 '' # TODO: investigate why this broken 296 - + lib.optionalString (atLeast224 && stdenv.hostPlatform.system == "aarch64-linux") '' 264 + + lib.optionalString (stdenv.hostPlatform.system == "aarch64-linux") '' 297 265 echo "exit 0" > tests/functional/flakes/show.sh 298 266 '' 299 267 + '' ··· 301 269 export MANPATH=$man/share/man:$MANPATH 302 270 ''; 303 271 304 - separateDebugInfo = stdenv.hostPlatform.isLinux && (atLeast224 -> !enableStatic); 272 + separateDebugInfo = stdenv.hostPlatform.isLinux && !enableStatic; 305 273 306 274 enableParallelBuilding = true; 307 275
+1 -43
pkgs/tools/package-management/nix/default.nix
··· 147 147 self: 148 148 ( 149 149 { 150 - nix_2_3 = 151 - (commonAutoconf { 152 - version = "2.3.18"; 153 - hash = "sha256-jBz2Ub65eFYG+aWgSI3AJYvLSghio77fWQiIW1svA9U="; 154 - patches = [ 155 - patch-monitorfdhup 156 - ]; 157 - self_attribute_name = "nix_2_3"; 158 - knownVulnerabilities = [ 159 - "CVE-2024-38531" 160 - "CVE-2024-47174" 161 - "CVE-2025-46415" 162 - "CVE-2025-46416" 163 - "CVE-2025-52991" 164 - "CVE-2025-52992" 165 - "CVE-2025-52993" 166 - ]; 167 - maintainers = with lib.maintainers; [ flokli ]; 168 - teams = [ ]; 169 - }).overrideAttrs 170 - { 171 - # https://github.com/NixOS/nix/issues/10222 172 - # spurious test/add.sh failures 173 - enableParallelChecking = false; 174 - }; 175 - 176 150 nix_2_24 = commonAutoconf { 177 151 version = "2.24.15"; 178 152 hash = "sha256-GHqFHLxvRID2IEPUwIfRMp8epYQMFcvG9ogLzfWRbPc="; ··· 229 203 230 204 latest = self.nix_2_30; 231 205 232 - # The minimum Nix version supported by Nixpkgs 233 - # Note that some functionality *might* have been backported into this Nix version, 234 - # making this package an inaccurate representation of what features are available 235 - # in the actual lowest minver.nix *patch* version. 236 - minimum = 237 - let 238 - minver = import ../../../../lib/minver.nix; 239 - major = lib.versions.major minver; 240 - minor = lib.versions.minor minver; 241 - attribute = "nix_${major}_${minor}"; 242 - nix = self.${attribute}; 243 - in 244 - if !self ? ${attribute} then 245 - throw "The minimum supported Nix version is ${minver} (declared in lib/minver.nix), but pkgs.nixVersions.${attribute} does not exist." 246 - else 247 - nix; 248 - 249 206 # Read ./README.md before bumping a major release 250 207 stable = addFallbackPathsCheck self.nix_2_28; 251 208 } ··· 265 222 nix_2_27 = throw "nix_2_27 has been removed. use nix_2_28."; 266 223 nix_2_25 = throw "nix_2_25 has been removed. use nix_2_28."; 267 224 225 + minimum = throw "nixVersions.minimum has been removed. Use a specific version instead."; 268 226 unstable = throw "nixVersions.unstable has been removed. use nixVersions.latest or the nix flake."; 269 227 } 270 228 )
-6
pkgs/tools/package-management/nix/update-all.sh
··· 11 11 12 12 for name in $nix_versions; do 13 13 minor_version=${name#nix_*_} 14 - if [[ "$name" = "nix_2_3" ]]; then # not maintained by the nix team 15 - continue 16 - fi 17 14 18 15 nix-update --override-filename "$SCRIPT_DIR/default.nix" --version-regex "(2\\.${minor_version}\..+)" --build --commit "nixVersions.$name" 19 16 done ··· 25 22 26 23 for name in $nix_versions; do 27 24 minor_version=${name#nix_*_} 28 - if [[ "$name" = "nix_2_3" ]]; then # not maintained by the nix team 29 - continue 30 - fi 31 25 if [[ "$name" = "nix_${stable_version_trimmed//./_}" ]]; then 32 26 curl https://releases.nixos.org/nix/nix-$stable_version_full/fallback-paths.nix > "$NIXPKGS_DIR/nixos/modules/installer/tools/nix-fallback-paths.nix" 33 27 # nix-update will commit the file if it has changed
+1 -1
pkgs/top-level/aliases.nix
··· 1435 1435 nixFlakes = throw "'nixFlakes' has been renamed to/replaced by 'nixVersions.stable'"; # Converted to throw 2024-10-17 1436 1436 nixStable = nixVersions.stable; # Added 2022-01-24 1437 1437 nixUnstable = throw "nixUnstable has been removed. For bleeding edge (Nix master, roughly weekly updated) use nixVersions.git, otherwise use nixVersions.latest."; # Converted to throw 2024-04-22 1438 - nix_2_3 = nixVersions.nix_2_3; 1438 + nix_2_3 = throw "'nix_2_3' has been removed, because it was unmaintained and insecure."; # Converted to throw 2025-07-24 1439 1439 nixfmt-rfc-style = 1440 1440 if lib.oldestSupportedReleaseIsAtLeast 2511 then 1441 1441 lib.warnOnInstantiate
+3 -18
pkgs/top-level/all-packages.nix
··· 1760 1760 1761 1761 lukesmithxyz-bible-kjv = callPackage ../applications/misc/kjv/lukesmithxyz-kjv.nix { }; 1762 1762 1763 - plausible = callPackage ../servers/web-apps/plausible { 1764 - elixir = elixir_1_17; 1765 - beamPackages = beamPackages.extend (self: super: { elixir = elixir_1_17; }); 1763 + plausible = callPackage ../by-name/pl/plausible/package.nix { 1764 + elixir = elixir_1_18; 1765 + beamPackages = beamPackages.extend (self: super: { elixir = elixir_1_18; }); 1766 1766 }; 1767 1767 1768 1768 reattach-to-user-namespace = callPackage ../os-specific/darwin/reattach-to-user-namespace { }; ··· 1904 1904 ''; 1905 1905 }); 1906 1906 1907 - calamares = libsForQt5.callPackage ../tools/misc/calamares { 1908 - boost = boost.override { 1909 - enablePython = true; 1910 - python = python3; 1911 - }; 1912 - }; 1913 - calamares-nixos = lowPrio (calamares.override { nixos-extensions = true; }); 1914 1907 candle = libsForQt5.callPackage ../applications/misc/candle { }; 1915 1908 1916 1909 capstone = callPackage ../development/libraries/capstone { }; ··· 4254 4247 4255 4248 sks = callPackage ../servers/sks { 4256 4249 ocamlPackages = ocaml-ng.ocamlPackages_4_12; 4257 - }; 4258 - 4259 - slstatus = callPackage ../applications/misc/slstatus { 4260 - conf = config.slstatus.conf or null; 4261 4250 }; 4262 4251 4263 4252 smpq = callPackage ../by-name/sm/smpq/package.nix { ··· 15902 15891 mkSaneConfig = callPackage ../applications/graphics/sane/config.nix { }; 15903 15892 15904 15893 sane-frontends = callPackage ../applications/graphics/sane/frontends.nix { }; 15905 - 15906 - slock = callPackage ../misc/screensavers/slock { 15907 - conf = config.slock.conf or null; 15908 - }; 15909 15894 15910 15895 snscrape = with python3Packages; toPythonApplication snscrape; 15911 15896
+1 -7
pkgs/top-level/make-tarball.nix
··· 3 3 officialRelease, 4 4 pkgs ? import nixpkgs.outPath { }, 5 5 nix ? pkgs.nix, 6 - lib-tests ? import ../../lib/tests/release.nix { 7 - pkgs = import nixpkgs.outPath { 8 - config = { 9 - permittedInsecurePackages = [ "nix-2.3.18" ]; 10 - }; 11 - }; 12 - }, 6 + lib-tests ? import ../../lib/tests/release.nix { inherit pkgs; }, 13 7 }: 14 8 15 9 pkgs.releaseTools.sourceTarball {
+2
pkgs/top-level/python-aliases.nix
··· 456 456 nghttp2 = throw "in 1.52.0 removed deprecated python bindings."; # added 2023-06-08 457 457 niko-home-control = throw "niko-home-control was removed because Home Assistant switched to nhc"; # added 2025-01-09 458 458 ninja-python = ninja; # add 2022-08-03 459 + nixpkgs = throw "nixpkgs has been removed as its dependency pythonix was removed"; # added 2025-07-24 459 460 nose = throw "nose has been removed since it has been deprecated and unmaintained for almost a decade and does not work on Python 3.12; please switch to pytest or another test runner/framework"; # added 2024-07-28 460 461 nose3 = throw "nose3 has been removed since it is unmaintained and does not work with Python 3.12"; # added 2024-07-28 461 462 nosejs = throw "nosejs has been removed since it has not been maintained for 15 years and there are no dependent packages"; # added 2024-05-21 ··· 589 590 python-myq = throw "python-myq has been removed, as the service provider has decided to block its API requests"; # added 2023-12-07 590 591 python-picnic-api = throw "python-picnic-api was removed because Home Assistant switched to python-picnic-api2"; # added 2025-03-05 591 592 python-unshare = throw "python-unshare was removed as unmaintained since 2016"; # added 2025-05-25 593 + pythonix = throw "pythonix was removed as it was unmaintained since 2022"; # added 2025-07-24 592 594 pytrends = throw "pytrends has been removed, as it no longer works and is abandoned upstream"; # added 2025-02-02 593 595 pyqldb = throw "pyqldb has been removed, because the underlying service is reaching end of support"; # added 2025-07-30 594 596 pyqt4 = throw "pyqt4 has been removed, because it depended on the long EOL qt4"; # added 2022-06-09
+4 -7
pkgs/top-level/python-packages.nix
··· 8089 8089 (p: p.py) 8090 8090 ]; 8091 8091 8092 + libear = callPackage ../development/python-modules/libear { }; 8093 + 8092 8094 libevdev = callPackage ../development/python-modules/libevdev { }; 8093 8095 8094 8096 libfdt = toPythonModule ( ··· 8223 8225 inherit (self) python; 8224 8226 } 8225 8227 ); 8228 + 8229 + libscanbuild = callPackage ../development/python-modules/libscanbuild { }; 8226 8230 8227 8231 libselinux = lib.pipe pkgs.libselinux [ 8228 8232 toPythonModule ··· 10400 10404 nix-kernel = callPackage ../development/python-modules/nix-kernel { inherit (pkgs) nix; }; 10401 10405 10402 10406 nix-prefetch-github = callPackage ../development/python-modules/nix-prefetch-github { }; 10403 - 10404 - nixpkgs = callPackage ../development/python-modules/nixpkgs { }; 10405 10407 10406 10408 nixpkgs-pytools = callPackage ../development/python-modules/nixpkgs-pytools { }; 10407 10409 ··· 14954 14956 pythonegardia = callPackage ../development/python-modules/pythonegardia { }; 14955 14957 14956 14958 pythonfinder = callPackage ../development/python-modules/pythonfinder { }; 14957 - 14958 - pythonix = callPackage ../development/python-modules/pythonix { 14959 - nix = pkgs.nixVersions.nix_2_3; 14960 - meson = pkgs.meson.override { python3 = self.python; }; 14961 - }; 14962 14959 14963 14960 pythonkuma = callPackage ../development/python-modules/pythonkuma { }; 14964 14961
+1 -14
pkgs/top-level/release.nix
··· 113 113 114 114 manual = pkgs.nixpkgs-manual.override { inherit nixpkgs; }; 115 115 metrics = import ./metrics.nix { inherit pkgs nixpkgs; }; 116 - lib-tests = import ../../lib/tests/release.nix { 117 - pkgs = import nixpkgs ( 118 - recursiveUpdate 119 - (recursiveUpdate { 120 - inherit system; 121 - config.allowUnsupportedSystem = true; 122 - } nixpkgsArgs) 123 - { 124 - config.permittedInsecurePackages = nixpkgsArgs.config.permittedInsecurePackages or [ ] ++ [ 125 - "nix-2.3.18" 126 - ]; 127 - } 128 - ); 129 - }; 116 + lib-tests = import ../../lib/tests/release.nix { inherit pkgs; }; 130 117 pkgs-lib-tests = import ../pkgs-lib/tests { inherit pkgs; }; 131 118 132 119 darwin-tested =