Merge master into staging-next

This commit is contained in:
github-actions[bot] 2024-11-14 00:14:11 +00:00 committed by GitHub
commit b50e7536f8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
67 changed files with 1351 additions and 734 deletions

View File

@ -7,34 +7,44 @@ assignees: ''
--- ---
### Describe the bug ## Describe the bug
A clear and concise description of what the bug is.
<!-- A clear and concise description of what the bug is. -->
## Steps To Reproduce
### Steps To Reproduce
Steps to reproduce the behavior: Steps to reproduce the behavior:
1. ... 1. ...
2. ... 2. ...
3. ... 3. ...
### Expected behavior ## Expected behavior
A clear and concise description of what you expected to happen.
### Screenshots <!-- A clear and concise description of what you expected to happen. -->
If applicable, add screenshots to help explain your problem.
### Additional context ## Screenshots
Add any other context about the problem here.
### Notify maintainers <!-- If applicable, add screenshots to help explain your problem: -->
## Additional context
<!-- Add any other context about the problem here. -->
## Metadata
<!-- Please insert the output of running `nix-shell -p nix-info --run "nix-info -m"` below this line -->
## Notify maintainers
<!-- <!--
Please @ people who are in the `meta.maintainers` list of the offending package or module. Please @ people who are in the `meta.maintainers` list of the offending package or module.
If in doubt, check `git blame` for whoever last touched something. If in doubt, check `git blame` for whoever last touched something.
--> -->
### Metadata ---
<!-- Please insert the output of running `nix-shell -p nix-info --run "nix-info -m"` below this line --> Note for maintainers: Please tag this issue in your PR.
--- ---

View File

@ -7,31 +7,43 @@ assignees: ''
--- ---
### Steps To Reproduce ## Steps To Reproduce
Steps to reproduce the behavior: Steps to reproduce the behavior:
1. build *X* 1. build *X*
### Build log ## Build log
<!-- insert build log in code block in collapsable section -->
<details>
<summary>Build Log</summary>
``` ```
log here if short otherwise a link to a gist
``` ```
### Additional context </details>
Add any other context about the problem here. ## Additional context
### Notify maintainers <!-- Add any other context about the problem here. -->
## Metadata
<!-- Please insert the output of running `nix-shell -p nix-info --run "nix-info -m"` below this line -->
## Notify maintainers
<!-- <!--
Please @ people who are in the `meta.maintainers` list of the offending package or module. Please @ people who are in the `meta.maintainers` list of the offending package or module.
If in doubt, check `git blame` for whoever last touched something. If in doubt, check `git blame` for whoever last touched something.
--> -->
### Metadata ---
<!-- Please insert the output of running `nix-shell -p nix-info --run "nix-info -m"` below this line --> Note for maintainers: Please tag this issue in your PR.
--- ---

View File

@ -23,12 +23,9 @@ assignees: ''
- [ ] checked [open documentation issues] for possible duplicates - [ ] checked [open documentation issues] for possible duplicates
- [ ] checked [open documentation pull requests] for possible solutions - [ ] checked [open documentation pull requests] for possible solutions
[latest Nixpkgs manual]: https://nixos.org/manual/nixpkgs/unstable/ ---
[latest NixOS manual]: https://nixos.org/manual/nixos/unstable/
[nixpkgs-source]: https://github.com/NixOS/nixpkgs/tree/master/doc Note for maintainers: Please tag this issue in your PR.
[nixos-source]: https://github.com/NixOS/nixpkgs/tree/master/nixos/doc/manual
[open documentation issues]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+label%3A%229.needs%3A+documentation%22
[open documentation pull requests]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+is%3Apr+label%3A%228.has%3A+documentation%22%2C%226.topic%3A+documentation%22
--- ---
@ -36,3 +33,9 @@ Add a :+1: [reaction] to [issues you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/ [reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc [issues you find important]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
[latest Nixpkgs manual]: https://nixos.org/manual/nixpkgs/unstable/
[latest NixOS manual]: https://nixos.org/manual/nixos/unstable/
[nixpkgs-source]: https://github.com/NixOS/nixpkgs/tree/master/doc
[nixos-source]: https://github.com/NixOS/nixpkgs/tree/master/nixos/doc/manual
[open documentation issues]: https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+label%3A%229.needs%3A+documentation%22
[open documentation pull requests]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+is%3Apr+label%3A%228.has%3A+documentation%22%2C%226.topic%3A+documentation%22

View File

@ -7,11 +7,11 @@ assignees: ''
--- ---
### Description ## Description
<!-- Describe what the module should accomplish: --> <!-- Describe what the module should accomplish: -->
### Notify maintainers ## Notify maintainers
<!-- If applicable, tag the maintainers of the package that corresponds to the module. If the search.nixos.org result shows no maintainers, tag the person that last updated the package. --> <!-- If applicable, tag the maintainers of the package that corresponds to the module. If the search.nixos.org result shows no maintainers, tag the person that last updated the package. -->

View File

@ -7,23 +7,30 @@ assignees: ''
--- ---
## Package Information
<!-- Search for the package here: https://search.nixos.org/packages?channel=unstable -->
- Package name: - Package name:
- Latest released version: - Latest released version:
<!-- Search your package here: https://search.nixos.org/packages?channel=unstable -->
- Current version on the unstable channel: - Current version on the unstable channel:
- Current version on the stable/release channel: - Current version on the stable/release channel:
## Checklist
<!-- <!--
Type the name of your package and try to find an open pull request for the package Type the name of your package and try to find an open pull request for the package
If you find an open pull request, you can review it! If you find an open pull request, you can review it!
There's a high chance that you'll have the new version right away while helping the community! There's a high chance that you'll have the new version right away while helping the community!
--> -->
- [ ] Checked the [nixpkgs pull requests](https://github.com/NixOS/nixpkgs/pulls) - [ ] Checked the [nixpkgs pull requests](https://github.com/NixOS/nixpkgs/pulls)
**Notify maintainers** ## Notify maintainers
<!-- If the search.nixos.org result shows no maintainers, tag the person that last updated the package. --> <!-- If the search.nixos.org result shows no maintainers, tag the person that last updated the package. -->
----- ---
Note for maintainers: Please tag this issue in your PR. Note for maintainers: Please tag this issue in your PR.

View File

@ -7,11 +7,11 @@ assignees: ''
--- ---
**Project description** ## Project description
<!-- Describe the project a little: --> <!-- Describe the project a little: -->
**Metadata** ## Metadata
* homepage URL: * homepage URL:
* source URL: * source URL:
@ -20,6 +20,10 @@ assignees: ''
--- ---
Note for maintainers: Please tag this issue in your PR.
---
Add a :+1: [reaction] to [issues you find important]. Add a :+1: [reaction] to [issues you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/ [reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/

View File

@ -31,12 +31,12 @@ Fixing bit-by-bit reproducibility also has additional advantages, such as
avoiding hard-to-reproduce bugs, making content-addressed storage more effective avoiding hard-to-reproduce bugs, making content-addressed storage more effective
and reducing rebuilds in such systems. and reducing rebuilds in such systems.
### Steps To Reproduce ## Steps To Reproduce
In the following steps, replace `<package>` with the canonical name of the In the following steps, replace `<package>` with the canonical name of the
package. package.
#### 1. Build the package ### 1. Build the package
This step will build the package. Specific arguments are passed to the command This step will build the package. Specific arguments are passed to the command
to keep the build artifacts so we can compare them in case of differences. to keep the build artifacts so we can compare them in case of differences.
@ -53,7 +53,7 @@ Or using the new command line style:
nix build nixpkgs#<package> && nix build nixpkgs#<package> --rebuild --keep-failed nix build nixpkgs#<package> && nix build nixpkgs#<package> --rebuild --keep-failed
``` ```
#### 2. Compare the build artifacts ### 2. Compare the build artifacts
If the previous command completes successfully, no differences were found and If the previous command completes successfully, no differences were found and
there's nothing to do, builds are reproducible. there's nothing to do, builds are reproducible.
@ -67,7 +67,7 @@ metadata (*e.g. timestamp*) differences.
nix run nixpkgs#diffoscopeMinimal -- --exclude-directory-metadata recursive <Y> <Z> nix run nixpkgs#diffoscopeMinimal -- --exclude-directory-metadata recursive <Y> <Z>
``` ```
#### 3. Examine the build log ### 3. Examine the build log
To examine the build log, use: To examine the build log, use:
@ -81,10 +81,20 @@ Or with the new command line style:
nix log $(nix path-info --derivation nixpkgs#<package>) nix log $(nix path-info --derivation nixpkgs#<package>)
``` ```
### Additional context ## Additional context
(please share the relevant fragment of the diffoscope output here, and any (please share the relevant fragment of the diffoscope output here, and any additional analysis you may have done)
additional analysis you may have done)
## Notify maintainers
<!--
Please @ people who are in the `meta.maintainers` list of the offending package or module.
If in doubt, check `git blame` for whoever last touched something.
-->
---
Note for maintainers: Please tag this issue in your PR.
--- ---

3
.github/labeler.yml vendored
View File

@ -358,8 +358,9 @@
- changed-files: - changed-files:
- any-glob-to-any-file: - any-glob-to-any-file:
- doc/languages-frameworks/php.section.md - doc/languages-frameworks/php.section.md
- nixos/tests/php/**/*
- pkgs/build-support/php/**/* - pkgs/build-support/php/**/*
- pkgs/development/interpreters/php/* - pkgs/development/interpreters/php/**/*
- pkgs/development/php-packages/**/* - pkgs/development/php-packages/**/*
- pkgs/test/php/default.nix - pkgs/test/php/default.nix
- pkgs/top-level/php-packages.nix - pkgs/top-level/php-packages.nix

View File

@ -11483,6 +11483,13 @@
name = "Khushraj Rathod"; name = "Khushraj Rathod";
keys = [ { fingerprint = "1988 3FD8 EA2E B4EC 0A93 1E22 B77B 2A40 E770 2F19"; } ]; keys = [ { fingerprint = "1988 3FD8 EA2E B4EC 0A93 1E22 B77B 2A40 E770 2F19"; } ];
}; };
kiara = {
name = "kiara";
email = "cinereal@riseup.net";
github = "KiaraGrouwstra";
githubId = 3059397;
matrix = "@cinerealkiara:matrix.org";
};
KibaFox = { KibaFox = {
email = "kiba.fox@foxypossibilities.com"; email = "kiba.fox@foxypossibilities.com";
github = "KibaFox"; github = "KibaFox";
@ -14556,12 +14563,6 @@
githubId = 16974598; githubId = 16974598;
name = "Mike Playle"; name = "Mike Playle";
}; };
mkaito = {
email = "chris@mkaito.net";
github = "mkaito";
githubId = 20434;
name = "Christian Höppner";
};
mkazulak = { mkazulak = {
email = "kazulakm@gmail.com"; email = "kazulakm@gmail.com";
github = "mulderr"; github = "mulderr";

View File

@ -12,7 +12,7 @@ let
name = "oci-containers-${backend}"; name = "oci-containers-${backend}";
meta.maintainers = lib.teams.serokell.members meta.maintainers = lib.teams.serokell.members
++ (with lib.maintainers; [ benley mkaito ]); ++ (with lib.maintainers; [ benley ]);
nodes = { nodes = {
${backend} = { pkgs, ... }: { ${backend} = { pkgs, ... }: {

View File

@ -13,13 +13,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ft2-clone"; pname = "ft2-clone";
version = "1.86"; version = "1.88";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "8bitbubsy"; owner = "8bitbubsy";
repo = "ft2-clone"; repo = "ft2-clone";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-/sdMBRCZvuKTp8ygCrLmIy0DiWJC6lLWdsY+ZxRY+pY="; hash = "sha256-3ylzroIp3d5u6meP7guu+NlYGTqy9UUjIi9box7NbXI=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View File

@ -16,6 +16,8 @@
wasm-pack, wasm-pack,
}: }:
# TODO: package python bindings
let let
wasm-bindgen-92 = wasm-bindgen-cli.override { wasm-bindgen-92 = wasm-bindgen-cli.override {
@ -36,16 +38,16 @@ in
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "pagefind"; pname = "pagefind";
version = "1.1.1"; version = "1.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cloudcannon"; owner = "cloudcannon";
repo = "pagefind"; repo = "pagefind";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-4NfosDp5Wwz2lnqaFNcaIbWpjWiaQ4WCL6TcKEkfPck="; hash = "sha256-OKZYy+Mm9xOEBBD/tI2GwP2+Myt5aELosRP8Tbi5bqY=";
}; };
cargoHash = "sha256-hnT9w3j8/YuN00x0LBPr75BKGWSnIYUNFTWIgtghJP4"; cargoHash = "sha256-k50RyGuS66r+wWIij7yOOSlDxXYY1y+lTJgCkMREllc=";
env.npmDeps_web_js = fetchNpmDeps { env.npmDeps_web_js = fetchNpmDeps {
name = "npm-deps-web-js"; name = "npm-deps-web-js";

View File

@ -1,125 +0,0 @@
{ stdenv, lib, callPackage, fetchurl, fetchpatch, nixosTests, buildMozillaMach
, python311
}:
{
firefox = buildMozillaMach rec {
pname = "firefox";
version = "132.0.2";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "9ea95d9fb1a941ac5a5b50da67e224f3ccf8c401f26cb61bb74ad7f4e1e8706d469c4b6325714f2cb9cdf50c32710377d6bca18dd65b55db2c39ef2b27a57fae";
};
extraPatches = [
];
meta = {
changelog = "https://www.mozilla.org/en-US/firefox/${version}/releasenotes/";
description = "Web browser built from Firefox source tree";
homepage = "http://www.mozilla.com/en-US/firefox/";
maintainers = with lib.maintainers; [ lovesegfault hexa ];
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.darwin;
broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
mainProgram = "firefox";
};
tests = { inherit (nixosTests) firefox; };
updateScript = callPackage ./update.nix {
attrPath = "firefox-unwrapped";
};
};
firefox-beta = buildMozillaMach rec {
pname = "firefox-beta";
version = "133.0b1";
applicationName = "Mozilla Firefox Beta";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "c4a85a72b2891c5b6c6e200cd7ef13abe0f5ad090f8ef1d8243a489791f3542b2cd390c141118c4745c4ca677d1e9bf1e564e4a45e066d27ed53e6bd92844727";
};
meta = {
changelog = "https://www.mozilla.org/en-US/firefox/${lib.versions.majorMinor version}beta/releasenotes/";
description = "Web browser built from Firefox Beta Release source tree";
homepage = "http://www.mozilla.com/en-US/firefox/";
maintainers = with lib.maintainers; [ jopejoe1 ];
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.darwin;
broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
mainProgram = "firefox";
};
tests = { inherit (nixosTests) firefox-beta; };
updateScript = callPackage ./update.nix {
attrPath = "firefox-beta-unwrapped";
versionSuffix = "b[0-9]*";
};
};
firefox-devedition = buildMozillaMach rec {
pname = "firefox-devedition";
version = "133.0b1";
applicationName = "Mozilla Firefox Developer Edition";
requireSigning = false;
branding = "browser/branding/aurora";
src = fetchurl {
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "dced4aba71b07b68ee31c283945e7d62a7032f08f5cf71aa261fc7ba32f58277acbe9fdbdd28777d7f4b824e411815b069cab0ce791438088c9ad19c3d2de62e";
};
meta = {
changelog = "https://www.mozilla.org/en-US/firefox/${lib.versions.majorMinor version}beta/releasenotes/";
description = "Web browser built from Firefox Developer Edition source tree";
homepage = "http://www.mozilla.com/en-US/firefox/";
maintainers = with lib.maintainers; [ jopejoe1 ];
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.darwin;
broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
mainProgram = "firefox";
};
tests = { inherit (nixosTests) firefox-devedition; };
updateScript = callPackage ./update.nix {
attrPath = "firefox-devedition-unwrapped";
versionSuffix = "b[0-9]*";
baseUrl = "https://archive.mozilla.org/pub/devedition/releases/";
};
};
firefox-esr-128 = buildMozillaMach rec {
pname = "firefox";
version = "128.4.0esr";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "e720b1f993926d73f5a5727648f753176ac2fd093fb0b71393946bbc5919ce5fc7b88b82960bd1aa427b5663c7f659828dc6702485fc0c1e7a6961571c67faa3";
};
meta = {
changelog = "https://www.mozilla.org/en-US/firefox/${lib.removeSuffix "esr" version}/releasenotes/";
description = "Web browser built from Firefox source tree";
homepage = "http://www.mozilla.com/en-US/firefox/";
maintainers = with lib.maintainers; [ hexa ];
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.darwin;
broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
mainProgram = "firefox";
};
tests = { inherit (nixosTests) firefox-esr-128; };
updateScript = callPackage ./update.nix {
attrPath = "firefox-esr-128-unwrapped";
versionPrefix = "128";
versionSuffix = "esr";
};
};
}

View File

@ -0,0 +1,40 @@
{
stdenv,
lib,
callPackage,
fetchurl,
nixosTests,
buildMozillaMach,
}:
buildMozillaMach rec {
pname = "firefox-beta";
version = "133.0b1";
applicationName = "Mozilla Firefox Beta";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "c4a85a72b2891c5b6c6e200cd7ef13abe0f5ad090f8ef1d8243a489791f3542b2cd390c141118c4745c4ca677d1e9bf1e564e4a45e066d27ed53e6bd92844727";
};
meta = {
changelog = "https://www.mozilla.org/en-US/firefox/${lib.versions.majorMinor version}beta/releasenotes/";
description = "Web browser built from Firefox Beta Release source tree";
homepage = "http://www.mozilla.com/en-US/firefox/";
maintainers = with lib.maintainers; [ jopejoe1 ];
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.darwin;
broken = stdenv.buildPlatform.is32bit;
# since Firefox 60, build on 32-bit platforms fails with "out of memory".
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
mainProgram = "firefox";
};
tests = {
inherit (nixosTests) firefox-beta;
};
updateScript = callPackage ./update.nix {
attrPath = "firefox-beta-unwrapped";
versionSuffix = "b[0-9]*";
};
}

View File

@ -0,0 +1,43 @@
{
stdenv,
lib,
callPackage,
fetchurl,
nixosTests,
buildMozillaMach,
}:
buildMozillaMach rec {
pname = "firefox-devedition";
version = "133.0b1";
applicationName = "Mozilla Firefox Developer Edition";
requireSigning = false;
branding = "browser/branding/aurora";
src = fetchurl {
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "dced4aba71b07b68ee31c283945e7d62a7032f08f5cf71aa261fc7ba32f58277acbe9fdbdd28777d7f4b824e411815b069cab0ce791438088c9ad19c3d2de62e";
};
meta = {
changelog = "https://www.mozilla.org/en-US/firefox/${lib.versions.majorMinor version}beta/releasenotes/";
description = "Web browser built from Firefox Developer Edition source tree";
homepage = "http://www.mozilla.com/en-US/firefox/";
maintainers = with lib.maintainers; [ jopejoe1 ];
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.darwin;
broken = stdenv.buildPlatform.is32bit;
# since Firefox 60, build on 32-bit platforms fails with "out of memory".
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
mainProgram = "firefox";
};
tests = {
inherit (nixosTests) firefox-devedition;
};
updateScript = callPackage ./update.nix {
attrPath = "firefox-devedition-unwrapped";
versionSuffix = "b[0-9]*";
baseUrl = "https://archive.mozilla.org/pub/devedition/releases/";
};
}

View File

@ -0,0 +1,40 @@
{
stdenv,
lib,
callPackage,
fetchurl,
nixosTests,
buildMozillaMach,
}:
buildMozillaMach rec {
pname = "firefox";
version = "128.4.0esr";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "e720b1f993926d73f5a5727648f753176ac2fd093fb0b71393946bbc5919ce5fc7b88b82960bd1aa427b5663c7f659828dc6702485fc0c1e7a6961571c67faa3";
};
meta = {
changelog = "https://www.mozilla.org/en-US/firefox/${lib.removeSuffix "esr" version}/releasenotes/";
description = "Web browser built from Firefox source tree";
homepage = "http://www.mozilla.com/en-US/firefox/";
maintainers = with lib.maintainers; [ hexa ];
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.darwin;
broken = stdenv.buildPlatform.is32bit;
# since Firefox 60, build on 32-bit platforms fails with "out of memory".
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
mainProgram = "firefox";
};
tests = {
inherit (nixosTests) firefox-esr-128;
};
updateScript = callPackage ./update.nix {
attrPath = "firefox-esr-128-unwrapped";
versionPrefix = "128";
versionSuffix = "esr";
};
}

View File

@ -0,0 +1,41 @@
{
stdenv,
lib,
callPackage,
fetchurl,
nixosTests,
buildMozillaMach,
}:
buildMozillaMach rec {
pname = "firefox";
version = "132.0.2";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "9ea95d9fb1a941ac5a5b50da67e224f3ccf8c401f26cb61bb74ad7f4e1e8706d469c4b6325714f2cb9cdf50c32710377d6bca18dd65b55db2c39ef2b27a57fae";
};
meta = {
changelog = "https://www.mozilla.org/en-US/firefox/${version}/releasenotes/";
description = "Web browser built from Firefox source tree";
homepage = "http://www.mozilla.com/en-US/firefox/";
maintainers = with lib.maintainers; [
lovesegfault
hexa
];
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.darwin;
broken = stdenv.buildPlatform.is32bit;
# since Firefox 60, build on 32-bit platforms fails with "out of memory".
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
mainProgram = "firefox";
};
tests = {
inherit (nixosTests) firefox;
};
updateScript = callPackage ./update.nix {
attrPath = "firefox-unwrapped";
};
}

View File

@ -1246,13 +1246,13 @@
"vendorHash": "sha256-tb9raTGqEuvqfMO/5s4Oc7x/EAk4qBWWDiOgRMB3uAU=" "vendorHash": "sha256-tb9raTGqEuvqfMO/5s4Oc7x/EAk4qBWWDiOgRMB3uAU="
}, },
"temporalcloud": { "temporalcloud": {
"hash": "sha256-UaWz9VKyzYtEjOC0hbRrGSB0yP7H7AFP3uKnXcvASwQ=", "hash": "sha256-PXXjhxB0pU1dZkfFKH+GBma1uYwMpLHTUJk/GUivNhE=",
"homepage": "https://registry.terraform.io/providers/temporalio/temporalcloud", "homepage": "https://registry.terraform.io/providers/temporalio/temporalcloud",
"owner": "temporalio", "owner": "temporalio",
"repo": "terraform-provider-temporalcloud", "repo": "terraform-provider-temporalcloud",
"rev": "v0.0.13", "rev": "v0.0.14",
"spdx": "MPL-2.0", "spdx": "MPL-2.0",
"vendorHash": "sha256-UlR5J1Gk+ATwytBoxp6DBVGOo8MAQeGOWxD2Sgg4qJ4=" "vendorHash": "sha256-6dQFkmkjoVz1Z5AoD8bvAF0elsk7V1G8yT5ur1WegWE="
}, },
"tencentcloud": { "tencentcloud": {
"hash": "sha256-vj6yGrd9Fqd+XQwlXWS0BV0CZY1gcgE+YyEm/rm6o6o=", "hash": "sha256-vj6yGrd9Fqd+XQwlXWS0BV0CZY1gcgE+YyEm/rm6o6o=",

View File

@ -9,7 +9,7 @@ let
versions = versions =
if stdenv.hostPlatform.isLinux then if stdenv.hostPlatform.isLinux then
{ {
stable = "0.0.73"; stable = "0.0.74";
ptb = "0.0.114"; ptb = "0.0.114";
canary = "0.0.511"; canary = "0.0.511";
development = "0.0.42"; development = "0.0.42";
@ -26,7 +26,7 @@ let
x86_64-linux = { x86_64-linux = {
stable = fetchurl { stable = fetchurl {
url = "https://stable.dl2.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz"; url = "https://stable.dl2.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
hash = "sha256-LZ3IgtGr94NWbykYS5Xllkl4OOHLG66+ZqQ+OrpnVzs="; hash = "sha256-yf2gLvDgzF13cgpKFiiCHGYVR+p7jZOAR37L1F6MZvc=";
}; };
ptb = fetchurl { ptb = fetchurl {
url = "https://ptb.dl2.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz"; url = "https://ptb.dl2.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";

View File

@ -60,6 +60,7 @@
branch ? lib.versions.majorMinor version, branch ? lib.versions.majorMinor version,
version, version,
vendor ? "nixos", vendor ? "nixos",
upstreamVersion,
withFlask ? false, withFlask ? false,
withSeaBIOS ? true, withSeaBIOS ? true,
withOVMF ? true, withOVMF ? true,
@ -71,17 +72,21 @@
}: }:
let let
inherit (lib.meta) getExe'; inherit (lib)
inherit (lib.lists) optional optionals;
inherit (lib.systems.inspect.patterns) isLinux isAarch64;
inherit (lib) teams;
inherit (lib.strings)
enableFeature enableFeature
getExe'
licenses
makeSearchPathOutput makeSearchPathOutput
optional
optionalString optionalString
optionals
systems
teams
versionOlder versionOlder
warn
; ;
inherit (lib.licenses) inherit (systems.inspect.patterns) isLinux isAarch64;
inherit (licenses)
cc-by-40 cc-by-40
gpl2Only gpl2Only
lgpl21Only lgpl21Only
@ -287,10 +292,10 @@ stdenv.mkDerivation (finalAttrs: {
''; '';
passthru = { passthru = {
efi = "boot/xen-${version}.efi"; efi = "boot/xen-${upstreamVersion}.efi";
flaskPolicy = flaskPolicy =
if withFlask then if withFlask then
"boot/xenpolicy-${version}" warn "This Xen was compiled with FLASK support, but the FLASK file does not match the Xen version number. Please hardcode the path to the FLASK file instead." "boot/xenpolicy-${version}"
else else
throw "This Xen was compiled without FLASK support."; throw "This Xen was compiled without FLASK support.";
# This test suite is very simple, as Xen's userspace # This test suite is very simple, as Xen's userspace
@ -335,7 +340,7 @@ stdenv.mkDerivation (finalAttrs: {
Use with the `qemu_xen` package. Use with the `qemu_xen` package.
'' ''
+ "\nIncludes:\n* `xen.efi`: The Xen Project's [EFI binary](https://xenbits.xenproject.org/docs/${branch}-testing/misc/efi.html), available on the `boot` output of this package." + "\nIncludes:\n* `xen.efi`: The Xen Project's [EFI binary](https://xenbits.xenproject.org/docs/${branch}-testing/misc/efi.html), available on the `boot` output of this package."
+ optionalString withFlask "\n* `xsm-flask`: The [FLASK Xen Security Module](https://wiki.xenproject.org/wiki/Xen_Security_Modules_:_XSM-FLASK). The `xenpolicy-${version}` file is available on the `boot` output of this package." + optionalString withFlask "\n* `xsm-flask`: The [FLASK Xen Security Module](https://wiki.xenproject.org/wiki/Xen_Security_Modules_:_XSM-FLASK). The `xenpolicy-${upstreamVersion}` file is available on the `boot` output of this package."
+ optionalString withSeaBIOS "\n* `seabios`: Support for the SeaBIOS boot firmware on HVM domains." + optionalString withSeaBIOS "\n* `seabios`: Support for the SeaBIOS boot firmware on HVM domains."
+ optionalString withOVMF "\n* `ovmf`: Support for the OVMF UEFI boot firmware on HVM domains." + optionalString withOVMF "\n* `ovmf`: Support for the OVMF UEFI boot firmware on HVM domains."
+ optionalString withIPXE "\n* `ipxe`: Support for the iPXE boot firmware on HVM domains."; + optionalString withIPXE "\n* `ipxe`: Support for the iPXE boot firmware on HVM domains.";

View File

@ -20,28 +20,21 @@
, libxslt , libxslt
, goffice , goffice
, wrapGAppsHook3 , wrapGAppsHook3
, gitUpdater
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "abiword"; pname = "abiword";
version = "3.0.5"; version = "3.0.6";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "gitlab.gnome.org"; domain = "gitlab.gnome.org";
owner = "World"; owner = "World";
repo = "AbiWord"; repo = "AbiWord";
rev = "refs/tags/release-${version}"; rev = "refs/tags/release-${version}";
hash = "sha256-Z55qPm4MYwbG8bvXpX2TH8bxQaJjvb3Em1ymM1XwGqo="; hash = "sha256-PPK4O+NKXdl7DKPOgGlVyCFTol8hhmtq0wdTTtwKQ/4=";
}; };
patches = [
# Fix build with libxml2 2.12
(fetchpatch {
url = "https://gitlab.gnome.org/World/AbiWord/-/commit/2a06be6a10a0718f8a3d8e00c317f5042c99a467.patch";
hash = "sha256-vfh81tGXe9dgnjcAtoWHOK8CtW7MZ75FFjnfKTkiKkk=";
})
];
nativeBuildInputs = [ nativeBuildInputs = [
autoreconfHook269 autoreconfHook269
autoconf-archive autoconf-archive
@ -77,6 +70,10 @@ stdenv.mkDerivation rec {
./autogen-common.sh ./autogen-common.sh
''; '';
passthru.updateScript = gitUpdater {
rev-prefix = "release-";
};
meta = with lib; { meta = with lib; {
description = "Word processing program, similar to Microsoft Word"; description = "Word processing program, similar to Microsoft Word";
mainProgram = "abiword"; mainProgram = "abiword";

View File

@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
- Cron job notifications for renewal or error etc. - Cron job notifications for renewal or error etc.
''; '';
license = licenses.gpl3Only; license = licenses.gpl3Only;
maintainers = with lib.maintainers; [ mkaito ] ++ teams.serokell.members; maintainers = lib.teams.serokell.members;
inherit (coreutils.meta) platforms; inherit (coreutils.meta) platforms;
mainProgram = "acme.sh"; mainProgram = "acme.sh";
}; };

View File

@ -1,9 +1,7 @@
# If the tests are broken, it's probably for one of two reasons: # If the tests are broken, it's probably for one of two reasons:
# #
# 1. The version of llvm used doesn't match the expectations of rustc and/or # 1. The version of llvm used doesn't match the expectations of rustc and/or
# cargo-llvm-cov. This is relatively unlikely because we pull llvm out of # cargo-llvm-cov.
# rustc's attrset, so it *should* be the right version as long as this is the
# case.
# 2. Nixpkgs has changed its rust infrastructure in a way that causes # 2. Nixpkgs has changed its rust infrastructure in a way that causes
# cargo-llvm-cov to misbehave under test. It's likely that even though the # cargo-llvm-cov to misbehave under test. It's likely that even though the
# tests are failing, cargo-llvm-cov will still function properly in actual # tests are failing, cargo-llvm-cov will still function properly in actual
@ -20,24 +18,24 @@
, fetchurl , fetchurl
, fetchFromGitHub , fetchFromGitHub
, rustPlatform , rustPlatform
, rustc , llvmPackages_19
, git , git
}: }:
let let
pname = "cargo-llvm-cov"; pname = "cargo-llvm-cov";
version = "0.6.12"; version = "0.6.14";
owner = "taiki-e"; owner = "taiki-e";
homepage = "https://github.com/${owner}/${pname}"; homepage = "https://github.com/${owner}/${pname}";
llvm = rustc.llvmPackages.llvm; inherit (llvmPackages_19) llvm;
# Download `Cargo.lock` from crates.io so we don't clutter up Nixpkgs # Download `Cargo.lock` from crates.io so we don't clutter up Nixpkgs
cargoLock = fetchurl { cargoLock = fetchurl {
name = "Cargo.lock"; name = "Cargo.lock";
url = "https://crates.io/api/v1/crates/${pname}/${version}/download"; url = "https://crates.io/api/v1/crates/${pname}/${version}/download";
sha256 = "sha256-QMO5J5c8MQr84w6X74oQrHV99cjSUVfpC8Ub1csQ0gI="; sha256 = "sha256-f0xO+UxB9f6q6q8QyjtP+z+U146+8GLmLKgGmAs/YYA=";
downloadToTemp = true; downloadToTemp = true;
postFetch = '' postFetch = ''
tar xzf $downloadedFile ${pname}-${version}/Cargo.lock tar xzf $downloadedFile ${pname}-${version}/Cargo.lock
@ -55,7 +53,7 @@ rustPlatform.buildRustPackage {
inherit owner; inherit owner;
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-BlXgbCWjGya/I94nqfjBqQPSWnVhyhNn0oSRL9xiS6k="; sha256 = "sha256-iJrnNDSMich5OzEbPgnQWLVz6Zj/MUIzEsaBzqVdoDg=";
}; };
# Upstream doesn't include the lockfile so we need to add it back # Upstream doesn't include the lockfile so we need to add it back
@ -63,7 +61,7 @@ rustPlatform.buildRustPackage {
cp ${cargoLock} source/Cargo.lock cp ${cargoLock} source/Cargo.lock
''; '';
cargoHash = "sha256-nabO19JePQRuhxsbm5wVIU4+5si6p0VgqR2QLmLeivU="; cargoHash = "sha256-kYKQ7ddgoSvarF0HG/yESu5cU87DUgYm9tDkem5a/gw=";
# `cargo-llvm-cov` reads these environment variables to find these binaries, # `cargo-llvm-cov` reads these environment variables to find these binaries,
# which are needed to run the tests # which are needed to run the tests

View File

@ -7,16 +7,16 @@
buildGoModule rec { buildGoModule rec {
pname = "fabric-ai"; pname = "fabric-ai";
version = "1.4.54"; version = "1.4.99";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "danielmiessler"; owner = "danielmiessler";
repo = "fabric"; repo = "fabric";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-93kOJLzCoJgj5kApQyzGOZOGDlz6G/aNO7bT7eAs5o8="; hash = "sha256-nf1tBnnRgLDg63a6SmTJPwMKCREr/hfCyYtAyyOCUQU=";
}; };
vendorHash = "sha256-ef5fn3D0DcvluLIlwfZFGS/6bZgkduQhRXvjCrghBL8="; vendorHash = "sha256-cdopwdIynWJQJO2K6wLZNBT/0JbCRH2tD2UgnNeQTDY=";
ldflags = [ ldflags = [
"-s" "-s"

View File

@ -34,9 +34,11 @@ python3.pkgs.buildPythonApplication rec {
ffmpeg-python ffmpeg-python
future future
numpy numpy
pkgs.ffmpeg
pysubs2 pysubs2
chardet chardet
rich rich
setuptools
six six
srt srt
tqdm tqdm

View File

@ -24,13 +24,13 @@ let
in in
python.pkgs.buildPythonApplication rec { python.pkgs.buildPythonApplication rec {
pname = "gdtoolkit"; pname = "gdtoolkit";
version = "4.2.2"; version = "4.3.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Scony"; owner = "Scony";
repo = "godot-gdscript-toolkit"; repo = "godot-gdscript-toolkit";
rev = version; rev = version;
hash = "sha256-SvEKKuDnfxV+5AArg5ssrQzgIwRITdek4KYEs3d0n4Y="; hash = "sha256-XK6s/WnbTzjCAtV8dbRPLe5olpKUglPLQdttRRMvX70=";
}; };
disabled = python.pythonOlder "3.7"; disabled = python.pythonOlder "3.7";
@ -50,12 +50,12 @@ python.pkgs.buildPythonApplication rec {
]; ];
preCheck = '' preCheck = ''
# The tests want to run the installed executables # The tests want to run the installed executables
export PATH=$out/bin:$PATH export PATH=$out/bin:$PATH
# gdtoolkit tries to write cache variables to $HOME/.cache # gdtoolkit tries to write cache variables to $HOME/.cache
export HOME=$TMP export HOME=$TMP
''; '';
# The tests are not working on NixOS # The tests are not working on NixOS
disabledTestPaths = [ disabledTestPaths = [

View File

@ -7,16 +7,16 @@
}: }:
buildGoModule rec { buildGoModule rec {
pname = "gptscript"; pname = "gptscript";
version = "0.9.4"; version = "0.9.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gptscript-ai"; owner = "gptscript-ai";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-s7AKpoIFRcZfAM6K1MMovzOqgXdAWtnnFR3m+84L3rQ="; hash = "sha256-9wyDcvY5JCjtvx6XtvHwOsZLCiN1fRn0wBGaIaw2iRQ=";
}; };
vendorHash = "sha256-Kf/ckUuG+SA8WQN2MKL+Xrz91RGPuA7X2/MjryRXsts="; vendorHash = "sha256-ajglXWGJhSJtcrbSBmxmriXFTT+Vb4xYq0Ec9SYRlQk=";
propagatedBuildInputs = with darwin; propagatedBuildInputs = with darwin;
lib.optionals stdenv.hostPlatform.isDarwin [Security]; lib.optionals stdenv.hostPlatform.isDarwin [Security];

View File

@ -0,0 +1,31 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "hullcaster";
version = "v0.1.2";
src = fetchFromGitHub {
owner = "gilcu3";
repo = "hullcaster";
rev = version;
hash = "sha256-TaELX/xMxm7OTmVnvkgEmdhnVrIlxSNqlE73+I5qxCc=";
};
cargoHash = "sha256-FeIZu/9yEk8U4a1AhqHyJBhpTP453km33FemwfhZckc=";
# work around error: Could not create filepath: /homeless-shelter/.local/share
checkFlags = [
"--skip gpodder::tests::gpodder"
];
meta = {
description = "Terminal-based podcast manager built in Rust";
homepage = "https://github.com/gilcu3/hullcaster";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ kiara ];
};
}

View File

@ -1,6 +1,8 @@
{ lib { lib
, stdenv , stdenv
, buildPackages
, fetchurl , fetchurl
, makeWrapper
, meson , meson
, ninja , ninja
, pkg-config , pkg-config
@ -16,7 +18,7 @@
, geocode-glib_2 , geocode-glib_2
, vala , vala
, gnome , gnome
, withIntrospection ? stdenv.buildPlatform == stdenv.hostPlatform , withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -38,6 +40,7 @@ stdenv.mkDerivation rec {
]; ];
depsBuildBuild = [ depsBuildBuild = [
makeWrapper
pkg-config pkg-config
]; ];
@ -70,19 +73,25 @@ stdenv.mkDerivation rec {
]; ];
postPatch = '' postPatch = ''
patchShebangs build-aux/meson/gen_locations_variant.py patchShebangs --build build-aux/meson/gen_locations_variant.py
wrapProgram $PWD/build-aux/meson/gen_locations_variant.py \
--prefix GI_TYPELIB_PATH : ${lib.getLib buildPackages.glib}/lib/girepository-1.0 \
# Run-time dependency gi-docgen found: NO (tried pkgconfig and cmake) # Run-time dependency gi-docgen found: NO (tried pkgconfig and cmake)
# it should be a build-time dep for build # it should be a build-time dep for build
# TODO: send upstream # TODO: send upstream
substituteInPlace doc/meson.build \ substituteInPlace doc/meson.build \
--replace "'gi-docgen', ver" "'gi-docgen', native:true, ver" \ --replace-fail "'gi-docgen', ver" "'gi-docgen', native:true, ver" \
--replace "'gi-docgen', req" "'gi-docgen', native:true, req" --replace-fail "'gi-docgen', req" "'gi-docgen', native:true, req"
# gir works for us even when cross-compiling # gir works for us even when cross-compiling
# TODO: send upstream because downstream users can use the option to disable gir if they don't have it working # TODO: send upstream because downstream users can use the option to disable gir if they don't have it working
substituteInPlace libgweather/meson.build \ substituteInPlace meson.build \
--replace "g_ir_scanner.found() and not meson.is_cross_build()" "g_ir_scanner.found()" --replace-fail "g_ir_scanner.found() and not meson.is_cross_build()" "g_ir_scanner.found()"
substituteInPlace libgweather/meson.build --replace-fail \
"dependency('vapigen', required: enable_vala == 'true')" \
"dependency('vapigen', native: true, required: enable_vala == 'true')"
''; '';
postFixup = '' postFixup = ''
@ -90,6 +99,8 @@ stdenv.mkDerivation rec {
moveToOutput "share/doc" "$devdoc" moveToOutput "share/doc" "$devdoc"
''; '';
strictDeps = true;
passthru = { passthru = {
updateScript = gnome.updateScript { updateScript = gnome.updateScript {
packageName = pname; packageName = pname;

View File

@ -687,7 +687,7 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]] [[package]]
name = "mergiraf" name = "mergiraf"
version = "0.1.1" version = "0.3.0"
dependencies = [ dependencies = [
"cc", "cc",
"clap", "clap",
@ -705,6 +705,7 @@ dependencies = [
"tree-sitter", "tree-sitter",
"tree-sitter-c-sharp", "tree-sitter-c-sharp",
"tree-sitter-cpp", "tree-sitter-cpp",
"tree-sitter-dart",
"tree-sitter-go", "tree-sitter-go",
"tree-sitter-html", "tree-sitter-html",
"tree-sitter-java", "tree-sitter-java",
@ -1180,10 +1181,21 @@ dependencies = [
"tree-sitter-language", "tree-sitter-language",
] ]
[[package]]
name = "tree-sitter-dart"
version = "0.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19f1f70b80ce41343e14aafcef67b5ba2e9de89587535b4aabbabb8036f4e38a"
dependencies = [
"cc",
"tree-sitter",
]
[[package]] [[package]]
name = "tree-sitter-go" name = "tree-sitter-go"
version = "0.23.1" version = "0.23.2"
source = "git+https://github.com/tree-sitter/tree-sitter-go.git?rev=ecc20866d1bd4d80f3aef06456ed3014d4d598e6#ecc20866d1bd4d80f3aef06456ed3014d4d598e6" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a83995691e929d60d7946ab29a6cace465f0cf5bfdb62d7721f76278537d59ad"
dependencies = [ dependencies = [
"cc", "cc",
"tree-sitter-language", "tree-sitter-language",
@ -1257,10 +1269,11 @@ dependencies = [
[[package]] [[package]]
name = "tree-sitter-yaml" name = "tree-sitter-yaml"
version = "0.6.1" version = "0.6.1"
source = "git+https://github.com/wetneb/tree-sitter-yaml.git?rev=7b5199133abceb03d6d1d8f1672f49b4f2a71442#7b5199133abceb03d6d1d8f1672f49b4f2a71442" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aad27ec46ad343d8b514f64dd3fdffb478c592ece561b6c935d90ef55589c6b6"
dependencies = [ dependencies = [
"cc", "cc",
"tree-sitter-language", "tree-sitter",
] ]
[[package]] [[package]]

View File

@ -6,36 +6,44 @@
# native check inputs # native check inputs
git, git,
versionCheckHook,
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "mergiraf"; pname = "mergiraf";
version = "0.2.0"; version = "0.3.0";
src = fetchFromGitea { src = fetchFromGitea {
domain = "codeberg.org"; domain = "codeberg.org";
owner = "mergiraf"; owner = "mergiraf";
repo = "mergiraf"; repo = "mergiraf";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-egtX2daCbPXi5rX2OxbEZA/VI9R4HMj5LRKbUEBFo+E="; hash = "sha256-yBLSN5+rPPoxA6Bn1O2NNGNo9cDfowZdaOtVvvUmNAM=";
}; };
cargoLock = { cargoLock = {
lockFile = ./Cargo.lock; lockFile = ./Cargo.lock;
outputHashes = { outputHashes = {
"tree-sitter-go-0.23.1" = "sha256-elPqkvVYs0vADOuN/umDteWP5hqcXhQAoSkqYDtTxaU=";
"tree-sitter-xml-0.7.0" = "sha256-RTWvOUAs3Uql9DKsP1jf9FZZHaZORE40GXd+6g6RQZw="; "tree-sitter-xml-0.7.0" = "sha256-RTWvOUAs3Uql9DKsP1jf9FZZHaZORE40GXd+6g6RQZw=";
"tree-sitter-yaml-0.6.1" = "sha256-gS+SjOnGl/86U9VV/y1ca7naYIe7DAOvOv++jCRLTKo=";
}; };
}; };
nativeCheckInputs = [ git ]; nativeCheckInputs = [
git
versionCheckHook
];
versionCheckProgramArg = [ "--version" ];
meta = { meta = {
description = "Syntax-aware git merge driver for a growing collection of programming languages and file formats"; description = "Syntax-aware git merge driver for a growing collection of programming languages and file formats";
mainProgram = "mergiraf";
homepage = "https://mergiraf.org/"; homepage = "https://mergiraf.org/";
changelog = "https://codeberg.org/mergiraf/mergiraf/releases/v${version}";
license = lib.licenses.gpl3Only; license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ zimbatm ]; maintainers = with lib.maintainers; [
zimbatm
genga898
];
mainProgram = "mergiraf";
}; };
} }

View File

@ -11,16 +11,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "mollysocket"; pname = "mollysocket";
version = "1.5.1"; version = "1.5.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mollyim"; owner = "mollyim";
repo = "mollysocket"; repo = "mollysocket";
rev = version; rev = version;
hash = "sha256-RRnMmdyr4FZHsdLjGvTRiSw+YC+OutWqsoEId7ZlSX0="; hash = "sha256-6SS1OyAkjL2K87wbUmDs+dDSLp3xL65CkM2AziuN0JQ=";
}; };
cargoHash = "sha256-BXllzuw01ANrk+osUsAlMyLRAptvxGO+rl0ygsCfewU="; cargoHash = "sha256-gdHd10MfY7owKsLCsYCy4KIClnsgBzak6ZfghYuVDOc=";
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config

View File

@ -0,0 +1,50 @@
{
lib,
stdenv,
fetchFromGitHub,
installShellFiles,
pkg-config,
ncurses,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "nbsdgames";
version = "5-unstable-2023-03-13";
src = fetchFromGitHub {
owner = "abakh";
repo = "nbsdgames";
rev = "b7530749f7d7cc1aba9dcf202543ed6f638592f8";
hash = "sha256-/GK2FVV/JKh+bU/FSnY6Hr3PWxSr5CW8XerfGF+FPls=";
};
nativeBuildInputs = [
pkg-config
installShellFiles
];
buildInputs = [ ncurses ];
installFlags = [
"DESTDIR=$(out)"
"PREFIX="
"GAMES_DIR=bin"
];
preInstall = ''
mkdir -p $out/bin
'';
postInstall = ''
installManPage man/*
'';
meta = {
description = "A package of 18 text-based modern games";
homepage = "https://github.com/abakh/nbsdgames";
license = lib.licenses.cc0;
maintainers = with lib.maintainers; [ sarcasticadmin ];
mainProgram = "nbsdgames";
platforms = lib.platforms.all;
};
})

View File

@ -7,10 +7,10 @@
nim-unwrapped-2_2.overrideAttrs ( nim-unwrapped-2_2.overrideAttrs (
finalAttrs: previousAttrs: { finalAttrs: previousAttrs: {
version = "2.0.10"; version = "2.0.12";
src = fetchurl { src = fetchurl {
url = "https://nim-lang.org/download/nim-${finalAttrs.version}.tar.xz"; url = "https://nim-lang.org/download/nim-${finalAttrs.version}.tar.xz";
hash = "sha256-8UVDwjOpLHub0np9mEx4yfnBvXMyAwrBa+fFQMdbDqA="; hash = "sha256-xIh5ScXrjX+an1bwrrK/IUD6vwruDwWAoxnioJgVczo=";
}; };
patches = lib.lists.unique ( patches = lib.lists.unique (
builtins.filter ( builtins.filter (

View File

@ -3,41 +3,41 @@
lib, lib,
writeShellScript, writeShellScript,
fetchFromGitHub, fetchFromGitHub,
pcre, unstableGitUpdater,
asciidoctor,
unstableGitUpdater
}: }:
picom.overrideAttrs (previousAttrs: { picom.overrideAttrs (previousAttrs: {
pname = "picom-pijulius"; pname = "picom-pijulius";
version = "8.2-unstable-2024-10-30"; version = "8.2-unstable-2024-11-12";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pijulius"; owner = "pijulius";
repo = "picom"; repo = "picom";
rev = "bdbcae085c1ba6c2ec6f21712ed140daaa630d89"; rev = "136ee8d0704753b535d59a4aea03d494929ce081";
hash = "sha256-3S8p4vXfryL3IfWPpjhp1GxqJelHRw5aFI3a+ysRKTU="; hash = "sha256-om4vHKXA1FFy6b6DrmVunfOMco3SZxiNoIYyXK+j7k8=";
}; };
buildInputs = (previousAttrs.buildInputs or [ ]) ++ [ pcre ]; dontVersionCheck = true;
nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [ asciidoctor ];
meta = {
inherit (previousAttrs.meta)
license
platforms
mainProgram
longDescription
;
description = "Pijulius's picom fork with extensive animation support";
homepage = "https://github.com/pijulius/picom";
maintainers = with lib.maintainers; [ YvesStraten ];
};
passthru.updateScript = unstableGitUpdater { passthru.updateScript = unstableGitUpdater {
tagFormat = "v([A-Z]+)([a-z]+)|v([1-9]).([1-9])|v([1-9])-rc([1-9])"; tagFormat = "v([A-Z]+)([a-z]+)|v([1-9]).([1-9])|v([1-9])-rc([1-9])";
tagConverter = writeShellScript "picom-pijulius-tag-converter.sh" '' tagConverter = writeShellScript "picom-pijulius-tag-converter.sh" ''
sed -e 's/v//g' -e 's/([A-Z])([a-z])+/8.2/g' -e 's/-rc([1-9])|-rc//g' -e 's/0/8.2/g' sed -e 's/v//g' -e 's/([A-Z])([a-z])+/8.2/g' -e 's/-rc([1-9])|-rc//g' -e 's/0/8.2/g'
''; '';
};
meta = {
inherit (previousAttrs.meta)
license
longDescription
mainProgram
platforms
;
description = "Pijulius's picom fork with extensive animation support";
homepage = "https://github.com/pijulius/picom";
maintainers = with lib.maintainers; [
YvesStraten
];
}; };
}) })

View File

@ -1,45 +1,48 @@
{ asciidoctor {
, dbus asciidoctor,
, docbook_xml_dtd_45 dbus,
, docbook_xsl docbook_xml_dtd_45,
, fetchFromGitHub docbook_xsl,
, lib fetchFromGitHub,
, libconfig lib,
, libdrm libconfig,
, libev libdrm,
, libGL libev,
, libepoxy libGL,
, libX11 libepoxy,
, libxcb libX11,
, libxdg_basedir libxcb,
, libXext libxdg_basedir,
, libxml2 libXext,
, libxslt libxml2,
, makeWrapper libxslt,
, meson makeWrapper,
, ninja meson,
, pcre2 ninja,
, pixman pcre2,
, pkg-config pixman,
, stdenv pkg-config,
, uthash stdenv,
, xcbutil uthash,
, xcbutilimage xcbutil,
, xcbutilrenderutil xcbutilimage,
, xorgproto xcbutilrenderutil,
, xwininfo xorgproto,
, withDebug ? false xwininfo,
withDebug ? false,
versionCheckHook,
nix-update-script,
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "picom"; pname = "picom";
version = "12.4"; version = "12.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "yshui"; owner = "yshui";
repo = "picom"; repo = "picom";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-5kScnKUHck86fsYrraeV2O2r6fsVFllRMp4GeNT627A="; hash = "sha256-H8IbzzrzF1c63MXbw5mqoll3H+vgcSVpijrlSDNkc+o=";
fetchSubmodules = true; fetchSubmodules = true;
}; };
@ -90,15 +93,28 @@ stdenv.mkDerivation (finalAttrs: {
# In debug mode, also copy src directory to store. If you then run `gdb picom` # In debug mode, also copy src directory to store. If you then run `gdb picom`
# in the bin directory of picom store path, gdb finds the source files. # in the bin directory of picom store path, gdb finds the source files.
postInstall = '' postInstall =
wrapProgram $out/bin/picom-trans \ ''
--prefix PATH : ${lib.makeBinPath [ xwininfo ]} wrapProgram $out/bin/picom-trans \
'' + lib.optionalString withDebug '' --prefix PATH : ${lib.makeBinPath [ xwininfo ]}
cp -r ../src $out/ ''
''; + lib.optionalString withDebug ''
cp -r ../src $out/
'';
meta = with lib; { nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Fork of XCompMgr, a sample compositing manager for X servers"; description = "Fork of XCompMgr, a sample compositing manager for X servers";
license = lib.licenses.mit;
longDescription = '' longDescription = ''
A fork of XCompMgr, which is a sample compositing manager for X A fork of XCompMgr, which is a sample compositing manager for X
servers supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE servers supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE
@ -113,10 +129,14 @@ stdenv.mkDerivation (finalAttrs: {
For gdb to find the source files, you need to run gdb in the bin directory For gdb to find the source files, you need to run gdb in the bin directory
of picom package in the nix store. of picom package in the nix store.
''; '';
license = licenses.mit;
homepage = "https://github.com/yshui/picom"; homepage = "https://github.com/yshui/picom";
maintainers = with maintainers; [ ertes gepbird twey thiagokokada ];
platforms = platforms.linux;
mainProgram = "picom"; mainProgram = "picom";
maintainers = with lib.maintainers; [
ertes
gepbird
thiagokokada
twey
];
platforms = lib.platforms.linux;
}; };
}) })

View File

@ -7,18 +7,18 @@
let let
pname = "pinact"; pname = "pinact";
version = "0.2.1"; version = "1.0.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "suzuki-shunsuke"; owner = "suzuki-shunsuke";
repo = "pinact"; repo = "pinact";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-HfeHfKXDBHPgxisWSVnrLOQf/4NXtnehkIjQqiCoFIc="; hash = "sha256-fOmQDfqG1aWzpL80Nc8JA6HWQR+z9mhqtwU4rC2g2Gg=";
}; };
in in
buildGoModule { buildGoModule {
inherit pname version src; inherit pname version src;
vendorHash = "sha256-L9EGygiJ40f7Yw46KdaAof5O/ren6inTK7XerB/uv1g="; vendorHash = "sha256-AFlkzs5mL/x9CwfF2apLcQbiu60GD33oFH6lQDHAL1M=";
doCheck = true; doCheck = true;

View File

@ -9,11 +9,11 @@
}: }:
stdenvNoCC.mkDerivation (finalAttrs: { stdenvNoCC.mkDerivation (finalAttrs: {
pname = "proton-pass"; pname = "proton-pass";
version = "1.23.1"; version = "1.24.1";
src = fetchurl { src = fetchurl {
url = "https://proton.me/download/pass/linux/x64/proton-pass_${finalAttrs.version}_amd64.deb"; url = "https://proton.me/download/pass/linux/x64/proton-pass_${finalAttrs.version}_amd64.deb";
hash = "sha256-D4OFHL9AS8oAwMZHoXaDpHKfMBQEaOd18eWAwVW4EJA="; hash = "sha256-NtSZ3TSF3nBD+mEU6+uW2x8nqv0dz3jpankyTjJ8xvE=";
}; };
dontConfigure = true; dontConfigure = true;
@ -25,11 +25,12 @@ stdenvNoCC.mkDerivation (finalAttrs: {
asar asar
]; ];
# Rebuild the ASAR archive with the assets embedded # Rebuild the ASAR archive, hardcoding the resourcesPath
preInstall = '' preInstall = ''
asar extract usr/lib/proton-pass/resources/app.asar tmp asar extract usr/lib/proton-pass/resources/app.asar tmp
cp -r usr/lib/proton-pass/resources/assets/ tmp/
rm usr/lib/proton-pass/resources/app.asar rm usr/lib/proton-pass/resources/app.asar
substituteInPlace tmp/.webpack/main/index.js \
--replace-fail "process.resourcesPath" "'$out/share/proton-pass'"
asar pack tmp/ usr/lib/proton-pass/resources/app.asar asar pack tmp/ usr/lib/proton-pass/resources/app.asar
rm -fr tmp rm -fr tmp
''; '';
@ -38,7 +39,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
runHook preInstall runHook preInstall
mkdir -p $out/share/proton-pass mkdir -p $out/share/proton-pass
cp -r usr/share/ $out/ cp -r usr/share/ $out/
cp -r usr/lib/proton-pass/resources/app.asar $out/share/proton-pass/ cp -r usr/lib/proton-pass/resources/{app.asar,assets} $out/share/proton-pass/
runHook postInstall runHook postInstall
''; '';
@ -46,6 +47,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
makeWrapper ${lib.getExe electron} $out/bin/proton-pass \ makeWrapper ${lib.getExe electron} $out/bin/proton-pass \
--add-flags $out/share/proton-pass/app.asar \ --add-flags $out/share/proton-pass/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \ --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
--set-default ELECTRON_FORCE_IS_PACKAGED 1 \
--set-default ELECTRON_IS_DEV 0 \ --set-default ELECTRON_IS_DEV 0 \
--inherit-argv0 --inherit-argv0
''; '';

View File

@ -1,48 +1,45 @@
{ lib {
, rustPlatform lib,
, fetchFromGitLab rustPlatform,
, installShellFiles fetchFromGitLab,
, pkg-config installShellFiles,
, python3 pkg-config,
, dbus python3,
, glib glib,
, gpgme gpgme,
, gtk3 gtk3,
, libxcb stdenv,
, libxkbcommon
, stdenv
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "prs"; pname = "prs";
version = "0.5.1"; version = "0.5.2";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "timvisee"; owner = "timvisee";
repo = "prs"; repo = "prs";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-MvQ0B35NF/AuGHBMa201FkFlU/UX0WXMcBRxTJwpUFw="; hash = "sha256-W5wNmZWjSsM6Xe50fCpa/aGsJ8PDyh2INs1Oj86et04=";
}; };
cargoHash = "sha256-YDcAjBIdUboOKvGSnGW6b1JVbhQaB3ccXcSmK78M7DI="; cargoHash = "sha256-T57RqIzurpYLHyeFhvqxmC+DoB6zUf+iTu1YkMmwtp8=";
postPatch = '' nativeBuildInputs = [
# The GPGME backend is recommended gpgme
for f in "gtk3/Cargo.toml" "cli/Cargo.toml"; do installShellFiles
substituteInPlace "$f" --replace \ pkg-config
'default = ["backend-gnupg-bin"' 'default = ["backend-gpgme"' python3
done ];
'';
nativeBuildInputs = [ gpgme installShellFiles pkg-config python3 ]; cargoBuildFlags = [
"--no-default-features"
"--features=alias,backend-gpgme,clipboard,notify,select-fzf-bin,select-skim-bin,tomb,totp"
];
buildInputs = [ buildInputs = [
dbus
glib glib
gpgme gpgme
gtk3 gtk3
libxcb
libxkbcommon
]; ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
@ -57,7 +54,7 @@ rustPlatform.buildRustPackage rec {
changelog = "https://gitlab.com/timvisee/prs/-/blob/v${version}/CHANGELOG.md"; changelog = "https://gitlab.com/timvisee/prs/-/blob/v${version}/CHANGELOG.md";
license = with licenses; [ license = with licenses; [
lgpl3Only # lib lgpl3Only # lib
gpl3Only # everything else gpl3Only # everything else
]; ];
maintainers = with maintainers; [ dotlambda ]; maintainers = with maintainers; [ dotlambda ];
mainProgram = "prs"; mainProgram = "prs";

View File

@ -1,14 +1,14 @@
{ lib, stdenv, fetchFromGitHub, mlton, futhark }: { lib, stdenv, fetchFromGitHub, mlton, mlkit, futhark }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "smlfut"; pname = "smlfut";
version = "1.3.0"; version = "1.6.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "diku-dk"; owner = "diku-dk";
repo = "smlfut"; repo = "smlfut";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-Oj5+UNtV2GKB2GNsSFKePVpa1msSZwwJI/YElwBSH98="; hash = "sha256-0Bqgoyp43Y961BMghJFBUx+1lcM2HHlPDjPyLHquWiE=";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
doCheck = true; doCheck = true;
nativeCheckInputs = [ futhark ]; nativeCheckInputs = [ futhark mlkit ];
checkTarget = "run_test"; checkTarget = "run_test";

View File

@ -21,6 +21,12 @@ dependencies = [
"yansi", "yansi",
] ]
[[package]]
name = "arrayvec"
version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
[[package]] [[package]]
name = "atty" name = "atty"
version = "0.2.14" version = "0.2.14"
@ -34,9 +40,9 @@ dependencies = [
[[package]] [[package]]
name = "autocfg" name = "autocfg"
version = "1.3.0" version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
[[package]] [[package]]
name = "bitflags" name = "bitflags"
@ -45,14 +51,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]] [[package]]
name = "cc" name = "bitflags"
version = "1.1.19" version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d74707dde2ba56f86ae90effb3b43ddd369504387e718014de010cec7959800" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
[[package]]
name = "cc"
version = "1.1.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baee610e9452a8f6f0a1b6194ec09ff9e2d85dea54432acdae41aa0761c95d70"
dependencies = [ dependencies = [
"shlex", "shlex",
] ]
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]] [[package]]
name = "clap" name = "clap"
version = "3.2.25" version = "3.2.25"
@ -60,7 +78,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
dependencies = [ dependencies = [
"atty", "atty",
"bitflags", "bitflags 1.3.2",
"clap_lex", "clap_lex",
"indexmap", "indexmap",
"strsim", "strsim",
@ -92,6 +110,38 @@ version = "0.8.20"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
[[package]]
name = "dirs-next"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
dependencies = [
"cfg-if",
"dirs-sys-next",
]
[[package]]
name = "dirs-sys-next"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
dependencies = [
"libc",
"redox_users",
"winapi",
]
[[package]]
name = "displaydoc"
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.87",
]
[[package]] [[package]]
name = "form_urlencoded" name = "form_urlencoded"
version = "1.2.1" version = "1.2.1"
@ -101,6 +151,17 @@ dependencies = [
"percent-encoding", "percent-encoding",
] ]
[[package]]
name = "getrandom"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
dependencies = [
"cfg-if",
"libc",
"wasi",
]
[[package]] [[package]]
name = "hashbrown" name = "hashbrown"
version = "0.12.3" version = "0.12.3"
@ -117,13 +178,142 @@ dependencies = [
] ]
[[package]] [[package]]
name = "idna" name = "icu_collections"
version = "0.5.0" version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"
dependencies = [ dependencies = [
"unicode-bidi", "displaydoc",
"unicode-normalization", "yoke",
"zerofrom",
"zerovec",
]
[[package]]
name = "icu_locid"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"
dependencies = [
"displaydoc",
"litemap",
"tinystr",
"writeable",
"zerovec",
]
[[package]]
name = "icu_locid_transform"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e"
dependencies = [
"displaydoc",
"icu_locid",
"icu_locid_transform_data",
"icu_provider",
"tinystr",
"zerovec",
]
[[package]]
name = "icu_locid_transform_data"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"
[[package]]
name = "icu_normalizer"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"
dependencies = [
"displaydoc",
"icu_collections",
"icu_normalizer_data",
"icu_properties",
"icu_provider",
"smallvec",
"utf16_iter",
"utf8_iter",
"write16",
"zerovec",
]
[[package]]
name = "icu_normalizer_data"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"
[[package]]
name = "icu_properties"
version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5"
dependencies = [
"displaydoc",
"icu_collections",
"icu_locid_transform",
"icu_properties_data",
"icu_provider",
"tinystr",
"zerovec",
]
[[package]]
name = "icu_properties_data"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569"
[[package]]
name = "icu_provider"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9"
dependencies = [
"displaydoc",
"icu_locid",
"icu_provider_macros",
"stable_deref_trait",
"tinystr",
"writeable",
"yoke",
"zerofrom",
"zerovec",
]
[[package]]
name = "icu_provider_macros"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.87",
]
[[package]]
name = "idna"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
dependencies = [
"idna_adapter",
"smallvec",
"utf8_iter",
]
[[package]]
name = "idna_adapter"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71"
dependencies = [
"icu_normalizer",
"icu_properties",
] ]
[[package]] [[package]]
@ -144,9 +334,25 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.158" version = "0.2.162"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398"
[[package]]
name = "libredox"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
dependencies = [
"bitflags 2.6.0",
"libc",
]
[[package]]
name = "litemap"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704"
[[package]] [[package]]
name = "log" name = "log"
@ -172,7 +378,7 @@ version = "0.94.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c66bfd44a06ae10647fe3f8214762e9369fd4248df1350924b4ef9e770a85ea1" checksum = "c66bfd44a06ae10647fe3f8214762e9369fd4248df1350924b4ef9e770a85ea1"
dependencies = [ dependencies = [
"bitflags", "bitflags 1.3.2",
"serde", "serde",
"serde_json", "serde_json",
"serde_repr", "serde_repr",
@ -272,9 +478,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.86" version = "1.0.89"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]
@ -289,10 +495,21 @@ dependencies = [
] ]
[[package]] [[package]]
name = "regex" name = "redox_users"
version = "1.10.6" version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
dependencies = [
"getrandom",
"libredox",
"thiserror",
]
[[package]]
name = "regex"
version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
dependencies = [ dependencies = [
"aho-corasick", "aho-corasick",
"memchr", "memchr",
@ -302,9 +519,9 @@ dependencies = [
[[package]] [[package]]
name = "regex-automata" name = "regex-automata"
version = "0.4.7" version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3"
dependencies = [ dependencies = [
"aho-corasick", "aho-corasick",
"memchr", "memchr",
@ -313,9 +530,9 @@ dependencies = [
[[package]] [[package]]
name = "regex-syntax" name = "regex-syntax"
version = "0.8.4" version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]] [[package]]
name = "ryu" name = "ryu"
@ -325,29 +542,29 @@ checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.210" version = "1.0.214"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.210" version = "1.0.214"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.77", "syn 2.0.87",
] ]
[[package]] [[package]]
name = "serde_json" name = "serde_json"
version = "1.0.128" version = "1.0.132"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03"
dependencies = [ dependencies = [
"itoa", "itoa",
"memchr", "memchr",
@ -363,7 +580,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.77", "syn 2.0.87",
] ]
[[package]] [[package]]
@ -372,6 +589,18 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "smallvec"
version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
name = "stable_deref_trait"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]] [[package]]
name = "strsim" name = "strsim"
version = "0.10.0" version = "0.10.0"
@ -380,7 +609,7 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]] [[package]]
name = "sus-proc-macro" name = "sus-proc-macro"
version = "0.0.1" version = "0.1.0"
dependencies = [ dependencies = [
"quote", "quote",
"syn 1.0.109", "syn 1.0.109",
@ -390,10 +619,12 @@ dependencies = [
[[package]] [[package]]
name = "sus_compiler" name = "sus_compiler"
version = "0.0.2" version = "0.1.1"
dependencies = [ dependencies = [
"ariadne", "ariadne",
"arrayvec",
"clap", "clap",
"dirs-next",
"lsp-server", "lsp-server",
"lsp-types", "lsp-types",
"num", "num",
@ -417,15 +648,26 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.77" version = "2.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"unicode-ident", "unicode-ident",
] ]
[[package]]
name = "synstructure"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.87",
]
[[package]] [[package]]
name = "termcolor" name = "termcolor"
version = "1.4.1" version = "1.4.1"
@ -442,19 +684,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
[[package]] [[package]]
name = "tinyvec" name = "thiserror"
version = "1.8.0" version = "1.0.68"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892"
dependencies = [ dependencies = [
"tinyvec_macros", "thiserror-impl",
] ]
[[package]] [[package]]
name = "tinyvec_macros" name = "thiserror-impl"
version = "0.1.1" version = "1.0.68"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.87",
]
[[package]]
name = "tinystr"
version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f"
dependencies = [
"displaydoc",
"zerovec",
]
[[package]] [[package]]
name = "tree-sitter" name = "tree-sitter"
@ -468,44 +725,29 @@ dependencies = [
[[package]] [[package]]
name = "tree-sitter-sus" name = "tree-sitter-sus"
version = "0.0.2" version = "0.1.0"
dependencies = [ dependencies = [
"cc", "cc",
"tree-sitter", "tree-sitter",
] ]
[[package]]
name = "unicode-bidi"
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
[[package]] [[package]]
name = "unicode-ident" name = "unicode-ident"
version = "1.0.13" version = "1.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
[[package]]
name = "unicode-normalization"
version = "0.1.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
dependencies = [
"tinyvec",
]
[[package]] [[package]]
name = "unicode-width" name = "unicode-width"
version = "0.1.13" version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
[[package]] [[package]]
name = "url" name = "url"
version = "2.5.2" version = "2.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada"
dependencies = [ dependencies = [
"form_urlencoded", "form_urlencoded",
"idna", "idna",
@ -513,6 +755,24 @@ dependencies = [
"serde", "serde",
] ]
[[package]]
name = "utf16_iter"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"
[[package]]
name = "utf8_iter"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
[[package]]
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]] [[package]]
name = "winapi" name = "winapi"
version = "0.3.9" version = "0.3.9"
@ -617,8 +877,87 @@ version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "write16"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
[[package]]
name = "writeable"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
[[package]] [[package]]
name = "yansi" name = "yansi"
version = "1.0.1" version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
[[package]]
name = "yoke"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5"
dependencies = [
"serde",
"stable_deref_trait",
"yoke-derive",
"zerofrom",
]
[[package]]
name = "yoke-derive"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.87",
"synstructure",
]
[[package]]
name = "zerofrom"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55"
dependencies = [
"zerofrom-derive",
]
[[package]]
name = "zerofrom-derive"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.87",
"synstructure",
]
[[package]]
name = "zerovec"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079"
dependencies = [
"yoke",
"zerofrom",
"zerovec-derive",
]
[[package]]
name = "zerovec-derive"
version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.87",
]

View File

@ -7,19 +7,23 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "sus-compiler"; pname = "sus-compiler";
version = "0.0.2"; version = "0.1.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pc2"; owner = "pc2";
repo = "sus-compiler"; repo = "sus-compiler";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-f93uT6ELW3T2Xd539EfZCf2LSbxcYnEX+smmLzBAxqc="; hash = "sha256-VSoroUultjBn2KxfvyhS923RQ/1v9AXb15k4/MoR+oM=";
fetchSubmodules = true; fetchSubmodules = true;
}; };
# no lockfile upstream # no lockfile upstream
cargoLock.lockFile = ./Cargo.lock; cargoLock.lockFile = ./Cargo.lock;
preBuild = ''
export HOME="$TMPDIR";
'';
postPatch = '' postPatch = ''
ln -s ${./Cargo.lock} Cargo.lock ln -s ${./Cargo.lock} Cargo.lock
''; '';

View File

@ -5,60 +5,122 @@
pkg-config, pkg-config,
icu, icu,
clucene_core, clucene_core,
autoreconfHook,
bzip2,
curl, curl,
xz,
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (
pname = "sword"; finalAttrs:
version = "1.9.0"; let
# Used on Windows, where libpsl doesn't compile, yet
curlDep = curl.override { pslSupport = false; };
in
{
pname = "sword";
version = "1.9.0";
src = fetchurl { src = fetchurl {
url = "https://www.crosswire.org/ftpmirror/pub/sword/source/v${lib.versions.majorMinor finalAttrs.version}/sword-${finalAttrs.version}.tar.gz"; url = "https://www.crosswire.org/ftpmirror/pub/sword/source/v${lib.versions.majorMinor finalAttrs.version}/sword-${finalAttrs.version}.tar.gz";
hash = "sha256-QkCc894vrxEIUj4sWsB0XSH57SpceO2HjuncwwNCa4o="; hash = "sha256-QkCc894vrxEIUj4sWsB0XSH57SpceO2HjuncwwNCa4o=";
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs =
buildInputs = [ [
icu pkg-config
clucene_core ]
curl ++ (lib.optionals stdenv.hostPlatform.isWindows [
]; autoreconfHook # The Windows patch modifies autotools files
]);
outputs = [ buildInputs =
"out" [
"dev" icu
]; ]
++ (lib.optionals stdenv.hostPlatform.isUnix [
clucene_core
curl
])
++ (lib.optionals stdenv.hostPlatform.isWindows [
bzip2
curlDep
xz
]);
prePatch = '' outputs = [
patchShebangs .; "out"
''; "dev"
];
configureFlags = [ prePatch = ''
"--without-conf" patchShebangs .;
"--enable-tests=no"
];
CXXFLAGS = [
"-Wno-unused-but-set-variable"
"-Wno-unknown-warning-option"
# compat with icu61+ https://github.com/unicode-org/icu/blob/release-64-2/icu4c/readme.html#L554
"-DU_USING_ICU_NAMESPACE=1"
];
meta = {
description = "Software framework that allows research manipulation of Biblical texts";
homepage = "https://www.crosswire.org/sword/";
longDescription = ''
The SWORD Project is the CrossWire Bible Society's free Bible software
project. Its purpose is to create cross-platform open-source tools --
covered by the GNU General Public License -- that allow programmers and
Bible societies to write new Bible software more quickly and easily. We
also create Bible study software for all readers, students, scholars, and
translators of the Bible, and have a growing collection of many hundred
texts in around 100 languages.
''; '';
license = lib.licenses.gpl2;
maintainers = with lib.maintainers; [ AndersonTorres ]; preConfigure = lib.optionalString stdenv.hostPlatform.isWindows ''
platforms = lib.platforms.unix; substituteInPlace configure --replace-fail "-no-undefined" "-Wl,-no-undefined"
}; '';
})
patches = lib.optional stdenv.hostPlatform.isWindows ./sword-1.9.0-diatheke-includes.patch;
configureFlags =
[
"--without-conf"
"--enable-tests=no"
]
++ (lib.optionals stdenv.hostPlatform.isWindows [
"--with-xz"
"--with-bzip2"
"--with-icuregex"
]);
makeFlags = lib.optionals stdenv.hostPlatform.isWindows [
"LDFLAGS=-no-undefined"
];
env = {
# When placed in nativeBuildInputs, icu.dev is finding the native ICU libs, but setting it
# explicitly here has it finding the platform appropriate version
ICU_CONFIG = lib.optionalString stdenv.hostPlatform.isWindows "${icu.dev}/bin/icu-config --noverify";
CURL_CONFIG = lib.optionalString stdenv.hostPlatform.isWindows "${lib.getDev curlDep}/bin/curl-config";
CXXFLAGS = (
builtins.concatStringsSep " " (
[
"-Wno-unused-but-set-variable"
"-Wno-unknown-warning-option"
# compat with icu61+ https://github.com/unicode-org/icu/blob/release-64-2/icu4c/readme.html#L554
"-DU_USING_ICU_NAMESPACE=1"
]
++ (lib.optionals stdenv.hostPlatform.isWindows [
"-Wint-to-pointer-cast"
"-fpermissive"
"-D_ICUSWORD_"
"-DCURL_STATICLIB"
])
)
);
};
meta = {
description = "Software framework that allows research manipulation of Biblical texts";
homepage = "https://www.crosswire.org/sword/";
longDescription = ''
The SWORD Project is the CrossWire Bible Society's free Bible software
project. Its purpose is to create cross-platform open-source tools --
covered by the GNU General Public License -- that allow programmers and
Bible societies to write new Bible software more quickly and easily. We
also create Bible study software for all readers, students, scholars, and
translators of the Bible, and have a growing collection of many hundred
texts in around 100 languages.
'';
license = lib.licenses.gpl2;
maintainers = with lib.maintainers; [
AndersonTorres
greg
];
platforms = lib.platforms.all;
};
}
)

View File

@ -0,0 +1,13 @@
diff --git a/utilities/diatheke/Makefile.am b/utilities/diatheke/Makefile.am
index 8ba34e5..545af2c 100644
--- a/utilities/diatheke/Makefile.am
+++ b/utilities/diatheke/Makefile.am
@@ -1,5 +1,8 @@
AUTOMAKE_OPTIONS = 1.6
+if USE_INTERNAL_REGEX
+AM_CPPFLAGS = -I$(top_srcdir)/include/internal/regex
+endif
LDADD = $(top_builddir)/lib/libsword.la
bin_PROGRAMS = diatheke

View File

@ -27,7 +27,7 @@
glslang, glslang,
spirv-tools, spirv-tools,
gtest, gtest,
darwin, apple-sdk_11,
}: }:
let let
clientExecutable = "TaterClient-DDNet"; clientExecutable = "TaterClient-DDNet";
@ -80,15 +80,9 @@ stdenv.mkDerivation (finalAttrs: {
spirv-tools spirv-tools
] ]
++ lib.optionals stdenv.hostPlatform.isLinux [ libX11 ] ++ lib.optionals stdenv.hostPlatform.isLinux [ libX11 ]
++ lib.optionals stdenv.hostPlatform.isDarwin ( ++ lib.optionals stdenv.hostPlatform.isDarwin [
with darwin.apple_sdk.frameworks; apple-sdk_11
[ ];
Carbon
Cocoa
OpenGL
Security
]
);
postPatch = '' postPatch = ''
substituteInPlace src/engine/shared/storage.cpp \ substituteInPlace src/engine/shared/storage.cpp \

View File

@ -1,6 +1,7 @@
{ lib { lib
, stdenv , stdenv
, fetchFromGitHub , fetchFromGitHub
, fetchpatch2
, cmake , cmake
, curl , curl
, gpgme , gpgme
@ -23,6 +24,14 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-p9g+b7Fqq8V6QSaikEQMMHWqBf4UtRA9a/VtH+s5JUM="; hash = "sha256-p9g+b7Fqq8V6QSaikEQMMHWqBf4UtRA9a/VtH+s5JUM=";
}; };
patches = [
# Support for rpm >= 4.19
(fetchpatch2 {
url = "https://patch-diff.githubusercontent.com/raw/vmware/tdnf/pull/410.patch";
hash = "sha256-p/ix5O1J/lj2fw7qJokT+wPN4ROoulnVqByfxgFvuEo=";
})
];
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
pkg-config pkg-config

View File

@ -9,7 +9,7 @@
buildGo123Module rec { buildGo123Module rec {
pname = "telegraf"; pname = "telegraf";
version = "1.32.1"; version = "1.32.2";
subPackages = [ "cmd/telegraf" ]; subPackages = [ "cmd/telegraf" ];
@ -17,10 +17,10 @@ buildGo123Module rec {
owner = "influxdata"; owner = "influxdata";
repo = "telegraf"; repo = "telegraf";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-CtfPREsU2LU7Ptn3FzEDlPeWVWP/OdtIITdUL7qKbgI="; hash = "sha256-hqYBoaklrdCkTwnkwqkZAvGLyWkUB3CVu4cg3Ujbyto=";
}; };
vendorHash = "sha256-WQbgGsGfyUGcgjXWjuyyCapeKgujoZD6HpKoFiIA//M="; vendorHash = "sha256-KRZ5Rrdp69DTHtNu8vXuD7QKy2n6Sx7myNpB5TSZpRk=";
proxyVendor = true; proxyVendor = true;
ldflags = [ ldflags = [

View File

@ -6,13 +6,13 @@
buildGoModule rec { buildGoModule rec {
pname = "terragrunt"; pname = "terragrunt";
version = "0.67.9"; version = "0.68.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gruntwork-io"; owner = "gruntwork-io";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-TDYYPR+Sak2Kv89Fp+sCi2XC8eYrwVS5RIgzUTXaCRc="; hash = "sha256-+66+qntwEILB0wbO/J5S6ED5W8JoE0C1KSGmGwIYGM0=";
}; };
nativeBuildInputs = [ go-mockery ]; nativeBuildInputs = [ go-mockery ];
@ -21,7 +21,7 @@ buildGoModule rec {
make generate-mocks make generate-mocks
''; '';
vendorHash = "sha256-NERvQoxT01ew/rCkEXrthsqF1mXjhxZANBL9ApTyd7o="; vendorHash = "sha256-MLIj+/FUw7C4sOWby9nmcQFAvjVNvnf6bKs3pmlhzRQ=";
doCheck = false; doCheck = false;
@ -29,6 +29,7 @@ buildGoModule rec {
"-s" "-s"
"-w" "-w"
"-X github.com/gruntwork-io/go-commons/version.Version=v${version}" "-X github.com/gruntwork-io/go-commons/version.Version=v${version}"
"-extldflags '-static'"
]; ];
doInstallCheck = true; doInstallCheck = true;

View File

@ -69,7 +69,6 @@ stdenv.mkDerivation rec {
psyanticy psyanticy
Chili-Man Chili-Man
techknowlogick techknowlogick
mkaito
]; ];
mainProgram = "vault"; mainProgram = "vault";
platforms = [ platforms = [

View File

@ -6,6 +6,7 @@
buildXenPackage.override { inherit python3Packages; } { buildXenPackage.override { inherit python3Packages; } {
pname = "xen"; pname = "xen";
version = "4.19.0-unstable-2024-11-12"; version = "4.19.0-unstable-2024-11-12";
upstreamVersion = "4.19.1-pre"; # We track the stable branches. Despite the version number, this is actually 4.19.0, not 4.19.1.
rev = "251a9496485a86f302980a3f8d3c656831b5a62f"; rev = "251a9496485a86f302980a3f8d3c656831b5a62f";
hash = "sha256-kHuB6kagH3AU+Wsx4oD7HnNsZpxCu7x3v/m4/1xi6lY="; hash = "sha256-kHuB6kagH3AU+Wsx4oD7HnNsZpxCu7x3v/m4/1xi6lY=";
} }

View File

@ -2,11 +2,11 @@
buildGraalvmNativeImage rec { buildGraalvmNativeImage rec {
pname = "yamlscript"; pname = "yamlscript";
version = "0.1.79"; version = "0.1.83";
src = fetchurl { src = fetchurl {
url = "https://github.com/yaml/yamlscript/releases/download/${version}/yamlscript.cli-${version}-standalone.jar"; url = "https://github.com/yaml/yamlscript/releases/download/${version}/yamlscript.cli-${version}-standalone.jar";
hash = "sha256-Jx3mnAgsTi/5nqcy6DVYPoM4GlQJf+10uuQzhUWp5ZU="; hash = "sha256-c38jNaQSFTQA6+P2joduGe2fqSZmNiokKVf91vkJtEA=";
}; };
executable = "ys"; executable = "ys";

View File

@ -34,7 +34,7 @@
# Feature flags # Feature flags
, withAlsa ? withHeadlessDeps && stdenv.hostPlatform.isLinux # Alsa in/output supporT , withAlsa ? withHeadlessDeps && stdenv.hostPlatform.isLinux # Alsa in/output supporT
, withAmf ? lib.meta.availableOn stdenv.hostPlatform amf # AMD Media Framework video encoding , withAmf ? withHeadlessDeps && lib.meta.availableOn stdenv.hostPlatform amf # AMD Media Framework video encoding
, withAom ? withHeadlessDeps # AV1 reference encoder , withAom ? withHeadlessDeps # AV1 reference encoder
, withAribb24 ? withFullDeps # ARIB text and caption decoding , withAribb24 ? withFullDeps # ARIB text and caption decoding
, withAribcaption ? withFullDeps && lib.versionAtLeast version "6.1" # ARIB STD-B24 Caption Decoder/Renderer , withAribcaption ? withFullDeps && lib.versionAtLeast version "6.1" # ARIB STD-B24 Caption Decoder/Renderer

View File

@ -94,7 +94,10 @@ else
unwrapped = overriddenUnwrappedGir; unwrapped = overriddenUnwrappedGir;
}; };
dontStrip = true; dontStrip = true;
depsTargetTargetPropagated = [ overridenTargetUnwrappedGir ]; # Conditional is for `pkgsCross.x86_64-freebsd.pkgsBuildHost.gobject-introspection` `error: Don't know how to run x86_64-unknown-freebsd executables.`
# `pkgsCross.x86_64-freebsd.buildPackages.python3.withPackages (pp: [ pp.pygobject3 ])`
# Using the python module does not need this propagation
depsTargetTargetPropagated = lib.optionals (stdenv.targetPlatform.emulatorAvailable buildPackages) [ overridenTargetUnwrappedGir ];
buildCommand = '' buildCommand = ''
eval fixupPhase eval fixupPhase
${lib.concatMapStrings (output: '' ${lib.concatMapStrings (output: ''

View File

@ -11,15 +11,19 @@
buildPerlPackage rec { buildPerlPackage rec {
pname = "Image-ExifTool"; pname = "Image-ExifTool";
version = "12.84"; version = "13.00";
src = fetchurl { src = fetchurl {
url = "https://exiftool.org/Image-ExifTool-${version}.tar.gz"; url = "https://exiftool.org/Image-ExifTool-${version}.tar.gz";
hash = "sha256-sfSnx5bS7vI0KIhBOpB5VYzP6g8oi0rR7mUTxxNWEA0="; hash = "sha256-SJV4jzT4NHZfhr5KWtWjJDP1ctdXFg7Ne2Eur17TfoQ=";
}; };
nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang; nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
postPatch = ''
patchShebangs exiftool
'';
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
shortenPerlShebang $out/bin/exiftool shortenPerlShebang $out/bin/exiftool
''; '';

View File

@ -61,14 +61,14 @@ let
in in
buildPythonPackage rec { buildPythonPackage rec {
pname = "gftools"; pname = "gftools";
version = "0.9.71"; version = "0.9.74";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "googlefonts"; owner = "googlefonts";
repo = "gftools"; repo = "gftools";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-YVuTozuONZbBtrst4Q+NmHxqEZa/YPVRMiagjmjcW9U="; hash = "sha256-AIE2b2BgW4LYtnS76t4vu6B2POmqKgMzLLqRs9K40Gg=";
}; };
postPatch = '' postPatch = ''

View File

@ -8,7 +8,7 @@
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "mypgoclient"; pname = "mygpoclient";
version = "1.9"; version = "1.9";
pyproject = true; pyproject = true;

View File

@ -53,17 +53,18 @@ buildPythonPackage rec {
make -j $NIX_BUILD_CORES make -j $NIX_BUILD_CORES
''; '';
# skip testing on platforms disabled for tensorflow-bin nativeCheckInputs =
doCheck = !(builtins.elem stdenv.hostPlatform.system tensorflow-bin.meta.badPlatforms); [
nativeCheckInputs = [ pytestCheckHook
pytestCheckHook numpy
numpy scipy
scipy torch
torch ]
tensorflow-bin ++ lib.optionals (!(builtins.elem stdenv.hostPlatform.system tensorflow-bin.meta.badPlatforms)) [
jax tensorflow-bin
jaxlib jax
]; jaxlib
];
meta = { meta = {
homepage = "https://github.com/wjakob/nanobind"; homepage = "https://github.com/wjakob/nanobind";

View File

@ -13,13 +13,13 @@
faust-cchardet, faust-cchardet,
orjson, orjson,
pynacl, pynacl,
setuptools,
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "nextcord"; pname = "nextcord";
version = "2.6.1"; version = "2.6.1";
pyproject = true;
format = "setuptools";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -38,13 +38,18 @@ buildPythonPackage rec {
}) })
]; ];
propagatedBuildInputs = [ build-system = [
setuptools
];
dependencies = [
aiodns aiodns
aiohttp aiohttp
brotli brotli
faust-cchardet faust-cchardet
orjson orjson
pynacl pynacl
setuptools # for pkg_resources, remove with next release
]; ];
# upstream has no tests # upstream has no tests

View File

@ -1,36 +1,34 @@
{ lib {
, stdenv lib,
, fetchFromGitHub stdenv,
, cargo fetchFromGitHub,
, cmake cargo,
, ninja cmake,
, pkg-config ninja,
, rustPlatform pkg-config,
, rustc rustPlatform,
, curl rustc,
, freetype apple-sdk_11,
, libGLU curl,
, libnotify freetype,
, libogg libGLU,
, libX11 libnotify,
, opusfile libogg,
, pcre libX11,
, python3 opusfile,
, SDL2 pcre,
, sqlite python3,
, wavpack SDL2,
, ffmpeg sqlite,
, x264 wavpack,
, vulkan-headers ffmpeg,
, vulkan-loader x264,
, glslang vulkan-headers,
, spirv-tools vulkan-loader,
, gtest glslang,
, Carbon spirv-tools,
, Cocoa gtest,
, OpenGL buildClient ? true,
, Security
, buildClient ? true
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -63,33 +61,36 @@ stdenv.mkDerivation rec {
gtest gtest
]; ];
buildInputs = [ buildInputs =
curl [
libnotify curl
pcre libnotify
python3 pcre
sqlite python3
] ++ lib.optionals buildClient ([ sqlite
freetype ]
libGLU ++ lib.optionals buildClient (
libogg [
opusfile freetype
SDL2 libGLU
wavpack libogg
ffmpeg opusfile
x264 SDL2
vulkan-loader wavpack
vulkan-headers ffmpeg
glslang x264
spirv-tools vulkan-loader
] ++ lib.optionals stdenv.hostPlatform.isLinux [ vulkan-headers
libX11 glslang
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ spirv-tools
Carbon ]
Cocoa ++ lib.optionals stdenv.hostPlatform.isLinux [
OpenGL libX11
Security ]
]); ++ lib.optionals stdenv.hostPlatform.isDarwin [
apple-sdk_11
]
);
postPatch = '' postPatch = ''
substituteInPlace src/engine/shared/storage.cpp \ substituteInPlace src/engine/shared/storage.cpp \
@ -130,7 +131,11 @@ stdenv.mkDerivation rec {
''; '';
homepage = "https://ddnet.org"; homepage = "https://ddnet.org";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ sirseruju lom ncfavier ]; maintainers = with maintainers; [
sirseruju
lom
ncfavier
];
mainProgram = "DDNet"; mainProgram = "DDNet";
}; };
} }

View File

@ -1,24 +1,28 @@
{ lib {
, stdenv lib,
, boost stdenv,
, cmake boost,
, pkg-config meson,
, installShellFiles ninja,
, nix pkg-config,
installShellFiles,
nix,
}: }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "nixos-option"; name = "nixos-option";
src = ./src; src = ./.;
postInstall = '' postInstall = ''
installManPage ${./nixos-option.8} installManPage ../nixos-option.8
''; '';
strictDeps = true; strictDeps = true;
nativeBuildInputs = [ nativeBuildInputs = [
cmake meson
ninja
pkg-config pkg-config
installShellFiles installShellFiles
]; ];
@ -26,9 +30,6 @@ stdenv.mkDerivation {
boost boost
nix nix
]; ];
cmakeFlags = [
"-DNIX_DEV_INCLUDEPATH=${nix.dev}/include/nix"
];
meta = with lib; { meta = with lib; {
license = licenses.lgpl2Plus; license = licenses.lgpl2Plus;

View File

@ -0,0 +1,15 @@
project('nixos-option', 'cpp',
version : '0.1.6',
license : 'GPL-3.0',
)
nix_main_dep = dependency('nix-main', required: true)
nix_store_dep = dependency('nix-store', required: true)
nix_expr_dep = dependency('nix-expr', required: true)
nix_cmd_dep = dependency('nix-cmd', required: true)
nix_flake_dep = dependency('nix-flake', required: true)
threads_dep = dependency('threads', required: true)
nlohmann_json_dep = dependency('nlohmann_json', required: true)
boost_dep = dependency('boost', required: true)
subdir('src')

View File

@ -1,11 +0,0 @@
cmake_minimum_required (VERSION 2.6)
project (nixos-option)
set(NIX_DEV_INCLUDEPATH "" CACHE STRING "path to nix include directory")
add_executable(nixos-option nixos-option.cc libnix-copy-paste.cc)
target_include_directories(nixos-option PUBLIC "${NIX_DEV_INCLUDEPATH}")
target_link_libraries(nixos-option PRIVATE -lnixmain -lnixexpr -lnixstore -lnixutil -lnixcmd)
target_compile_features(nixos-option PRIVATE cxx_std_20)
install (TARGETS nixos-option DESTINATION bin)

View File

@ -2,79 +2,21 @@
// Since they are not, copy/paste them here. // Since they are not, copy/paste them here.
// TODO: Delete these and use the ones in the library as they become available. // TODO: Delete these and use the ones in the library as they become available.
#include <nix/config.h> // for nix/globals.hh's reference to SYSTEM
#include "libnix-copy-paste.hh" #include "libnix-copy-paste.hh"
#include <boost/format/alt_sstream.hpp> // for basic_altstringbuf... #include <nix/print.hh> // for Strings
#include <boost/format/alt_sstream_impl.hpp> // for basic_altstringbuf...
#include <boost/optional/optional.hpp> // for get_pointer
#include <iostream> // for operator<<, basic_...
#include <nix/types.hh> // for Strings
#include <nix/error.hh> // for Error
#include <string> // for string, basic_string
using nix::Error;
using nix::Strings;
using std::string;
// From nix/src/libexpr/attr-path.cc
Strings parseAttrPath(const string & s)
{
Strings res;
string cur;
string::const_iterator i = s.begin();
while (i != s.end()) {
if (*i == '.') {
res.push_back(cur);
cur.clear();
} else if (*i == '"') {
++i;
while (1) {
if (i == s.end())
throw Error("missing closing quote in selection path '%1%'", s);
if (*i == '"')
break;
cur.push_back(*i++);
}
} else
cur.push_back(*i);
++i;
}
if (!cur.empty())
res.push_back(cur);
return res;
}
// From nix/src/nix/repl.cc // From nix/src/nix/repl.cc
bool isVarName(const string & s) bool isVarName(const std::string_view & s)
{ {
if (s.size() == 0) if (s.size() == 0) return false;
return false; if (nix::isReservedKeyword(s)) return false;
char c = s[0]; char c = s[0];
if ((c >= '0' && c <= '9') || c == '-' || c == '\'') if ((c >= '0' && c <= '9') || c == '-' || c == '\'') return false;
return false;
for (auto & i : s) for (auto & i : s)
if (!((i >= 'a' && i <= 'z') || (i >= 'A' && i <= 'Z') || (i >= '0' && i <= '9') || i == '_' || i == '-' || if (!((i >= 'a' && i <= 'z') ||
i == '\'')) (i >= 'A' && i <= 'Z') ||
(i >= '0' && i <= '9') ||
i == '_' || i == '-' || i == '\''))
return false; return false;
return true; return true;
} }
// From nix/src/nix/repl.cc
std::ostream & printStringValue(std::ostream & str, const char * string)
{
str << "\"";
for (const char * i = string; *i; i++)
if (*i == '\"' || *i == '\\')
str << "\\" << *i;
else if (*i == '\n')
str << "\\n";
else if (*i == '\r')
str << "\\r";
else if (*i == '\t')
str << "\\t";
else
str << *i;
str << "\"";
return str;
}

View File

@ -1,9 +1,5 @@
#pragma once #pragma once
#include <iostream>
#include <nix/types.hh> #include <nix/types.hh>
#include <string>
nix::Strings parseAttrPath(const std::string & s); bool isVarName(const std::string_view & s);
bool isVarName(const std::string & s);
std::ostream & printStringValue(std::ostream & str, const char * string);

View File

@ -0,0 +1,20 @@
src = [
'nixos-option.cc',
'libnix-copy-paste.cc',
]
cc = meson.get_compiler('cpp')
executable('nixos-option', src,
dependencies : [
nix_main_dep,
nix_store_dep,
nix_expr_dep,
nix_cmd_dep,
nix_flake_dep,
boost_dep,
nlohmann_json_dep,
threads_dep
],
install: true,
cpp_args: ['-std=c++2a', '--include', 'nix/config.h'])

View File

@ -1,16 +1,8 @@
#include <nix/config.h> // for nix/globals.hh's reference to SYSTEM
#include <exception> // for exception_ptr, current_exception
#include <functional> // for function
#include <iostream> // for operator<<, basic_ostream, ostrin...
#include <iterator> // for next
#include <list> // for _List_iterator
#include <memory> // for allocator, unique_ptr, make_unique
#include <new> // for operator new
#include <nix/args.hh> // for argvToStrings, UsageError #include <nix/args.hh> // for argvToStrings, UsageError
#include <nix/attr-path.hh> // for findAlongAttrPath #include <nix/attr-path.hh> // for findAlongAttrPath, parseAttrPath
#include <nix/attr-set.hh> // for Attr, Bindings, Bindings::iterator #include <nix/attr-set.hh> // for Attr, Bindings, Bindings::iterator
#include <nix/common-eval-args.hh> // for MixEvalArgs #include <nix/common-eval-args.hh> // for MixEvalArgs
#include <nix/eval-gc.hh> // for initGC, initNix
#include <nix/eval-inline.hh> // for EvalState::forceValue #include <nix/eval-inline.hh> // for EvalState::forceValue
#include <nix/eval.hh> // for EvalState, initGC, operator<< #include <nix/eval.hh> // for EvalState, initGC, operator<<
#include <nix/globals.hh> // for initPlugins, Settings, settings #include <nix/globals.hh> // for initPlugins, Settings, settings
@ -23,8 +15,6 @@
#include <nix/value.hh> // for Value, Value::(anonymous), Value:... #include <nix/value.hh> // for Value, Value::(anonymous), Value:...
#include <string> // for string, operator+, operator== #include <string> // for string, operator+, operator==
#include <utility> // for move #include <utility> // for move
#include <variant> // for get, holds_alternative, variant
#include <vector> // for vector<>::iterator, vector
#include "libnix-copy-paste.hh" #include "libnix-copy-paste.hh"
@ -119,7 +109,7 @@ Out::Out(Out & o, const std::string & start, const std::string & end, LinePolicy
Value evaluateValue(Context & ctx, Value & v) Value evaluateValue(Context & ctx, Value & v)
{ {
ctx.state.forceValue(v, [&]() { return v.determinePos(nix::noPos); }); ctx.state.forceValue(v, v.determinePos(nix::noPos));
if (ctx.autoArgs.empty()) { if (ctx.autoArgs.empty()) {
return v; return v;
} }
@ -133,8 +123,8 @@ bool isOption(Context & ctx, const Value & v)
if (v.type() != nAttrs) { if (v.type() != nAttrs) {
return false; return false;
} }
const auto & actualType = v.attrs->find(ctx.underscoreType); const auto & actualType = v.attrs()->find(ctx.underscoreType);
if (actualType == v.attrs->end()) { if (actualType == v.attrs()->end()) {
return false; return false;
} }
try { try {
@ -142,7 +132,7 @@ bool isOption(Context & ctx, const Value & v)
if (evaluatedType.type() != nString) { if (evaluatedType.type() != nString) {
return false; return false;
} }
return static_cast<std::string>(evaluatedType.string.s) == "option"; return evaluatedType.string_view() == "option";
} catch (Error &) { } catch (Error &) {
return false; return false;
} }
@ -152,17 +142,17 @@ bool isOption(Context & ctx, const Value & v)
// These are needed for paths like: // These are needed for paths like:
// fileSystems."/".fsType // fileSystems."/".fsType
// systemd.units."dbus.service".text // systemd.units."dbus.service".text
std::string quoteAttribute(const std::string & attribute) std::string quoteAttribute(const std::string_view & attribute)
{ {
if (isVarName(attribute)) { if (isVarName(attribute)) {
return attribute; return std::string(attribute);
} }
std::ostringstream buf; std::ostringstream buf;
printStringValue(buf, attribute.c_str()); nix::printLiteralString(buf, attribute);
return buf.str(); return buf.str();
} }
const std::string appendPath(const std::string & prefix, const std::string & suffix) const std::string appendPath(const std::string & prefix, const std::string_view & suffix)
{ {
if (prefix.empty()) { if (prefix.empty()) {
return quoteAttribute(suffix); return quoteAttribute(suffix);
@ -174,7 +164,7 @@ bool forbiddenRecursionName(const nix::Symbol symbol, const nix::SymbolTable & s
// note: this is created from a pointer // note: this is created from a pointer
// According to standard, it may never point to null, and hence attempts to check against nullptr are not allowed. // According to standard, it may never point to null, and hence attempts to check against nullptr are not allowed.
// However, at the time of writing, I am not certain about the full implications of the omission of a nullptr check here. // However, at the time of writing, I am not certain about the full implications of the omission of a nullptr check here.
const std::string & name = symbolTable[symbol]; const std::string_view & name = symbolTable[symbol];
// TODO: figure out why haskellPackages is not recursed here // TODO: figure out why haskellPackages is not recursed here
return (!name.empty() && name[0] == '_') || name == "haskellPackages"; return (!name.empty() && name[0] == '_') || name == "haskellPackages";
} }
@ -198,34 +188,35 @@ void recurse(const std::function<bool(const std::string & path, std::variant<Val
if (evaluated_value.type() != nAttrs) { if (evaluated_value.type() != nAttrs) {
return; return;
} }
for (const auto & child : evaluated_value.attrs->lexicographicOrder(ctx.state.symbols)) { for (const auto & child : evaluated_value.attrs()->lexicographicOrder(ctx.state.symbols)) {
if (forbiddenRecursionName(child->name, ctx.state.symbols)) { if (forbiddenRecursionName(child->name, ctx.state.symbols)) {
continue; continue;
} }
recurse(f, ctx, *child->value, appendPath(path, ctx.state.symbols[child->name])); std::string_view name = ctx.state.symbols[child->name];
recurse(f, ctx, *child->value, appendPath(path, name));
} }
} }
bool optionTypeIs(Context & ctx, Value & v, const std::string & soughtType) bool optionTypeIs(Context & ctx, Value & v, const std::string & soughtType)
{ {
try { try {
const auto & typeLookup = v.attrs->find(ctx.state.sType); const auto & typeLookup = v.attrs()->find(ctx.state.sType);
if (typeLookup == v.attrs->end()) { if (typeLookup == v.attrs()->end()) {
return false; return false;
} }
Value type = evaluateValue(ctx, *typeLookup->value); Value type = evaluateValue(ctx, *typeLookup->value);
if (type.type() != nAttrs) { if (type.type() != nAttrs) {
return false; return false;
} }
const auto & nameLookup = type.attrs->find(ctx.state.sName); const auto & nameLookup = type.attrs()->find(ctx.state.sName);
if (nameLookup == type.attrs->end()) { if (nameLookup == type.attrs()->end()) {
return false; return false;
} }
Value name = evaluateValue(ctx, *nameLookup->value); Value name = evaluateValue(ctx, *nameLookup->value);
if (name.type() != nString) { if (name.type() != nString) {
return false; return false;
} }
return name.string.s == soughtType; return name.string_view() == soughtType;
} catch (Error &) { } catch (Error &) {
return false; return false;
} }
@ -242,7 +233,7 @@ Value getSubOptions(Context & ctx, Value & option)
{ {
Value getSubOptions = evaluateValue(ctx, *findAlongAttrPath(ctx.state, "type.getSubOptions", ctx.autoArgs, option).first); Value getSubOptions = evaluateValue(ctx, *findAlongAttrPath(ctx.state, "type.getSubOptions", ctx.autoArgs, option).first);
if (getSubOptions.isLambda()) { if (getSubOptions.isLambda()) {
throw OptionPathError("Option's type.getSubOptions isn't a function"); throw OptionPathError(ctx.state, "Option's type.getSubOptions isn't a function");
} }
Value emptyString{}; Value emptyString{};
emptyString.mkString(""); emptyString.mkString("");
@ -260,40 +251,40 @@ struct FindAlongOptionPathRet
}; };
FindAlongOptionPathRet findAlongOptionPath(Context & ctx, const std::string & path) FindAlongOptionPathRet findAlongOptionPath(Context & ctx, const std::string & path)
{ {
Strings tokens = parseAttrPath(path); std::vector<Symbol> tokens = nix::parseAttrPath(ctx.state, path);
Value v = ctx.optionsRoot; Value v = ctx.optionsRoot;
std::string processedPath; std::string processedPath;
for (auto i = tokens.begin(); i != tokens.end(); i++) { for (auto i = tokens.begin(); i != tokens.end(); i++) {
const auto & attr = *i; const std::string_view attr = ctx.state.symbols[*i];
try { try {
bool lastAttribute = std::next(i) == tokens.end(); bool lastAttribute = std::next(i) == tokens.end();
v = evaluateValue(ctx, v); v = evaluateValue(ctx, v);
if (attr.empty()) { if (attr.empty()) {
throw OptionPathError("empty attribute name"); throw OptionPathError(ctx.state, "empty attribute name");
} }
if (isOption(ctx, v) && optionTypeIs(ctx, v, "submodule")) { if (isOption(ctx, v) && optionTypeIs(ctx, v, "submodule")) {
v = getSubOptions(ctx, v); v = getSubOptions(ctx, v);
} }
if (isOption(ctx, v) && isAggregateOptionType(ctx, v)) { if (isOption(ctx, v) && isAggregateOptionType(ctx, v)) {
auto subOptions = getSubOptions(ctx, v); auto subOptions = getSubOptions(ctx, v);
if (lastAttribute && subOptions.attrs->empty()) { if (lastAttribute && subOptions.attrs()->empty()) {
break; break;
} }
v = subOptions; v = subOptions;
// Note that we've consumed attr, but didn't actually use it. This is the path component that's looked // Note that we've consumed attr, but didn't actually use it. This is the path component that's looked
// up in the list or attribute set that doesn't name an option -- the "root" in "users.users.root.name". // up in the list or attribute set that doesn't name an option -- the "root" in "users.users.root.name".
} else if (v.type() != nAttrs) { } else if (v.type() != nAttrs) {
throw OptionPathError("Value is %s while a set was expected", showType(v)); throw OptionPathError(ctx.state, "Value is %s while a set was expected", showType(v));
} else { } else {
const auto & next = v.attrs->find(ctx.state.symbols.create(attr)); const auto & next = v.attrs()->find(ctx.state.symbols.create(attr));
if (next == v.attrs->end()) { if (next == v.attrs()->end()) {
throw OptionPathError("Attribute not found", attr, path); throw OptionPathError(ctx.state, "Attribute not found", attr, path);
} }
v = *next->value; v = *next->value;
} }
processedPath = appendPath(processedPath, attr); processedPath = appendPath(processedPath, attr);
} catch (OptionPathError & e) { } catch (OptionPathError & e) {
throw OptionPathError("At '%s' in path '%s': %s", attr, path, e.msg()); throw OptionPathError(ctx.state, "At '%s' in path '%s': %s", attr, path, e.msg());
} }
} }
return {v, processedPath}; return {v, processedPath};
@ -367,21 +358,23 @@ std::string describeError(const Error & e) { return "«error: " + e.msg() + "»"
void describeDerivation(Context & ctx, Out & out, Value v) void describeDerivation(Context & ctx, Out & out, Value v)
{ {
// Copy-pasted from nix/src/nix/repl.cc :( // Copy-pasted from nix/src/nix/repl.cc printDerivation() :(
std::optional<nix::StorePath> storePath = std::nullopt;
if (auto i = v.attrs()->get(ctx.state.sDrvPath)) {
nix::NixStringContext context;
storePath = ctx.state.coerceToStorePath(i->pos, *i->value, context, "while evaluating the drvPath of a derivation");
}
out << "«derivation "; out << "«derivation ";
Bindings::iterator i = v.attrs->find(ctx.state.sDrvPath); if (storePath) {
nix::NixStringContext strContext; out << " " << ctx.state.store->printStorePath(*storePath);
if (i != v.attrs->end()) }
out << ctx.state.store->printStorePath(ctx.state.coerceToStorePath(i->pos, *i->value, strContext, "while evaluating the drvPath of a derivation"));
else
out << "???";
out << "»"; out << "»";
} }
Value parseAndEval(EvalState & state, const std::string & expression, const std::string & path) Value parseAndEval(EvalState & state, const std::string & expression, const std::string & path)
{ {
Value v{}; Value v{};
state.eval(state.parseExprFromString(expression, nix::SourcePath(nix::CanonPath::fromCwd(path))), v); state.eval(state.parseExprFromString(expression, state.rootPath(".")), v);
return v; return v;
} }
@ -398,10 +391,10 @@ void printList(Context & ctx, Out & out, Value & v)
void printAttrs(Context & ctx, Out & out, Value & v, const std::string & path) void printAttrs(Context & ctx, Out & out, Value & v, const std::string & path)
{ {
Out attrsOut(out, "{", "}", v.attrs->size()); Out attrsOut(out, "{", "}", v.attrs()->size());
for (const auto & a : v.attrs->lexicographicOrder(ctx.state.symbols)) { for (const auto & a : v.attrs()->lexicographicOrder(ctx.state.symbols)) {
if (!forbiddenRecursionName(a->name, ctx.state.symbols)) { if (!forbiddenRecursionName(a->name, ctx.state.symbols)) {
const std::string name = ctx.state.symbols[a->name]; std::string_view name = ctx.state.symbols[a->name];
attrsOut << name << " = "; attrsOut << name << " = ";
printValue(ctx, attrsOut, *a->value, appendPath(path, name)); printValue(ctx, attrsOut, *a->value, appendPath(path, name));
attrsOut << ";" << Out::sep; attrsOut << ";" << Out::sep;
@ -409,9 +402,9 @@ void printAttrs(Context & ctx, Out & out, Value & v, const std::string & path)
} }
} }
void multiLineStringEscape(Out & out, const std::string & s) void multiLineStringEscape(Out & out, const std::string_view & s)
{ {
int i; size_t i;
for (i = 1; i < s.size(); i++) { for (i = 1; i < s.size(); i++) {
if (s[i - 1] == '$' && s[i] == '{') { if (s[i - 1] == '$' && s[i] == '{') {
out << "''${"; out << "''${";
@ -430,7 +423,7 @@ void multiLineStringEscape(Out & out, const std::string & s)
void printMultiLineString(Out & out, const Value & v) void printMultiLineString(Out & out, const Value & v)
{ {
std::string s = v.string.s; std::string_view s = v.string_view();
Out strOut(out, "''", "''", Out::MULTI_LINE); Out strOut(out, "''", "''", Out::MULTI_LINE);
std::string::size_type begin = 0; std::string::size_type begin = 0;
while (begin < s.size()) { while (begin < s.size()) {
@ -458,11 +451,11 @@ void printValue(Context & ctx, Out & out, std::variant<Value, std::exception_ptr
printList(ctx, out, v); printList(ctx, out, v);
} else if (v.type() == nAttrs) { } else if (v.type() == nAttrs) {
printAttrs(ctx, out, v, path); printAttrs(ctx, out, v, path);
} else if (v.type() == nString && std::string(v.string.s).find('\n') != std::string::npos) { } else if (v.type() == nString && std::string(v.string_view()).find('\n') != std::string::npos) {
printMultiLineString(out, v); printMultiLineString(out, v);
} else { } else {
ctx.state.forceValueDeep(v); ctx.state.forceValueDeep(v);
v.print(ctx.state.symbols, out.ostream); v.print(ctx.state, out.ostream);
} }
} catch (ThrownError & e) { } catch (ThrownError & e) {
if (e.msg() == "The option `" + path + "' was accessed but has no value defined. Try setting the option.") { if (e.msg() == "The option `" + path + "' was accessed but has no value defined. Try setting the option.") {
@ -560,8 +553,8 @@ void printOption(Context & ctx, Out & out, const std::string & path, Value & opt
void printListing(Context & ctx, Out & out, Value & v) void printListing(Context & ctx, Out & out, Value & v)
{ {
out << "This attribute set contains:\n"; out << "This attribute set contains:\n";
for (const auto & a : v.attrs->lexicographicOrder(ctx.state.symbols)) { for (const auto & a : v.attrs()->lexicographicOrder(ctx.state.symbols)) {
const std::string & name = ctx.state.symbols[a->name]; const std::string_view & name = ctx.state.symbols[a->name];
if (!name.empty() && name[0] != '_') { if (!name.empty() && name[0] != '_') {
out << name << "\n"; out << name << "\n";
} }
@ -630,7 +623,11 @@ int main(int argc, char ** argv)
nix::initGC(); nix::initGC();
nix::settings.readOnlyMode = true; nix::settings.readOnlyMode = true;
auto store = nix::openStore(); auto store = nix::openStore();
auto state = std::make_unique<EvalState>(myArgs.searchPath, store);
auto evalStore = myArgs.evalStoreUrl ? nix::openStore(*myArgs.evalStoreUrl)
: nix::openStore();
auto state = nix::make_ref<nix::EvalState>(
myArgs.lookupPath, evalStore, nix::fetchSettings, nix::evalSettings);
Value optionsRoot = parseAndEval(*state, optionsExpr, path); Value optionsRoot = parseAndEval(*state, optionsExpr, path);
Value configRoot = parseAndEval(*state, configExpr, path); Value configRoot = parseAndEval(*state, configExpr, path);
@ -646,7 +643,7 @@ int main(int argc, char ** argv)
print(ctx, out, arg); print(ctx, out, arg);
} }
ctx.state.printStats(); ctx.state.maybePrintStats();
return 0; return 0;
} }

View File

@ -14145,13 +14145,11 @@ with pkgs;
buildMozillaMach = opts: callPackage (import ../applications/networking/browsers/firefox/common.nix opts) { }; buildMozillaMach = opts: callPackage (import ../applications/networking/browsers/firefox/common.nix opts) { };
firefoxPackages = recurseIntoAttrs (callPackage ../applications/networking/browsers/firefox/packages.nix {}); firefox-unwrapped = callPackage ../applications/networking/browsers/firefox/packages/firefox.nix { };
firefox-beta-unwrapped = callPackage ../applications/networking/browsers/firefox/packages/firefox-beta.nix { };
firefox-unwrapped = firefoxPackages.firefox; firefox-devedition-unwrapped = callPackage ../applications/networking/browsers/firefox/packages/firefox-devedition.nix { };
firefox-beta-unwrapped = firefoxPackages.firefox-beta; firefox-esr-128-unwrapped = callPackage ../applications/networking/browsers/firefox/packages/firefox-esr-128.nix { };
firefox-devedition-unwrapped = firefoxPackages.firefox-devedition; firefox-esr-unwrapped = firefox-esr-128-unwrapped;
firefox-esr-128-unwrapped = firefoxPackages.firefox-esr-128;
firefox-esr-unwrapped = firefoxPackages.firefox-esr-128;
firefox = wrapFirefox firefox-unwrapped { }; firefox = wrapFirefox firefox-unwrapped { };
firefox-beta = wrapFirefox firefox-beta-unwrapped { firefox-beta = wrapFirefox firefox-beta-unwrapped {
@ -17034,9 +17032,7 @@ with pkgs;
deliantra-maps = callPackage ../games/deliantra/maps.nix { }; deliantra-maps = callPackage ../games/deliantra/maps.nix { };
deliantra-data = callPackage ../games/deliantra/data.nix { }; deliantra-data = callPackage ../games/deliantra/data.nix { };
ddnet = callPackage ../games/ddnet { ddnet = callPackage ../games/ddnet {};
inherit (darwin.apple_sdk.frameworks) Carbon Cocoa OpenGL Security;
};
ddnet-server = ddnet.override { buildClient = false; }; ddnet-server = ddnet.override { buildClient = false; };
devilutionx = callPackage ../games/devilutionx { devilutionx = callPackage ../games/devilutionx {
@ -18694,9 +18690,7 @@ with pkgs;
nix-linter = haskell.lib.compose.justStaticExecutables (haskellPackages.nix-linter); nix-linter = haskell.lib.compose.justStaticExecutables (haskellPackages.nix-linter);
nixos-option = callPackage ../tools/nix/nixos-option { nixos-option = callPackage ../tools/nix/nixos-option { };
nix = nixVersions.nix_2_18;
};
nix-pin = callPackage ../tools/package-management/nix-pin { }; nix-pin = callPackage ../tools/package-management/nix-pin { };