Merge remote-tracking branch 'origin/master' into staging-next

This commit is contained in:
K900 2025-06-17 21:18:01 +03:00
commit 259974ed6c
112 changed files with 1075 additions and 3611 deletions

View File

@ -879,399 +879,6 @@ stdenv.mkDerivation (finalAttrs: {
})
```
### buildDenoPackage {#javascript-buildDenoPackage}
`buildDenoPackage` allows you to package [Deno](https://deno.com/) projects in Nixpkgs without the use of an auto-generated dependencies file (as used in [node2nix](#javascript-node2nix)).
It works by utilizing Deno's cache functionality -- creating a reproducible cache that contains the dependencies of a project, and pointing Deno to it.
#### buildDenoDeps {#javascript-buildDenoPackage-buildDenoDeps}
For every `buildDenoPackage`, first, a [fixed output derivation](https://nix.dev/manual/nix/2.18/language/advanced-attributes.html#adv-attr-outputHash) is
created with all the dependencies mentioned in the `deno.lock`.
This works as follows:
1. They are installed using `deno install`.
1. All non-reproducible data is pruned.
1. The directories `.deno`, `node_modules` and `vendor` are copied to `$out`.
1. The output of the FOD is checked against the `denoDepsHash`.
1. The output is copied into the build of `buildDenoPackage`, which is not an FOD.
1. The dependencies are installed again using `deno install`, this time from the local cache only.
The `buildDenoDeps` derivation is in `passthru`, so it can be accessed from a `buildDenoPackage` derivation with `.denoDeps`
Related options:
*`denoDepsHash`* (String)
: The output hash of the `buildDenoDeps` fixed output derivation.
*`denoInstallFlags`* (Array of strings; optional)
: The Flags passed to `deno install`.
: _Default:_ `[ "--allow-scripts" "--frozen" "--cached-only" ]` for `buildDenoPackage`
: _Default:_ `[ "--allow-scripts" "--frozen" ]` for `buildDenoDeps` (`"--cached-only"` is filtered out)
::: {.tip}
If you receive errors like these:
```
error: The lockfile is out of date. Run `deno install --frozen=false`, or rerun with `--frozen=false` to update it.
```
or
```
error: Import '<url>' failed.
0: error sending request for url (<url>): client error (Connect): dns error: failed to lookup address information: Temporary failure in name resolution: failed to lookup address information:Temporary failure in name resolution
1: client error (Connect)
2: dns error: failed to lookup address information: Temporary failure in name resolution
3: failed to lookup address information: Temporary failure in name resolution
at file:///build/source/src/lib/helpers/verifyRequest.ts:2:21
build for <your-package> failed in buildPhase with exit code 1
```
or
```
error: Specifier not found in cache: "<url>", --cached-only is specified.
ERROR: deno failed to install dependencies
```
This can happen due to the `deno install` command deducing different packages than what the actual package needs.
To fix this, add the entrypoint to the install flags:
```nix
{ buildDenoPackage, nix-gitignore }:
buildDenoPackage {
pname = "myPackage";
version = "0.1.0";
denoDepsHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
src = nix-gitignore.gitignoreSource [ ] ./.;
binaryEntrypointPath = "main.ts";
denoInstallFlags = [
"--allow-scripts"
"--frozen"
"--cached-only"
"--entrypoint"
"<path/to/entrypoint/script>"
];
}
```
:::
#### Private registries {#javascript-buildDenoPackage-private-registries}
There are currently 2 options, which enable the use of private registries in a `buildDenoPackage` derivation.
*`denoDepsImpureEnvVars`* (Array of strings; optional)
: Names of impure environment variables passed to the `buildDenoDeps` derivation. They are forwarded to `deno install`.
: _Example:_ `[ "NPM_TOKEN" ]`
: It can be used to set tokens for private NPM registries (in a `.npmrc` file).
: In a single-user installation of Nix, you can put the variables into the environment, when running the nix build.
: In multi-user installations of Nix, it's necessary to set the environment variables in the nix-daemon, probably with systemd.
:::{.example}
##### configure nix-daemon {#javascript-buildDenoPackage-private-registries-daemon-example}
In NixOS:
```nix
# configuration.nix
{
config,
lib,
pkgs,
...
}:
{
systemd.services.nix-daemon.environment.NPM_TOKEN = "<token>";
}
```
In other Linux distributions use
```
$ sudo systemctl edit nix-daemon
$ sudo systemctl cat nix-daemon
$ sudo systemctl restart nix-daemon
```
:::
*`denoDepsInjectedEnvVars`* (Attrset; optional)
: Environment variables as key value pairs. They are forwarded to `deno install`.
: _Example:_ `{ "NPM_TOKEN" = "<token>"; }`
: It can be used to set tokens for private NPM registries (in a `.npmrc` file).
You could pass these tokens from the Nix CLI with `--arg`,
however this can hurt the reproducibility of your builds and such an injected
token will also need to be injected in every build that depends on this build.
:::{.example}
##### example `.npmrc` {#javascript-buildDenoPackage-private-registries-npmrc-example}
```ini
@<scope>:registry=https://<domain>/<path to private registry>
//<domain>/<path to private registry>:_authToken=${NPM_TOKEN}
```
:::
::: {.caution}
Hardcoding a token into your NixOS configuration or some other nix build, will as a consequence write that token into `/nix/store`, which is considered world readable.
:::
::: {.note}
Neither approach is ideal. For `buildNpmPackage`, there exists a third
option called `sourceOverrides`, which allows the user to inject Nix packages into
the output `node_modules` folder.
Since a Nix build implicitly uses the SSH keys of the machine,
this offers a third option to access private packages.
But this creates the requirement, that the imported package is packaged with nix first,
and that the source code can be retrieved with SSH.
This is possible for Deno, too, albeit it not
completely analogous to `buildNpmPackage`'s solution.
However, it has not been implemented yet.
:::
#### Compile to binary {#javascript-buildDenoPackage-compile-to-binary}
It's possible to compile a Deno project to a single binary using `deno compile`.
The binary will be named like the `.name` property in `deno.json`, if available,
or the `name` attribute of the derivation.
:::{.caution}
When using packages with a `npm:` specifier, the resulting binary will not be reproducible.
See [this issue](https://github.com/denoland/deno/issues/29619) for more information.
:::
Related options:
*`hostPlatform`* (String; optional)
: The [host platform](#ssec-cross-platform-parameters) the binary is built for.
: _Default:_ `builtins.currentSystem`.
: _Supported values:_
- `"x86_64-darwin"`
- `"aarch64-darwin"`
- `"x86_64-linux"`
- `"aarch64-linux"`
*`denoCompileFlags`* (Array of string; optional)
: Flags passed to `deno compile [denoTaskFlags] ${binaryEntrypointPath} [extraCompileFlags]`.
*`extraCompileFlags`* (Array of string; optional)
: Flags passed to `deno compile [denoTaskFlags] ${binaryEntrypointPath} [extraCompileFlags]`.
*`binaryEntrypointPath`* (String or null; optional)
: If not `null`, a binary is created using the specified path as the entry point.
The binary is copied to `$out/bin` in the `installPhase`.
: _Default:_ `null`
: It's prefixed by `denoWorkspacePath`.
*`denortPackage`* (Derivation; optional)
: The package used as the Deno runtime, which is bundled with the JavaScript code to create the binary.
: _Default:_ `pkgs.denort`
: Don't use `pkgs.deno` for this, since that is the full Deno CLI, with all the development tooling.
: If you're cross compiling, this needs to be the `denort` of the `hostPlatform`.
::: {.note}
The binary will be dynamically linked and not executable on NixOS without [nix-ld](https://github.com/nix-community/nix-ld)
or [other methods](https://unix.stackexchange.com/questions/522822/different-methods-to-run-a-non-nixos-executable-on-nixos).
```nix
# configuration.nix
{
config,
lib,
pkgs,
...
}:
{
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
glibc
gcc-unwrapped
];
}
```
:::
:::{.example}
##### example binary build {#javascript-buildDenoPackage-compile-to-binary-example}
```nix
{ buildDenoPackage, nix-gitignore }:
buildDenoPackage {
pname = "myPackage";
version = "0.1.0";
denoDepsHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
src = nix-gitignore.gitignoreSource [ ] ./.;
binaryEntrypointPath = "main.ts";
}
```
:::
#### Create artifacts in the build {#javascript-buildDenoPackage-artifacts-in-build}
Instead of compiling to a binary, `deno task` can be executed inside the build
to produce some artifact, which can then be copied out in the `installPhase`.
Related options:
*`denoTaskScript`* (String; optional)
: The task in `deno.json` that's executed with `deno task`.
: _Default:_ `"build"`
*`denoTaskFlags`* (Array of strings; optional)
: The flags passed to `deno task [denoTaskFlags] ${denoTaskScript} [extraTaskFlags]`.
*`extraTaskFlags`* (Array of strings; optional)
: The flags passed to `deno task [denoTaskFlags] ${denoTaskScript} [extraTaskFlags]`.
*`denoTaskPrefix`* (String; optional)
: An unquoted string injected before `deno task`.
*`denoTaskSuffix`* (String; optional)
: An unquoted string injected after `deno task` and all its flags. For example to pipe stdout to a file.
:::{.example}
##### example artifact build {#javascript-buildDenoPackage-artifacts-in-build-example}
`deno.json`
```json
{
"tasks": {
"build": "deno run --allow-all main.ts"
}
}
```
```nix
{ buildDenoPackage, nix-gitignore }:
buildDenoPackage {
pname = "myPackage";
version = "0.1.0";
denoDepsHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
src = nix-gitignore.gitignoreSource [ ] ./.;
denoTaskSuffix = ">out.txt";
installPhase = ''
cp ./out.txt $out
'';
}
```
:::
#### Workspaces {#javascript-buildDenoPackage-workspaces}
Deno's workspaces are supported.
To make them work, the whole project needs to be added as source, since the `deno.lock`
is always in the root of the project and contains all dependencies.
This means a build with only the required dependencies of a workspace is not possible.
Also, the `denoDepsHash` for all workspaces is the same, since they
all share the same dependencies.
When [running a task inside the build](#javascript-buildDenoPackage-artifacts-in-build),
`denoWorkspacePath` can be used to let the task run inside a workspace.
When [compiling to a binary](#javascript-buildDenoPackage-compile-to-binary),
`binaryEntrypointPath` is prefixed by `denoWorkspacePath`.
Related options:
*`denoWorkspacePath`* (String; optional)
: The path to a workspace.
:::{.example}
##### example workspaces {#javascript-buildDenoPackage-workspaces-example}
```nix
{ buildDenoPackage, nix-gitignore }:
rec {
sub1 = buildDenoPackage {
pname = "sub1";
version = "0.1.0";
denoDepsHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
src = nix-gitignore.gitignoreSource [ ] ./.;
denoWorkspacePath = "./sub1";
denoTaskFlags = [
"--text"
"sub1"
];
denoTaskSuffix = ">out.txt";
installPhase = ''
cp out.txt $out
'';
};
sub2 = buildDenoPackage {
# Note that we are reusing denoDeps and src,
# since they must be the same for both workspaces.
inherit (sub1) denoDeps src;
pname = "sub2";
version = "0.1.0";
denoWorkspacePath = "./sub2";
binaryEntrypointPath = "./main.ts";
};
}
```
:::
#### Other Options {#javascript-buildDenoPackage-other-options}
*`denoDir`* (String; optional)
: `DENO_DIR` will be set to this value for all `deno` commands.
*`denoFlags`* (Array of string; optional)
: The flags passed to all `deno` commands.
*`denoPackage`* (Derivation; optional)
: The Deno CLI used for all `deno` commands inside the build.
: _Default:_ `pkgs.deno`
## Outside Nixpkgs {#javascript-outside-nixpkgs}
There are some other tools available, which are written in the Nix language.

View File

@ -3390,42 +3390,6 @@
"javascript-nix-npm-buildpackage-pitfalls": [
"index.html#javascript-nix-npm-buildpackage-pitfalls"
],
"javascript-buildDenoPackage-workspaces-example": [
"index.html#javascript-buildDenoPackage-workspaces-example"
],
"javascript-buildDenoPackage-private-registries": [
"index.html#javascript-buildDenoPackage-private-registries"
],
"javascript-buildDenoPackage-buildDenoDeps": [
"index.html#javascript-buildDenoPackage-buildDenoDeps"
],
"javascript-buildDenoPackage-artifacts-in-build": [
"index.html#javascript-buildDenoPackage-artifacts-in-build"
],
"javascript-buildDenoPackage-artifacts-in-build-example": [
"index.html#javascript-buildDenoPackage-artifacts-in-build-example"
],
"javascript-buildDenoPackage-private-registries-daemon-example": [
"index.html#javascript-buildDenoPackage-private-registries-daemon-example"
],
"javascript-buildDenoPackage-private-registries-npmrc-example": [
"index.html#javascript-buildDenoPackage-private-registries-npmrc-example"
],
"javascript-buildDenoPackage-compile-to-binary-example": [
"index.html#javascript-buildDenoPackage-compile-to-binary-example"
],
"javascript-buildDenoPackage-workspaces": [
"index.html#javascript-buildDenoPackage-workspaces"
],
"javascript-buildDenoPackage": [
"index.html#javascript-buildDenoPackage"
],
"javascript-buildDenoPackage-other-options": [
"index.html#javascript-buildDenoPackage-other-options"
],
"javascript-buildDenoPackage-compile-to-binary": [
"index.html#javascript-buildDenoPackage-compile-to-binary"
],
"language-julia": [
"index.html#language-julia"
],

View File

@ -551,8 +551,6 @@
- `ddclient` was updated from 3.11.2 to 4.0.0 [Release notes](https://github.com/ddclient/ddclient/releases/tag/v4.0.0)
- `buildDenoPackage` was added [see docs](https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/javascript.section.md#avascript-buildDenoPackage) for more details
## Nixpkgs Library {#sec-nixpkgs-release-25.05-lib}
### Breaking changes {#sec-nixpkgs-release-25.05-lib-breaking}

View File

@ -1648,6 +1648,12 @@
github = "angaz";
githubId = 10219618;
};
angelodlfrtr = {
name = "Angelo Delefortrie";
email = "angelo.delefortrie@gmail.com";
github = "angelodlfrtr";
githubId = 5405598;
};
angristan = {
email = "angristan@pm.me";
github = "angristan";
@ -11626,6 +11632,13 @@
githubId = 110620;
name = "Jevin Maltais";
};
jezcope = {
email = "j.cope@erambler.co.uk";
github = "jezcope";
githubId = 457628;
name = "Jez Cope";
keys = [ { fingerprint = "D9DA 3E47 E8BD 377D A317 B3D0 9E42 CE07 1C45 59D1"; } ];
};
jfchevrette = {
email = "jfchevrette@gmail.com";
github = "jfchevrette";
@ -20068,6 +20081,12 @@
githubId = 24578572;
name = "Blake North";
};
powwu = {
name = "powwu";
email = "hello@powwu.sh";
github = "powwu";
githubId = 20643401;
};
poz = {
name = "Jacek Poziemski";
email = "poz@poz.pet";

View File

@ -57,7 +57,7 @@
users.users.alice.extraGroups = [ "wheel" ];
users.users.bob.extraGroups = [ "wheel" ];
# Disable sudo for root to ensure sudo isn't called without `--use-remote-sudo`
# Disable sudo for root to ensure sudo isn't called without `--sudo`
security.sudo.extraRules = lib.mkForce [
{
groups = [ "wheel" ];
@ -170,20 +170,20 @@
# Ensure sudo is disabled for root
target.fail("sudo true")
# This test also ensures that sudo is not called without --use-remote-sudo
# This test also ensures that sudo is not called without --sudo
with subtest("Deploy to root@target"):
deployer.succeed("nixos-rebuild switch -I nixos-config=/root/configuration-1.nix --target-host root@target &>/dev/console")
target_hostname = deployer.succeed("ssh alice@target cat /etc/hostname").rstrip()
assert target_hostname == "config-1-deployed", f"{target_hostname=}"
with subtest("Deploy to alice@target with passwordless sudo"):
deployer.succeed("nixos-rebuild switch -I nixos-config=/root/configuration-2.nix --target-host alice@target --use-remote-sudo &>/dev/console")
deployer.succeed("nixos-rebuild switch -I nixos-config=/root/configuration-2.nix --target-host alice@target --sudo &>/dev/console")
target_hostname = deployer.succeed("ssh alice@target cat /etc/hostname").rstrip()
assert target_hostname == "config-2-deployed", f"{target_hostname=}"
with subtest("Deploy to bob@target with password based sudo"):
# TODO: investigate why --ask-sudo-password from nixos-rebuild-ng is not working here
deployer.succeed(r'${lib.optionalString withNg "NIX_SSHOPTS=-t "}passh -c 3 -C -p ${nodes.target.users.users.bob.password} -P "\[sudo\] password" nixos-rebuild switch -I nixos-config=/root/configuration-3.nix --target-host bob@target --use-remote-sudo &>/dev/console')
deployer.succeed(r'${lib.optionalString withNg "NIX_SSHOPTS=-t "}passh -c 3 -C -p ${nodes.target.users.users.bob.password} -P "\[sudo\] password" nixos-rebuild switch -I nixos-config=/root/configuration-3.nix --target-host bob@target --sudo &>/dev/console')
target_hostname = deployer.succeed("ssh alice@target cat /etc/hostname").rstrip()
assert target_hostname == "config-3-deployed", f"{target_hostname=}"

View File

@ -56,13 +56,13 @@
stdenv.mkDerivation rec {
pname = "mixxx";
version = "2.5.1";
version = "2.5.2";
src = fetchFromGitHub {
owner = "mixxxdj";
repo = "mixxx";
rev = version;
hash = "sha256-s66XrcMGgA8KvBDxljg95nbKW1pIv8rJJ+DyxirHwDo=";
hash = "sha256-dKk3n3KDindnLbON52SW5h4cz96WVi0OPjwA27HqQCI=";
};
nativeBuildInputs = [

View File

@ -190,7 +190,7 @@ stdenv.mkDerivation (finalAttrs: {
PLUG=$vim/share/vim-plugins/notmuch/plugin/notmuch.vim
cat >> $PLUG << EOF
let \$GEM_PATH=\$GEM_PATH . ":${finalAttrs.passthru.gemEnv}/${ruby.gemPath}"
let \$RUBYLIB=\$RUBYLIB . ":$vim/${ruby.libPath}/${ruby.system}"
let \$RUBYLIB=\$RUBYLIB . ":$out/${ruby.libPath}/${ruby.system}"
if has('nvim')
EOF
for gem in ${finalAttrs.passthru.gemEnv}/${ruby.gemPath}/gems/*/lib; do

View File

@ -39,11 +39,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "gnunet";
version = "0.24.1";
version = "0.24.2";
src = fetchurl {
url = "mirror://gnu/gnunet/gnunet-${finalAttrs.version}.tar.gz";
hash = "sha256-xPj50l06APgHCVg7h6qDEtAUVAkLc6QTtD7H7HwHujk=";
hash = "sha256-Lk5KkH2UJ/DD3U1nlczq9yzPOX6dyWH2DtvvMAb2r0c=";
};
enableParallelBuilding = true;

View File

@ -1,172 +0,0 @@
# NOTE: much of this structure is inspired from https://github.com/NixOS/nixpkgs/tree/fff29a3e5f7991512e790617d1a693df5f3550f6/pkgs/build-support/node
{
stdenvNoCC,
deno,
denort,
diffutils,
zip,
jq,
fetchDenoDeps,
buildPackages,
lib,
}:
{
name ? "${args.pname}-${args.version}",
src ? null,
# The output hash of the dependencies for this project.
denoDepsHash ? lib.fakeHash,
# The host platform, the output binary is compiled for.
hostPlatform ? stdenvNoCC.hostPlatform.system,
# A list of strings, which are names of impure env vars passed to the deps build.
# Example:
# `[ "NPM_TOKEN" ]`
# They will be forwarded to `deno install`.
# It can be used to set tokens for private NPM registries (in an `.npmrc` file).
# In multi user installations of Nix, you need to set the env vars in the daemon (probably with systemd).
# In nixos: `systemd.services.nix-daemon.environment.NPM_TOKEN = "<token>";`
denoDepsImpureEnvVars ? [ ],
# An attr set with env vars as key value pairs.
# Example:
# `{ "NPM_TOKEN" = "<token>"; }`
# They will be forwarded to `deno install`.
# It can be used to set tokens for private NPM registries (in an `.npmrc` file).
# You could pass these tokens from the cli with `--arg` (this can make your builds painful).
denoDepsInjectedEnvVars ? { },
# TODO: source overrides like in buildNpmPackage, i.e. injecting nix packages into the denoDeps
# this is more involved, since they can't directly be injected into the fixed output derivation
# of fetchDenoDeps. Instead we need to patch the lock file and remove the packages we intend to
# inject, then we need to build the rest of the packages like before and in a
# second step create normal derivation with the injected packages.
# then the two need to be merged into a single denoDeps derivation and finally the lock file needs
# to be reverted back to it's original form.
# It is possible to manipulate the registry.json files of the injected packages so that deno accepts them as is.
denoDeps ? fetchDenoDeps {
inherit
src
denoDepsInjectedEnvVars
denoDepsImpureEnvVars
denoFlags
denoDir
;
denoInstallFlags = builtins.filter (e: e != "--cached-only") denoInstallFlags;
name = "${name}-deno-deps";
hash = denoDepsHash;
},
# The package used for every deno command in the build
denoPackage ? deno,
# The package used as the runtime that is bundled with the the src to create the binary.
denortPackage ? denort,
# The script to run to build the project.
# You still need to specify in the installPhase, what artifacts to copy to `$out`.
denoTaskScript ? "build",
# If not null, create a binary using the specified path as the entrypoint,
# copy it to `$out/bin` in installPhase and fix it in fixupPhase.
binaryEntrypointPath ? null,
# Flags to pass to all deno commands.
denoFlags ? [ ],
# Flags to pass to `deno task [denoTaskFlags] ${denoTaskScript}`.
denoTaskFlags ? [ ],
# Flags to pass to `deno compile [denoTaskFlags] ${binaryEntrypointPath}`.
denoCompileFlags ? [ ],
# Flags to pass to `deno install [denoInstallFlags]`.
denoInstallFlags ? [
"--allow-scripts"
"--frozen"
"--cached-only"
],
# Flags to pass to `deno task [denoTaskFlags] ${denoTaskScript} [extraTaskFlags]`.
extraTaskFlags ? [ ],
# Flags to pass to `deno compile [denoTaskFlags] ${binaryEntrypointPath} [extraCompileFlags]`.
extraCompileFlags ? [ ],
nativeBuildInputs ? [ ],
dontFixup ? true,
# Custom denoConfigHook
denoConfigHook ? null,
# Custom denoBuildHook
denoBuildHook ? null,
# Custom denoInstallHook
denoInstallHook ? null,
# Path to deno workspace, where the denoTaskScript should be run
denoWorkspacePath ? null,
# Unquoted string injected before `deno task`
denoTaskPrefix ? "",
# Unquoted string injected after `deno task` and all its flags
denoTaskSuffix ? "",
# Used as the name of the local DENO_DIR
denoDir ? "./.deno",
...
}@args:
let
denoFlags_ = builtins.concatStringsSep " " denoFlags;
denoTaskFlags_ = builtins.concatStringsSep " " denoTaskFlags;
denoCompileFlags_ = builtins.concatStringsSep " " denoCompileFlags;
denoInstallFlags_ = builtins.concatStringsSep " " denoInstallFlags;
extraTaskFlags_ = builtins.concatStringsSep " " extraTaskFlags;
extraCompileFlags_ = builtins.concatStringsSep " " extraCompileFlags;
args' = builtins.removeAttrs args [ "denoDepsInjectedEnvVars" ];
denoHooks =
(buildPackages.denoHooks.override {
denort = denortPackage;
})
{
inherit denoTaskSuffix denoTaskPrefix binaryEntrypointPath;
};
systemLookupTable = {
"x86_64-darwin" = "x86_64-apple-darwin";
"arm64-darwin" = "aarch64-apple-darwin";
"aarch64-darwin" = "aarch64-apple-darwin";
"x86_64-linux" = "x86_64-unknown-linux-gnu";
"arm64-linux" = "aarch64-unknown-linux-gnu";
"aarch64-linux" = "aarch64-unknown-linux-gnu";
};
hostPlatform_ =
if builtins.hasAttr hostPlatform systemLookupTable then
systemLookupTable."${hostPlatform}"
else
(lib.systems.elaborate hostPlatform).config;
in
stdenvNoCC.mkDerivation (
args'
// {
inherit
name
denoDeps
src
denoFlags_
denoTaskFlags_
denoCompileFlags_
denoInstallFlags_
extraTaskFlags_
extraCompileFlags_
binaryEntrypointPath
hostPlatform_
denoWorkspacePath
denoTaskScript
;
nativeBuildInputs = nativeBuildInputs ++ [
# Prefer passed hooks
(if denoConfigHook != null then denoConfigHook else denoHooks.denoConfigHook)
(if denoBuildHook != null then denoBuildHook else denoHooks.denoBuildHook)
(if denoInstallHook != null then denoInstallHook else denoHooks.denoInstallHook)
denoPackage
diffutils
zip
jq
];
DENO_DIR = denoDir;
dontFixup = if binaryEntrypointPath != null then false else dontFixup;
passthru = {
inherit denoDeps;
};
meta = (args.meta or { }) // {
platforms = args.meta.platforms or denoPackage.meta.platforms;
};
}
)

View File

@ -1,29 +0,0 @@
{
makeSetupHook,
denort,
lib,
}:
{
denoTaskSuffix,
denoTaskPrefix,
binaryEntrypointPath,
}:
{
denoConfigHook = makeSetupHook {
name = "deno-config-hook";
substitutions = {
denortBinary = lib.optionalString (binaryEntrypointPath != null) (lib.getExe denort);
};
} ./deno-config-hook.sh;
denoBuildHook = makeSetupHook {
name = "deno-build-hook";
substitutions = {
inherit denoTaskSuffix denoTaskPrefix;
};
} ./deno-build-hook.sh;
denoInstallHook = makeSetupHook {
name = "deno-install-hook";
} ./deno-install-hook.sh;
}

View File

@ -1,58 +0,0 @@
# shellcheck shell=bash
denoBuildHook() {
echo "Executing denoBuildHook"
runHook preBuild
if [ -n "${binaryEntrypointPath-}" ]; then
echo "Creating binary"
package_name=$(jq -r '.name' deno.json)
if [ "$package_name" == "null" ]; then
package_name="$name"
fi
deno compile \
--output "$package_name" \
--target "$hostPlatform_" \
$denoCompileFlags \
$denoFlags \
"${denoWorkspacePath+$denoWorkspacePath/}$binaryEntrypointPath"
$extraCompileFlags \
elif [ -n "${denoTaskScript-}" ]; then
if ! @denoTaskPrefix@ \
deno task \
${denoWorkspacePath+--cwd=$denoWorkspacePath} \
$denoTaskFlags \
$denoFlags \
"$denoTaskScript" \
$extraTaskFlags \
@denoTaskSuffix@; then
echo
echo 'ERROR: `deno task` failed'
echo
echo "Here are a few things you can try, depending on the error:"
echo "1. Make sure your task script ($denoTaskScript) exists"
echo
exit 1
fi
else
echo
echo "ERROR: nothing to do in buildPhase"
echo "Specify either 'binaryEntrypointPath' or 'denoTaskScript' or override 'buildPhase'"
echo
exit 1
fi
runHook postBuild
echo "Finished denoBuildHook"
}
if [ -z "${buildPhase-}" ]; then
buildPhase=denoBuildHook
fi

View File

@ -1,108 +0,0 @@
# shellcheck shell=bash
denoConfigHook() {
echo "Executing denoConfigHook"
if [ -z "${denoDeps-}" ]; then
echo
echo "ERROR: no dependencies were specified"
echo 'Hint: set `denoDeps` if using these hooks individually. If this is happening with `buildDenoPackage`, please open an issue.'
echo
exit 1
fi
local -r cacheLockfile="$denoDeps/deno.lock"
local -r srcLockfile="$PWD/deno.lock"
echo "Validating consistency between $srcLockfile and $cacheLockfile"
if ! diff "$srcLockfile" "$cacheLockfile"; then
# If the diff failed, first double-check that the file exists, so we can
# give a friendlier error msg.
if ! [ -e "$srcLockfile" ]; then
echo
echo "ERROR: Missing deno.lock from src. Expected to find it at: $srcLockfile"
echo
exit 1
fi
if ! [ -e "$cacheLockfile" ]; then
echo
echo "ERROR: Missing lockfile from cache. Expected to find it at: $cacheLockfile"
echo
exit 1
fi
echo
echo "ERROR: denoDepsHash is out of date"
echo
echo "The deno.lock in src is not the same as the in $denoDeps."
echo
echo "To fix the issue:"
echo '1. Use `lib.fakeHash` as the denoDepsHash value'
echo "2. Build the derivation and wait for it to fail with a hash mismatch"
echo "3. Copy the 'got: sha256-' value back into the denoDepsHash field"
echo
exit 1
fi
# NOTE: we need to use vendor in the build too, since we used it for the deps
useVendor() {
jq '.vendor = true' deno.json >temp.json &&
rm -f deno.json &&
mv temp.json deno.json
}
echo "Adding vendor to deno.json"
useVendor
echo "Installing dependencies"
export DENO_DIR="$(pwd)"/"$DENO_DIR"
installDeps() {
if [[ -d "$denoDeps/.deno" ]]; then
cp -r --no-preserve=mode "$denoDeps/.deno" "$DENO_DIR"
fi
if [[ -d "$denoDeps/vendor" ]]; then
cp -r --no-preserve=mode "$denoDeps/vendor" ./vendor
fi
if [[ -d "$denoDeps/node_modules" ]]; then
cp -r --no-preserve=mode "$denoDeps/node_modules" ./node_modules
fi
}
installDeps
if ! deno install $denoInstallFlags_ $denoFlags_; then
echo
echo "ERROR: deno failed to install dependencies"
echo
exit 1
fi
installDenort() {
version="$(deno --version | head -1 | awk '{print $2}')"
zipfile=denort-"$hostPlatform_".zip
dir="$DENO_DIR"/dl/release/v"$version"
mkdir -p "$dir"
cp "@denortBinary@" ./denort
zip "$dir"/"$zipfile" ./denort
rm ./denort
}
if [ -n "${binaryEntrypointPath-}" ]; then
echo "Installing denort for binary build"
installDenort
fi
patchShebangs .deno
patchShebangs node_modules
patchShebangs vendor
echo "Finished denoConfigHook"
}
postPatchHooks+=(denoConfigHook)

View File

@ -1,32 +0,0 @@
# shellcheck shell=bash
denoInstallHook() {
echo "Executing denoInstallHook"
runHook preInstall
if [ -n "${binaryEntrypointPath-}" ]; then
package_name=$(jq -r '.name' deno.json)
if [ "$package_name" == "null" ]; then
package_name="$name"
fi
mkdir -p "$out/bin"
cp "$package_name"* "$out/bin"
else
echo
echo "ERROR: nothing to do in installPhase"
echo "Specify either 'binaryEntrypointPath' or override 'installPhase'"
echo
exit 1
fi
runHook postInstall
echo "Finished denoInstallHook"
}
if [ -z "${dontDenoInstall-}" ] && [ -z "${installPhase-}" ]; then
installPhase=denoInstallHook
fi

View File

@ -1,4 +0,0 @@
.deno/
vendor/
node_modules/
.direnv

View File

@ -1,185 +0,0 @@
# NOTE: much of this structure is inspired from https://github.com/NixOS/nixpkgs/tree/fff29a3e5f7991512e790617d1a693df5f3550f6/pkgs/build-support/node
{
lib,
stdenvNoCC,
deno,
jq,
cacert,
}:
{
fetchDenoDeps =
{
name ? "deno-deps",
src,
hash ? lib.fakeHash,
denoPackage ? deno,
denoFlags ? [ ],
denoInstallFlags ? [
"--allow-scripts"
"--frozen"
],
nativeBuildInputs ? [ ],
denoDepsImpureEnvVars ? [ ],
denoDepsInjectedEnvVars ? { },
denoDir ? "./.deno",
...
}@args:
let
hash_ =
if hash != "" then
{ outputHash = hash; }
else
{
outputHash = "";
outputHashAlgo = "sha256";
};
denoInstallFlags_ = builtins.concatStringsSep " " denoInstallFlags;
denoFlags_ = builtins.concatStringsSep " " denoFlags;
denoDepsInjectedEnvVarsString =
if denoDepsInjectedEnvVars != { } then
lib.attrsets.foldlAttrs (
acc: name: value:
"${acc} ${name}=${value}"
) "" denoDepsInjectedEnvVars
else
"";
# need to remove denoDepsInjectedEnvVars, since it's an attrset and
# stdenv.mkDerivation would try to convert it to string
args' = builtins.removeAttrs args [ "denoDepsInjectedEnvVars" ];
in
stdenvNoCC.mkDerivation (
args'
// {
inherit name src;
nativeBuildInputs = nativeBuildInputs ++ [
denoPackage
jq
];
DENO_DIR = denoDir;
buildPhase = ''
runHook preBuild
if [[ ! -e "deno.json" ]]; then
echo ""
echo "ERROR: deno.json required, but not found"
echo ""
exit 1
fi
if [[ ! -e "deno.lock" ]]; then
echo ""
echo "ERROR: deno.lock required, but not found"
echo ""
exit 1
fi
# NOTE: using vendor reduces the pruning effort a little
useVendor() {
jq '.vendor = true' deno.json >temp.json && \
rm -f deno.json && \
mv temp.json deno.json
}
useVendor
# uses $DENO_DIR
${denoDepsInjectedEnvVarsString} deno install ${denoInstallFlags_} ${denoFlags_}
echo "pruning non reproducible files"
# `node_modules` is used when there are install scripts in a dependencies' package.json.
# these install scripts can also require internet, so they should also be executed in this fetcher
pruneNonReproducibles() {
export tempDenoDir="$DENO_DIR"
# `registry.json` files can't just be deleted, else deno install won't work,
# but they contain non reproducible data,
# which needs to be pruned, leaving only the necessary data behind.
# This pruning is done with a helper script written in typescript and executed with deno
DENO_DIR=./extra_deno_cache deno run \
--lock="${./deno.lock}" \
--config="${./deno.json}" \
--allow-all \
"${./prune-registries.ts}" \
--lock-json="./deno.lock" \
--cache-path="$tempDenoDir" \
--vendor-path="./vendor"
# Keys in `registry.json` files are not deterministically sorted,
# so we do it here.
for file in $(find -L "$DENO_DIR" -name registry.json -type f); do
jq --sort-keys '.' "$file" >temp.json && \
rm -f "$file" && \
mv temp.json "$file"
done
# There are various small databases used by deno for caching that
# we can simply delete.
if [[ -d "./node_modules" ]]; then
find -L ./node_modules -name '*cache_v2-shm' -type f | xargs rm -f
find -L ./node_modules -name '*cache_v2-wal' -type f | xargs rm -f
find -L ./node_modules -name 'dep_analysis_cache_v2' -type f | xargs rm -f
find -L ./node_modules -name 'node_analysis_cache_v2' -type f | xargs rm -f
find -L ./node_modules -name v8_code_cache_v2 -type f | xargs rm -f
rm -f ./node_modules/.deno/.deno.lock.poll
# sometimes a .deno dir is slipped into a node_modules package
# it's unclear why. but it can just be deleted
find -L ./node_modules -name ".deno" -type d | sort -r | head -n-1 | xargs rm -rf
fi
rm -f "$DENO_DIR"/dep_analysis_cache_v2-shm
rm -f "$DENO_DIR"/dep_analysis_cache_v2-wal
rm -f "$DENO_DIR"/dep_analysis_cache_v2
}
pruneNonReproducibles
runHook postBuild
'';
installPhase = ''
runHook preInstall
if [[ -d "$DENO_DIR" ]]; then
mkdir -p $out/$DENO_DIR
cp -r --no-preserve=mode $DENO_DIR $out
fi
if [[ -d "./vendor" ]]; then
mkdir -p $out/vendor
cp -r --no-preserve=mode ./vendor $out
fi
if [[ -d "./node_modules" ]]; then
mkdir -p $out/node_modules
cp -r --no-preserve=mode ./node_modules $out
fi
cp ./deno.lock $out
runHook postInstall
'';
dontFixup = true;
outputHashMode = "recursive";
impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ denoDepsImpureEnvVars;
SSL_CERT_FILE =
if
(
hash_.outputHash == ""
|| hash_.outputHash == lib.fakeSha256
|| hash_.outputHash == lib.fakeSha512
|| hash_.outputHash == lib.fakeHash
)
then
"${cacert}/etc/ssl/certs/ca-bundle.crt"
else
"/no-cert-file.crt";
}
// hash_
);
}

View File

@ -1,8 +0,0 @@
{
"tasks": { "test": "deno test" },
"imports": {
"@std/assert": "jsr:@std/assert@1.0.13",
"@std/cli": "jsr:@std/cli@1.0.16",
"@std/fs": "jsr:@std/fs@1.0.16"
}
}

View File

@ -1,53 +0,0 @@
{
"version": "5",
"specifiers": {
"jsr:@std/assert@1.0.13": "1.0.13",
"jsr:@std/cli@1.0.16": "1.0.16",
"jsr:@std/fs@1.0.16": "1.0.16",
"jsr:@std/internal@^1.0.6": "1.0.7",
"jsr:@std/path@1.0.9": "1.0.9",
"jsr:@std/path@^1.0.8": "1.0.9",
"npm:@types/node@*": "22.15.15"
},
"jsr": {
"@std/assert@1.0.13": {
"integrity": "ae0d31e41919b12c656c742b22522c32fb26ed0cba32975cb0de2a273cb68b29",
"dependencies": [
"jsr:@std/internal"
]
},
"@std/cli@1.0.16": {
"integrity": "02df293099c35b9e97d8ca05f57f54bd1ee08134f25d19a4756b3924695f4b00"
},
"@std/fs@1.0.16": {
"integrity": "81878f62b6eeda0bf546197fc3daa5327c132fee1273f6113f940784a468b036",
"dependencies": [
"jsr:@std/path@^1.0.8"
]
},
"@std/internal@1.0.7": {
"integrity": "39eeb5265190a7bc5d5591c9ff019490bd1f2c3907c044a11b0d545796158a0f"
},
"@std/path@1.0.9": {
"integrity": "260a49f11edd3db93dd38350bf9cd1b4d1366afa98e81b86167b4e3dd750129e"
}
},
"npm": {
"@types/node@22.15.15": {
"integrity": "sha512-R5muMcZob3/Jjchn5LcO8jdKwSCbzqmPB6ruBxMcf9kbxtniZHP327s6C37iOfuw8mbKK3cAQa7sEl7afLrQ8A==",
"dependencies": [
"undici-types"
]
},
"undici-types@6.21.0": {
"integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="
}
},
"workspace": {
"dependencies": [
"jsr:@std/assert@1.0.13",
"jsr:@std/cli@1.0.16",
"jsr:@std/fs@1.0.16"
]
}
}

View File

@ -1,346 +0,0 @@
#!/usr/bin/env deno
import { parseArgs } from "@std/cli/parse-args";
import { walkSync } from "@std/fs/walk";
/**
* NOTE: The problem this script solves, is that in every npm dependency in the deno cache
* is a registry.json file, which serves as a sort of local registry cache for the deno cli.
* Such a file looks like this (with deno v2.1.4):
* ```json
* {
* "name": "@floating-ui/core",
* "versions": {
* "0.7.0": { ... },
* "1.6.0": { ... },
* "0.1.2": { ... },
* ...
* },
* "dist-tags": { "latest": "1.7.0" }
* }
* ```
* The deno cli will look into this file when called to look up if the required versions are there.
* The problem is that the available versions for a package change over time. The registry.json files
* need to be part of the fixed output derivation, which will eventually change the hash of the FOD,
* if all those unwanted versions aren't pruned.
*
* On top of that a similar thing happens for jsr packages in the vendor directory
* with `meta.json` files. These also need to be pruned.
* Such a file looks like this (with deno v2.1.4):
* ```json
* {
* "scope": "std",
* "name": "internal",
* "latest": "1.0.6",
* "versions": {
* "0.202.0": {},
* "1.0.1": {},
* "0.225.0": {
* "yanked": true
* },
* }
* ```
*/
export type PackageSpecifiers = {
[packageIdent: string]: string;
};
export type LockJson = {
specifiers: PackageSpecifiers;
version: string;
workspace: any;
[registry: string]: any;
};
export type Config = {
lockJson: LockJson;
cachePath: string;
vendorPath: string;
};
export type PackageInfo = {
full: string;
registry: string | undefined;
scope: string | undefined;
name: string;
version: string;
suffix: string | undefined;
};
export type PackagesByRegistry = {
[registry: string]: {
[packageName: string]: {
[version: string]: PackageInfo;
};
};
};
export type PathsByRegistry = {
[packageRegistry: string]: string[];
};
export type RegistryJson = {
"dist-tags": any;
"_deno.etag": string;
versions: { [version: string]: any };
name: string;
};
export type MetaJson = {
scope: string;
name: string;
latest: string;
versions: {
[version: string]: any;
};
};
export function getConfig(): Config {
const flags = parseArgs(Deno.args, {
string: ["lock-json", "cache-path", "vendor-path"],
});
if (!flags["lock-json"]) {
throw "--lock-json flag not set but required";
}
if (!flags["cache-path"]) {
throw "--cache-path flag not set but required";
}
if (!flags["vendor-path"]) {
throw "--vendor-path flag not set but required";
}
const lockJson = JSON.parse(
new TextDecoder("utf-8").decode(Deno.readFileSync(flags["lock-json"]))
);
if (!lockJson) {
throw `could not parse lockJson at ${flags["lock-json"]}`;
}
return {
lockJson,
cachePath: flags["cache-path"],
vendorPath: flags["vendor-path"],
};
}
export function getAllPackageRegistries(
specifiers: PackageSpecifiers
): Set<string> {
return Object.keys(specifiers).reduce((acc: Set<string>, v: string) => {
const s = v.split(":");
if (s.length !== 2) {
throw "unexpected registry format";
}
const registry = s[0];
acc.add(registry);
return acc;
}, new Set());
}
export function parsePackageSpecifier(packageSpecifier: string): PackageInfo {
const match =
/^((?<registry>.*):)?((?<scope>@.*?)\/)?(?<name>.*?)@(?<version>.*?)(?<suffix>_.*)?$/.exec(
packageSpecifier
);
if (
match !== null &&
match.groups?.name !== undefined &&
match.groups?.version !== undefined
) {
return {
// npm:@amazn/style-dictionary@4.2.4_prettier@3.5.3
full: match[0],
// npm
registry: match.groups?.registry,
// @amazn
scope: match.groups?.scope,
// style-dictionary
name: match.groups?.name,
// 4.2.4
version: match.groups?.version,
// _prettier@3.5.3
suffix: match.groups?.suffix,
};
}
throw "unexpected package specifier format";
}
export function getScopedName(name: string, scope?: string): string {
if (scope !== undefined) {
return `${scope[0] === "@" ? "" : "@"}${scope}/${name}`;
}
return name;
}
export function getAllPackagesByPackageRegistry(
lockJson: LockJson,
registries: Set<string>
): PackagesByRegistry {
const result: PackagesByRegistry = {};
for (const registry of Array.from(registries)) {
const packageInfosOfRegistries = Object.keys(lockJson[registry]).map(
parsePackageSpecifier
);
result[registry] = {};
for (const packageInfo of packageInfosOfRegistries) {
const scopedName = getScopedName(packageInfo.name, packageInfo.scope);
if (result[registry][scopedName] === undefined) {
result[registry][scopedName] = {};
}
result[registry][scopedName][packageInfo.version] = packageInfo;
}
}
return result;
}
export function findRegistryJsonPaths(
cachePath: string,
nonJsrPackages: PackagesByRegistry
): PathsByRegistry {
const result: PathsByRegistry = {};
for (const registry of Object.keys(nonJsrPackages)) {
const path = `${cachePath}/${registry}`;
const registryJsonPaths = Array.from(walkSync(path))
.filter((v) => v.name === "registry.json")
.map((v) => v.path);
result[registry] = registryJsonPaths;
}
return result;
}
export function pruneRegistryJson(
registryJson: RegistryJson,
nonJsrPackages: PackagesByRegistry,
registry: string
) {
const scopedName = registryJson.name;
const packageInfoByVersion = nonJsrPackages[registry][scopedName];
if (!packageInfoByVersion) {
throw `could not find key "${scopedName}" in\n${Object.keys(
nonJsrPackages[registry]
)}`;
}
const newRegistryJson: RegistryJson = {
...registryJson,
"_deno.etag": "",
"dist-tags": {},
versions: {},
};
for (const version of Object.keys(packageInfoByVersion)) {
newRegistryJson.versions[version] = registryJson.versions[version];
}
return newRegistryJson;
}
export function pruneRegistryJsonFiles(
nonJsrPackages: PackagesByRegistry,
registryJsonPathsByRegistry: PathsByRegistry
): void {
for (const [registry, paths] of Object.entries(registryJsonPathsByRegistry)) {
for (const path of paths) {
const registryJson: RegistryJson = JSON.parse(
new TextDecoder("utf-8").decode(Deno.readFileSync(path))
);
const newRegistryJson = pruneRegistryJson(
registryJson,
nonJsrPackages,
registry
);
Deno.writeFileSync(
path,
new TextEncoder().encode(JSON.stringify(newRegistryJson))
);
}
}
}
export function findMetaJsonPaths(
vendorPath: string,
jsrPackages: PackagesByRegistry
): PathsByRegistry {
const result: PathsByRegistry = {};
for (const registry of Object.keys(jsrPackages)) {
const path = `${vendorPath}`;
const metaJsonPaths = Array.from(walkSync(path))
.filter((v) => v.name === "meta.json")
.map((v) => v.path);
result[registry] = metaJsonPaths;
}
return result;
}
export function pruneMetaJson(
metaJson: MetaJson,
jsrPackages: PackagesByRegistry,
registry: string
): MetaJson {
const scopedName = getScopedName(metaJson.name, metaJson.scope);
const packageInfoByVersion = jsrPackages[registry][scopedName];
if (!packageInfoByVersion) {
throw `could not find key "${scopedName}" in\n${Object.keys(
jsrPackages[registry]
)}`;
}
const newMetaJson: MetaJson = {
...metaJson,
latest: "",
versions: {},
};
for (const version of Object.keys(packageInfoByVersion)) {
newMetaJson.versions[version] = metaJson.versions[version];
}
return newMetaJson;
}
export function pruneMetaJsonFiles(
jsrPackages: PackagesByRegistry,
metaJsonPathsByRegistry: PathsByRegistry
): void {
for (const [registry, paths] of Object.entries(metaJsonPathsByRegistry)) {
for (const path of paths) {
const metaJson: MetaJson = JSON.parse(
new TextDecoder("utf-8").decode(Deno.readFileSync(path))
);
const newMetaJson = pruneMetaJson(metaJson, jsrPackages, registry);
Deno.writeFileSync(
path,
new TextEncoder().encode(JSON.stringify(newMetaJson))
);
}
}
}
function main() {
const config = getConfig();
const registries = getAllPackageRegistries(config.lockJson.specifiers);
const packages = getAllPackagesByPackageRegistry(config.lockJson, registries);
const jsrPackages = {
jsr: structuredClone(packages.jsr),
} satisfies PackagesByRegistry;
delete packages.jsr;
const nonJsrPackages = packages;
const metaJsonpaths = findMetaJsonPaths(config.vendorPath, jsrPackages);
pruneMetaJsonFiles(jsrPackages, metaJsonpaths);
const registryJsonPaths = findRegistryJsonPaths(
config.cachePath,
nonJsrPackages
);
pruneRegistryJsonFiles(nonJsrPackages, registryJsonPaths);
}
if (import.meta.main) {
main();
}

View File

@ -1,7 +0,0 @@
let
pkgs = import ../../../../default.nix { };
in
pkgs.mkShell {
buildInputs = [ pkgs.deno ];
DENO_DIR = "./.deno";
}

View File

@ -1062,7 +1062,7 @@ rec {
// (optionalAttrs (extraPassthru != { } || src ? passthru) {
passthru = extraPassthru // src.passthru or { };
})
# Forward any additional arguments to the derviation
# Forward any additional arguments to the derivation
// (removeAttrs args [
"src"
"name"

View File

@ -23,13 +23,13 @@
stdenv.mkDerivation rec {
pname = "abaddon";
version = "0.2.1";
version = "0.2.2";
src = fetchFromGitHub {
owner = "uowuo";
repo = "abaddon";
rev = "v${version}";
hash = "sha256-FPhHy+4BmaoGrHGsc5o79Au9JcH5C+iWTYQYwnTLaUY=";
hash = "sha256-48lR1rIWMwLaTv+nIdqmQ3mHOayrC1P5OQuUb+URYh0=";
fetchSubmodules = true;
};

View File

@ -115,13 +115,13 @@ let
in
stdenv.mkDerivation rec {
pname = "airgeddon";
version = "11.41";
version = "11.50";
src = fetchFromGitHub {
owner = "v1s1t0r1sh3r3";
repo = "airgeddon";
tag = "v${version}";
hash = "sha256-+hJqaEjEy8woJKE+HKg3utNrZmGeAdd0YWi62HPLN/I=";
hash = "sha256-hy6q25hWGEFlih0IuwoqDRjbUk1/iShj6uY+mz6hlFU=";
};
strictDeps = true;

View File

@ -8,11 +8,11 @@
stdenv.mkDerivation rec {
pname = "alglib3";
version = "4.04.0";
version = "4.05.0";
src = fetchurl {
url = "https://www.alglib.net/translator/re/alglib-${version}.cpp.gpl.tgz";
sha256 = "sha256-nPHllbcr1Hi3RzyOqvkZtACLJT2Gutu8WlItFJpnIUQ=";
sha256 = "sha256-czgBhziKjAO17ZwXChsjOazIaNODRrGyswhc4j4/T9s=";
};
nativeBuildInputs = [

View File

@ -6,20 +6,20 @@
rustPlatform.buildRustPackage rec {
pname = "alioth";
version = "0.7.0";
version = "0.8.0";
src = fetchFromGitHub {
owner = "google";
repo = "alioth";
tag = "v${version}";
hash = "sha256-xFNX2cxmaw2H8D21qs6mnTMuSidmJ0xJ/b4pxdLTvow=";
hash = "sha256-7mQmyWOMEHg374mmYGJL8xhVWlYk1zKplpjc74wLoKw=";
};
# Checks use `debug_assert_eq!`
checkType = "debug";
useFetchCargoVendor = true;
cargoHash = "sha256-x2Abw/RVKpPx0EWyF3w0kywtd23A+NSNaHRVZ4oB1jI=";
cargoHash = "sha256-rAq3Ghg7zpiycQ8hNzn4Jz7cUCfwQ4aqtWxoVCg8MrE=";
separateDebugInfo = true;

View File

@ -0,0 +1,51 @@
{
lib,
stdenvNoCC,
fetchurl,
cpio,
xar,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "arq";
version = "7.35.1";
src = fetchurl {
url = "https://www.arqbackup.com/download/arqbackup/Arq${finalAttrs.version}.pkg";
hash = "sha256-xkrWH2r3DaxsBBdyu0Wj/qzjJaa9DTZCzEaB/nb2WyY=";
};
nativeBuildInputs = [
cpio
xar
];
unpackPhase = ''
runHook preUnpack
xar -xf $src
zcat client.pkg/Payload | cpio -i
runHook postUnpack
'';
installPhase = ''
mkdir -p $out
cp -R Applications $out
'';
dontBuild = true;
# Arq is notarized
dontFixup = true;
meta = {
changelog = "https://www.arqbackup.com/download/arqbackup/arq7_release_notes.html";
description = "Multi-cloud backup software for your Macs";
homepage = "https://www.arqbackup.com/";
license = lib.licenses.unfree;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
maintainers = [ lib.maintainers.Enzime ];
platforms = lib.platforms.darwin;
};
})

View File

@ -0,0 +1,37 @@
{
lib,
fetchFromGitHub,
rustPlatform,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "bagr";
version = "0.3.0";
src = fetchFromGitHub {
owner = "pwinckles";
repo = "bagr";
tag = "v${finalAttrs.version}";
hash = "sha256-tvo9/ywPhYgqj4i+o6lYOmrVnLcyciM7HPdT2dKerO8=";
};
cargoHash = "sha256-r4tgDPyLxTjq/sxNLvlX/2MePUfOwNgranQSSbgDtu0=";
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
versionCheckProgramArg = "--version";
meta = {
description = "Command line utility for interacting with BagIt bags (RFC 8493)";
homepage = "https://github.com/pwinckles/bagr";
license = lib.licenses.asl20;
mainProgram = "bagr";
maintainers = with lib.maintainers; [
jezcope
];
platforms = with lib.platforms; unix ++ windows;
};
})

View File

@ -16,13 +16,13 @@
stdenv.mkDerivation {
pname = "chawan";
version = "0-unstable-2025-05-25";
version = "0-unstable-2025-06-14";
src = fetchFromSourcehut {
owner = "~bptato";
repo = "chawan";
rev = "e571c8b1ede3a3c6dc4a5a4d0c6c8f48473076d2";
hash = "sha256-OBXc4jnB5Y+KXO9J7P1Z2HXkNCS+xnG+IGWw8wb66J8=";
rev = "288896b6f3da9bb6e4e24190d4163e031f8a2751";
hash = "sha256-/8pp1E4YAXXh8ORRHseIe48BIG14u8gNkmotA+CXPYY=";
};
patches = [ ./mancha-augment-path.diff ];

View File

@ -13,13 +13,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "darkly-qt${qtMajorVersion}";
version = "0.5.20";
version = "0.5.21";
src = fetchFromGitHub {
owner = "Bali10050";
repo = "Darkly";
tag = "v${finalAttrs.version}";
hash = "sha256-3/oJbf7QHaFyBnrEnZFpWgXbRc5wAFj9RZ7iQEBSZNw=";
hash = "sha256-1WErpDYTlMW/889Efe3OUM3uwt5w+EttjOGoBolBZvE=";
};
nativeBuildInputs = [

View File

@ -23,13 +23,13 @@ let
in
buildDartApplication rec {
pname = "dart-sass";
version = "1.89.1";
version = "1.89.2";
src = fetchFromGitHub {
owner = "sass";
repo = "dart-sass";
tag = version;
hash = "sha256-G9uiG7fTDTx9wVH0bV7BeY2TpTEtTHDd0+z/+kLZiwU=";
hash = "sha256-IDR00pxEKQ5DQM+q0P/iRnsH80ZUbokZhbnBoomy2oQ=";
};
pubspecLock = lib.importJSON ./pubspec.lock.json;

View File

@ -74,11 +74,11 @@
"dependency": "transitive",
"description": {
"name": "checked_yaml",
"sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff",
"sha256": "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.0.3"
"version": "2.0.4"
},
"cli_config": {
"dependency": "transitive",
@ -144,11 +144,11 @@
"dependency": "transitive",
"description": {
"name": "coverage",
"sha256": "4b8701e48a58f7712492c9b1f7ba0bb9d525644dd66d023b62e1fc8cdb560c8a",
"sha256": "aa07dbe5f2294c827b7edb9a87bba44a9c15a3cc81bc8da2ca19b37322d30080",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.14.0"
"version": "1.14.1"
},
"crypto": {
"dependency": "direct dev",
@ -324,11 +324,11 @@
"dependency": "direct dev",
"description": {
"name": "lints",
"sha256": "c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7",
"sha256": "a5e2b223cb7c9c8efdc663ef484fdd95bb243bff242ef5b13e26883547fce9a0",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "5.1.1"
"version": "6.0.0"
},
"logging": {
"dependency": "transitive",
@ -454,11 +454,11 @@
"dependency": "transitive",
"description": {
"name": "petitparser",
"sha256": "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646",
"sha256": "9436fe11f82d7cc1642a8671e5aa4149ffa9ae9116e6cf6dd665fc0653e3825c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.1.0"
"version": "7.0.0"
},
"pool": {
"dependency": "direct main",
@ -724,21 +724,21 @@
"dependency": "transitive",
"description": {
"name": "vm_service",
"sha256": "6f82e9ee8e7339f5d8b699317f6f3afc17c80a68ebef1bc0d6f52a678c14b1e6",
"sha256": "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "15.0.1"
"version": "15.0.2"
},
"watcher": {
"dependency": "direct main",
"description": {
"name": "watcher",
"sha256": "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104",
"sha256": "0b7fd4a0bbc4b92641dbf20adfd7e3fd1398fe17102d94b674234563e110088a",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.1.1"
"version": "1.1.2"
},
"web": {
"dependency": "transitive",
@ -784,11 +784,11 @@
"dependency": "transitive",
"description": {
"name": "xml",
"sha256": "b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226",
"sha256": "3202a47961c1a0af6097c9f8c1b492d705248ba309e6f7a72410422c05046851",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.5.0"
"version": "6.6.0"
},
"yaml": {
"dependency": "direct dev",
@ -802,6 +802,6 @@
}
},
"sdks": {
"dart": ">=3.7.0 <4.0.0"
"dart": ">=3.8.0 <4.0.0"
}
}

View File

@ -10,13 +10,13 @@
stdenv.mkDerivation rec {
pname = "decker";
version = "1.54";
version = "1.56";
src = fetchFromGitHub {
owner = "JohnEarnest";
repo = "Decker";
rev = "v${version}";
hash = "sha256-6rKfIMEWMig1LAaLk1eSUHnc2104FuN5wTVpf1SgCtg=";
hash = "sha256-b4Z+hQ7sQf8sdFXcX4+GA9Q8gJDUeb5LuVgrd3bY6vA=";
};
buildInputs = [

View File

@ -1,30 +0,0 @@
{
deno,
lib,
}:
deno.overrideAttrs (
final: prev: {
pname = "denort";
buildAndTestSubdir = "cli/rt";
postInstall = "";
installCheckPhase = "";
passthru = { };
meta = with lib; {
homepage = "https://deno.land/";
changelog = "https://github.com/denoland/deno/releases/tag/v${final.version}";
description = "Slim version of the deno runtime, usually bundled with deno projects into standalone binaries";
license = licenses.mit;
mainProgram = "denort";
maintainers = with maintainers; [
jk
ofalvai
];
platforms = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
};
}
)

View File

@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec {
pname = "doh-proxy-rust";
version = "0.9.11";
version = "0.9.12";
src = fetchCrate {
inherit version;
crateName = "doh-proxy";
hash = "sha256-h2LwxqyyBPAXRr6XOmcLEmbet063kkM1ledULp3M2ek=";
hash = "sha256-Q+SjUB9XQlT+r1bjKJooqJ095yp5PMqMAQhoo+kp238=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-eYJoHFIC0NF3OAbZXDWB57IOFC9JDV4IXHQgzIWMT04=";
cargoHash = "sha256-XEHeGduKsIFW0tXto8DcghzNYMGE/zkWY2cTg8ZcPcU=";
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
libiconv

View File

@ -6,11 +6,11 @@
stdenvNoCC.mkDerivation rec {
pname = "doulos-sil";
version = "6.200";
version = "7.000";
src = fetchzip {
url = "https://software.sil.org/downloads/r/doulos/DoulosSIL-${version}.zip";
hash = "sha256-kpbXJVAEQLr5HMFaE+8OgAYrMGQoetgMi0CcPn4a3Xw=";
hash = "sha256-i2M7YVBiLWUZETAZEesHdyQypoO5fbWHqhpizqVLB5E=";
};
installPhase = ''

View File

@ -12,7 +12,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "ente-web";
version = "1.0.10";
version = "1.1.0";
src = fetchFromGitHub {
owner = "ente-io";
@ -20,13 +20,13 @@ stdenv.mkDerivation (finalAttrs: {
sparseCheckout = [ "web" ];
tag = "photos-v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-WJz1Weh17DWH5qzMry1uacHBXY9ouIXWRzoiwzIsN0I=";
hash = "sha256-rHz/QlH3t+J2oz0s5LuWkgxGZmdiPFZXTuDI5yFajrA=";
};
sourceRoot = "${finalAttrs.src.name}/web";
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/web/yarn.lock";
hash = "sha256-9LC5WuS1CBj3vBacXUxJXyPgvZ/zfcihjZpCiH/8Aa0=";
hash = "sha256-9BumlPzvG6dmuoFGdCAALzKpJATA3ibb1SkLtofAasI=";
};
nativeBuildInputs = [

View File

@ -7,16 +7,16 @@
buildGoModule rec {
pname = "fabric-ai";
version = "1.4.196";
version = "1.4.209";
src = fetchFromGitHub {
owner = "danielmiessler";
repo = "fabric";
tag = "v${version}";
hash = "sha256-g2f8xpS+KA1USt7lArodTo7m7OXnzew2LSFKeVclQOE=";
hash = "sha256-kRPFTs3w5MhlCax81GrZ82GWLMTDUiyXOI9lSp4Fwkc=";
};
vendorHash = "sha256-xfNvmhHNYpanhZKT9o8kImzw4gzigpgc8ri9O1iOqwc=";
vendorHash = "sha256-GkAehT2oFG8cGe+PkceZios3ZG9S0CZs4L7slX+Dkck=";
# Fabric introduced plugin tests that fail in the nix build sandbox.
doCheck = false;

View File

@ -65,12 +65,12 @@
let
sources = {
x86_64-linux = fetchurl {
url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/9bcfe8ba/Feishu-linux_x64-7.36.11.deb";
sha256 = "sha256-iqEcwfF6z2jJ0TmFzDu2gf6eapHcJPaLSVESgtC9WUg=";
url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/91e64286/Feishu-linux_x64-7.42.17.deb";
sha256 = "sha256-Rsq+xQAyi7I1WcnkXzhPEgbUyfXU9XPVKIuv6Z9H5VA=";
};
aarch64-linux = fetchurl {
url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/484fc204/Feishu-linux_arm64-7.36.11.deb";
sha256 = "sha256-XTa5GOMBsiXI5IDhDQktSxdUfuvG7c2VWHuS76cFsqE=";
url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/49127814/Feishu-linux_arm64-7.42.17.deb";
sha256 = "sha256-UykQk8R8EDsHmRGy9BfDXhEZFlYT16bAkRuLXFZJDHw=";
};
};
@ -133,7 +133,7 @@ let
];
in
stdenv.mkDerivation {
version = "7.36.11";
version = "7.42.17";
pname = "feishu";
src =

View File

@ -8,13 +8,13 @@
buildDotnetModule rec {
pname = "garnet";
version = "1.0.69";
version = "1.0.70";
src = fetchFromGitHub {
owner = "microsoft";
repo = "garnet";
tag = "v${version}";
hash = "sha256-U90y8VxGrRgXTdrusImNK2kRO+Tw9uiXoMiEb3YgaBM=";
hash = "sha256-E+fwtD0AcUCHhHrnR7OV2mnDtGUnkJkLBKl6DbXlooU=";
};
projectFile = "main/GarnetServer/GarnetServer.csproj";

View File

@ -20,11 +20,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "gretl";
version = "2025a";
version = "2025b";
src = fetchurl {
url = "mirror://sourceforge/gretl/gretl-${finalAttrs.version}.tar.xz";
hash = "sha256-5B9V1Z12+Hu00x++u2ndUXWq91k/SXy723DoLOefhEQ=";
hash = "sha256-DW0QXWbx0nMWTfjxO15ZGR/DsvFM7eee0DDsqrm5vHM=";
};
buildInputs = [

View File

@ -9,11 +9,11 @@
buildGoModule rec {
pname = "honk";
version = "1.4.2";
version = "1.5.1";
src = fetchurl {
url = "https://humungus.tedunangst.com/r/honk/d/honk-${version}.tgz";
hash = "sha256-uswlReJzPjkVOazKmMHtetVukunroesqYc8XCJHiOxQ=";
hash = "sha256-VOeA2oQNmcEVfvWrKnWWUz6n+WjMuxYQnbqPfWaHGLM=";
};
vendorHash = null;

View File

@ -12,13 +12,13 @@
stdenv.mkDerivation rec {
pname = "i2pd";
version = "2.56.0";
version = "2.57.0";
src = fetchFromGitHub {
owner = "PurpleI2P";
repo = "i2pd";
tag = version;
hash = "sha256-URFLVMd1j/br+/isQytVjSVosMHn1SEwqg2VNxStD0A=";
hash = "sha256-+LywTG+AXOas6fXF1pXjBkqa+fUbaWNMA3EqCEZfc/A=";
};
postPatch = lib.optionalString (!stdenv.hostPlatform.isx86) ''

View File

@ -6,11 +6,11 @@
let
pname = "jbrowse";
version = "3.5.0";
version = "3.5.1";
src = fetchurl {
url = "https://github.com/GMOD/jbrowse-components/releases/download/v${version}/jbrowse-desktop-v${version}-linux.AppImage";
sha256 = "sha256-UAuKbfvJuCDIaERFVYo6rdhBG2ycp87ZnCrVPLDDv9g=";
sha256 = "sha256-1swQIG9rCzk2wP7apYo4UjUE+enMK/ZrMu1q4/ahfjA=";
};
appimageContents = appimageTools.extractType2 {

View File

@ -16,13 +16,13 @@
stdenv.mkDerivation rec {
pname = "keepalived";
version = "2.3.3";
version = "2.3.4";
src = fetchFromGitHub {
owner = "acassen";
repo = "keepalived";
rev = "v${version}";
sha256 = "sha256-+IwV8ifQ8gWN4eR9Fgvw3HV3WJDmy3urEQDLngoMdm8=";
sha256 = "sha256-Xv/UGIeZhRHQO5lxkaWgHDUW+3qBi3wFU4+Us1A2uE0=";
};
buildInputs =

View File

@ -15,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "ktls-utils";
version = "1.0.0";
version = "1.1.0";
src = fetchFromGitHub {
owner = "oracle";
repo = "ktls-utils";
rev = "ktls-utils-${version}";
hash = "sha256-dIzff/NL/M3yHvxCmDELmDfCtO3UpxXWNGq+VeCH5Z0=";
hash = "sha256-UQMM4P2YZbdB8H+kTLPBKLces0HJHAO3f21VvI1yNmk=";
};
nativeBuildInputs = [

View File

@ -11,13 +11,13 @@
buildGoModule rec {
pname = "kubeshark";
version = "52.7.0";
version = "52.7.7";
src = fetchFromGitHub {
owner = "kubeshark";
repo = "kubeshark";
rev = "v${version}";
hash = "sha256-D3mHLYN6OVk7f1MCCWqSg/3qeg83EHcpqvkm1UTOaaM=";
hash = "sha256-gF1Q0amsgKyog+98zeHMidU8vzlTynr69alC6BhGAqI=";
};
vendorHash = "sha256-kzyQW4bVE7oMOlHVG7LKG1AMTRYa5GLiiEhdarIhMSo=";

View File

@ -9,13 +9,13 @@
buildGoModule rec {
pname = "kubevirt";
version = "1.5.1";
version = "1.5.2";
src = fetchFromGitHub {
owner = "kubevirt";
repo = "kubevirt";
rev = "v${version}";
hash = "sha256-wREuRKfpyAL1SF1tnSNqCLqvWctVHHEpyrWLIY0nV3Y=";
hash = "sha256-R01kW6mS1Ce3oi3p6RFVXif/BybM9HlbL2WT9b5wJuE=";
};
vendorHash = null;

View File

@ -49,14 +49,14 @@
stdenv.mkDerivation (finalAttrs: {
# LAMMPS has weird versioning convention. Updates should go smoothly with:
# nix-update --commit lammps --version-regex 'stable_(.*)'
version = "29Aug2024_update2";
version = "29Aug2024_update3";
pname = "lammps";
src = fetchFromGitHub {
owner = "lammps";
repo = "lammps";
rev = "stable_${finalAttrs.version}";
hash = "sha256-xhFLsK3CQFIfajdwkpz593KTUGwcIWX1bLIPClDe/V8=";
hash = "sha256-nvUkRkO58Hmrsieyd9ALRUA7Q80AcZffW85ipH4NF/U=";
};
preConfigure = ''
cd cmake

View File

@ -6,12 +6,12 @@
}:
stdenv.mkDerivation rec {
version = "3.4.0";
version = "3.4.1";
pname = "libzdb";
src = fetchurl {
url = "https://www.tildeslash.com/libzdb/dist/libzdb-${version}.tar.gz";
sha256 = "sha256-q9Z1cZvL3eQwqk7hOXW5gNVdKry1zCKAgqMDIKa7nw8=";
sha256 = "sha256-W0Yz/CoWiA93YZf0BF9i7421Bi9jAw+iIQEdS4XXNss=";
};
buildInputs = [ sqlite ];

View File

@ -0,0 +1,26 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "njq";
version = "0.0.3.1";
src = fetchFromGitHub {
owner = "Rucadi";
repo = "njq";
tag = "v${finalAttrs.version}";
hash = "sha256-evFKm5NYNqIIRVbtMlGFY0k+0sJnkTCTIbTH7w9jQtk=";
};
cargoHash = "sha256-tDz9+iQhutlo7petKmg6n/mg0tDntGRqwBALcATJwdM=";
meta = {
description = "Command-line JSON processor using nix as query language";
homepage = "https://github.com/Rucadi/njq";
mainProgram = "njq";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ powwu ];
};
})

View File

@ -14,16 +14,16 @@
buildGoModule rec {
pname = "nwg-menu";
version = "0.1.8";
version = "0.1.9";
src = fetchFromGitHub {
owner = "nwg-piotr";
repo = "nwg-menu";
rev = "v${version}";
sha256 = "sha256-Ce8hxFVCj/No2Sb6avQ9ogMPTJXDcWxa3GFfsczq1+E=";
sha256 = "sha256-3fN89HPwobMiijlvGJ80HexCBdsPLsEvAz9VH8dO4qc=";
};
vendorHash = "sha256-53lRO4Ct20jYJY7JRElx9MWzb+TEm8KIIJZF3OfL1kQ=";
vendorHash = "sha256-5gazNUZdPZh21lcnVFKPSDc/JLi8d6tqfP4NKMzPa8U=";
doCheck = false;

View File

@ -14,13 +14,13 @@ assert
buildGoModule (finalAttrs: {
pname = "open-policy-agent";
version = "1.4.2";
version = "1.5.1";
src = fetchFromGitHub {
owner = "open-policy-agent";
repo = "opa";
tag = "v${finalAttrs.version}";
hash = "sha256-4FRNTB24JWyF3Zuhx3T6LjNs83+wDh4gmE9rh3cu/Vk=";
hash = "sha256-gIwi+38oUBEVK5DiTU8Avt+lQtXaIf/udyVi4LLvTu8=";
};
vendorHash = null;
@ -31,7 +31,6 @@ buildGoModule (finalAttrs: {
ldflags = [
"-s"
"-w"
"-X github.com/open-policy-agent/opa/version.Version=${finalAttrs.version}"
];
@ -50,6 +49,7 @@ buildGoModule (finalAttrs: {
# Skip tests that require network, not available in the nix sandbox
"TestInterQueryCache_ClientError"
"TestIntraQueryCache_ClientError"
"TestSSOCredentialService"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# Skip tests that require network, not available in the darwin sandbox

View File

@ -9,13 +9,13 @@
}:
let
pname = "open-webui";
version = "0.6.14";
version = "0.6.15";
src = fetchFromGitHub {
owner = "open-webui";
repo = "open-webui";
tag = "v${version}";
hash = "sha256-tq6npchWuEzgMOoCUvwHGbDjpJPOO1eSCS/88IzhWvQ=";
hash = "sha256-MD7d+5JuTzChqKLxXyZFLyPktXFta1EOe4Oj4uEGaho=";
};
frontend = buildNpmPackage rec {

View File

@ -32,13 +32,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "pdi";
version = "1.9.1";
version = "1.9.2";
src = fetchFromGitHub {
owner = "pdidev";
repo = "pdi";
tag = finalAttrs.version;
hash = "sha256-Tmn4M+tcnNH6Bm4t5D/VgciOu4dDKKqYkbERKgpHX/Y=";
hash = "sha256-bbhsMbTVvG19vtkZyOiCRH168kCFk2ahSFc7davfXzo=";
};
# Current hdf5 version in nixpkgs is 1.14.4.3 which is 4 numbers long and doesn't match the 3 number regex. :')

View File

@ -1,55 +1,49 @@
{
lib,
bc,
python3Packages,
fetchFromGitHub,
# tests
addBinToPathHook,
bc,
jq,
python3,
versionCheckHook,
}:
let
pythonPackages = python3.pkgs;
finalAttrs = {
pname = "pyp";
version = "1.2.0";
version = "1.3.0";
src = fetchFromGitHub {
owner = "hauntsaninja";
repo = "pyp";
tag = "v${finalAttrs.version}";
hash = "sha256-hnEgqWOIVj2ugOhd2aS9IulfkVnrlkhwOtrgH4qQqO8=";
hash = "sha256-u9yxjYNQrtYtFtUh5tTJ1mGmGB+Ry+FRupli8RzRu3c=";
};
pyproject = true;
build-system = with pythonPackages; [
build-system = with python3Packages; [
flit-core
];
nativeCheckInputs =
(with pythonPackages; [
(with python3Packages; [
pytestCheckHook
])
++ [
addBinToPathHook
bc
jq
versionCheckHook
];
versionCheckProgramArg = "--version";
pythonImportsCheck = [
"pyp"
];
# without this, the tests fail because they are unable to find the pyp tool
# itself...
preCheck = ''
_OLD_PATH_=$PATH
PATH=$out/bin:$PATH
'';
# And a cleanup!
postCheck = ''
PATH=$_OLD_PATH_
'';
meta = {
homepage = "https://github.com/hauntsaninja/pyp";
description = "Easily run Python at the shell";
@ -62,4 +56,4 @@ let
};
};
in
pythonPackages.buildPythonPackage finalAttrs
python3Packages.buildPythonPackage finalAttrs

View File

@ -8,11 +8,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "questdb";
version = "8.3.2";
version = "8.3.3";
src = fetchurl {
url = "https://github.com/questdb/questdb/releases/download/${finalAttrs.version}/questdb-${finalAttrs.version}-no-jre-bin.tar.gz";
hash = "sha256-5yaV+ehcamXIVQZvte2+yUd0FoseR2kFuhvzZb3SZY8=";
hash = "sha256-C3lhEgg9erAYSV4qU+xqPM1YbqCIj7mqmVzu+6BY+pI=";
};
nativeBuildInputs = [

View File

@ -6,12 +6,12 @@
}:
stdenv.mkDerivation rec {
version = "4.3.3";
version = "4.3.4";
pname = "randoop";
src = fetchurl {
url = "https://github.com/randoop/randoop/releases/download/v${version}/${pname}-${version}.zip";
sha256 = "sha256-x9kAoVa4wvUp3gpg9GCodvjwql3CBtn5EqJIZYSSqVI=";
sha256 = "sha256-yzQw9l3uAq51SHXJ4rsZNRCiFdhOEoSrwv9iPvD2i9c=";
};
nativeBuildInputs = [ unzip ];

View File

@ -15,13 +15,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "renovate";
version = "40.48.0";
version = "40.60.0";
src = fetchFromGitHub {
owner = "renovatebot";
repo = "renovate";
tag = finalAttrs.version;
hash = "sha256-SZKa1jIK5FIh8t/aH2o3kgSfqgNR9+rk7GzMX0Fs2dk=";
hash = "sha256-eF9RY/KmiyFjGgEm1twxZliKMS5+7sXF5f2JpUYvJCM=";
};
postPatch = ''
@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
pnpmDeps = pnpm_10.fetchDeps {
inherit (finalAttrs) pname version src;
hash = "sha256-BjMJzITAeUspL0a/ZfhejmOdEVi6pBHD6BmQt2WIE1I=";
hash = "sha256-X9hwB4E78puo+1hkGoKwOSK3xhGOpcXciC2h6mElvWY=";
};
env.COREPACK_ENABLE_STRICT = 0;

View File

@ -102,6 +102,12 @@ in
writeTextFile rec {
name = "sage-env";
destination = "/${name}";
passthru = {
lib = sagelib;
docbuild = sage-docbuild;
};
text =
''
export PKG_CONFIG_PATH='${
@ -205,8 +211,3 @@ writeTextFile rec {
}''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH"
'';
}
// {
# equivalent of `passthru`, which `writeTextFile` doesn't support
lib = sagelib;
docbuild = sage-docbuild;
}

View File

@ -7,17 +7,17 @@
rustPlatform.buildRustPackage rec {
pname = "shadowenv";
version = "3.0.3";
version = "3.3.1";
src = fetchFromGitHub {
owner = "Shopify";
repo = "shadowenv";
rev = version;
hash = "sha256-ZipFcwTpKKFnQWOPxXg07V71jitG0NSLpGLEzUSsUFA=";
hash = "sha256-s70tNeF0FnWYZ0xLGIL1lTM0LwJdhPPIHrNgrY1YNBs=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-KNCucBmYVmIQ/XY+UNV667iWLyiEJDnP/8gAmUHGY+0=";
cargoHash = "sha256-Cg01yM3FbrYpZrv2dhGJnezugNhcuwDcXIU47/AWrC4=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -26,13 +26,13 @@ assert
(!withFirefox && !withChromium) -> throw "Either `withFirefox` or `withChromium` must be enabled.";
buildNpmPackage rec {
pname = "sitespeed-io";
version = "37.6.0";
version = "37.8.0";
src = fetchFromGitHub {
owner = "sitespeedio";
repo = "sitespeed.io";
tag = "v${version}";
hash = "sha256-sR6vDLoMysdcbtaIrNUvzwhIPe0GbymHdKQkFDBaEiM=";
hash = "sha256-0bXkVqCen0kUHP8YeFkpdxTd+4Hx6YMZVTjwgWWg6nQ=";
};
postPatch = ''
@ -50,7 +50,7 @@ buildNpmPackage rec {
dontNpmBuild = true;
npmInstallFlags = [ "--omit=dev" ];
npmDepsHash = "sha256-6Q8ed8iIGVOUNIn7gMEgqK8fqF5dI2fO/j5u7hj3hGA=";
npmDepsHash = "sha256-ZWjlueRZkH5lsalUY/xoOO/22P9Ta5CnmK0UKjapyU8=";
postInstall = ''
mv $out/bin/sitespeed{.,-}io

View File

@ -1,10 +1,12 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
curl,
pkg-config,
makeBinaryWrapper,
installShellFiles,
libgit2,
oniguruma,
openssl,
@ -34,6 +36,7 @@ rustPlatform.buildRustPackage {
makeBinaryWrapper
pkg-config
rustPlatform.bindgenHook
installShellFiles
];
buildInputs = [
@ -68,19 +71,26 @@ rustPlatform.buildRustPackage {
# Tests are disabled since they always fail when building with Nix
doCheck = false;
postInstall = ''
mkdir -p $out/lib/steel
postInstall =
''
mkdir -p $out/lib/steel
substituteInPlace cogs/installer/download.scm \
--replace-fail '"cargo-steel-lib"' '"$out/bin/cargo-steel-lib"'
substituteInPlace cogs/installer/download.scm \
--replace-fail '"cargo-steel-lib"' '"$out/bin/cargo-steel-lib"'
pushd cogs
$out/bin/steel install.scm
popd
pushd cogs
$out/bin/steel install.scm
popd
mv $out/lib/steel/bin/repl-connect $out/bin
rm -rf $out/lib/steel/bin
'';
mv $out/lib/steel/bin/repl-connect $out/bin
rm -rf $out/lib/steel/bin
''
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd steel \
--bash <($out/bin/steel completions bash) \
--fish <($out/bin/steel completions fish) \
--zsh <($out/bin/steel completions zsh)
'';
postFixup = ''
wrapProgram $out/bin/steel --set-default STEEL_HOME "$out/lib/steel"

View File

@ -0,0 +1,67 @@
{
"@biomejs/cli-darwin-arm64@npm:2.0.0-beta.6": "4f83fff14fe51d58cf58167a513cc1e513e08d6b820f5039be6b5508aefb953f0a960bf7f53623acaa3dea3d5b6383050c40401754683c0ebef5cfe00c7608f3",
"@biomejs/cli-darwin-x64@npm:2.0.0-beta.6": "7ca6a9cd1fb606174d4db6c4913c6fce576e5c858778c2e7248b3309be073aedb8a7411ce5fb3c361e364585e2c7ae118c5356187aa266a83b68dd9256c4f686",
"@biomejs/cli-linux-arm64-musl@npm:2.0.0-beta.6": "802e2835c20834032871b782fc082581dcb2921bd01abfe4faa2b8cd662b2be47b35be87250c21595ec21ab917fb00b13468ff53893b54400b7c883b5506a033",
"@biomejs/cli-linux-arm64@npm:2.0.0-beta.6": "e025f445655d1309204682aebcf77364c0c2687c257b6aa58cf803f14e8beb3a7065ad194cb517ce98d550c496ba6573915546906ed89abfa9e470369d8e0d2e",
"@biomejs/cli-linux-x64-musl@npm:2.0.0-beta.6": "680dfd54cf4aaeb6485e70bddcd2211cb559ccfbf902aebccdaa8418c6b2cbeb1a68afb20ecaae9a41385ba762da10f1fafc37ae853a3cd18478640cd0ccf44d",
"@biomejs/cli-linux-x64@npm:2.0.0-beta.6": "dfb7e72065d438f7112d90ad66b8638abffe2b1d107cc89a46b53b745c28acef8184a03cc458bd01c4525a15e900c4fefb70b627682bdfc62c1453270e986255",
"@biomejs/cli-win32-arm64@npm:2.0.0-beta.6": "68d6b4c8be07632acc201dee088866eecb3562f5b4fce64e49f3e5662626ffff2e1da8ddb369e2b4c76dbd95a98a86126991459f3c57447eacb7f0d30f984b2c",
"@biomejs/cli-win32-x64@npm:2.0.0-beta.6": "19363ba1670072a2dd238ca45c25f0ccc3174c840be20a85d08bfa14b83b07a490f4c9f6227bd005aaa71852e1654cd2342b2ebb2eef8adac98e44c71d2806af",
"@esbuild/aix-ppc64@npm:0.25.5": "fb872b34a2843293dc60e809968fedf93e0d8f7174b062decffae6ba861eb56aaea0cd0aba87ba99162ceb2a690f0cde4fc29c000b52c035e40c91ec7861d43e",
"@esbuild/android-arm64@npm:0.25.5": "c818e799b19b5587466bf68a27b578ccaaf866c1d144573fbde7659e3fd3f555422ec3e67f5bd186a87648957d1b6e74df4f847edea7219c16979c9916f36e91",
"@esbuild/android-arm@npm:0.25.5": "a5384933f9f2ffcadce2be49da6ff43249fe42f32a04071316434e9f633fc20c8d4029072e9a53555620c3531045786297607b852579eee30b6dbc3bc9d98cd9",
"@esbuild/android-x64@npm:0.25.5": "8ce115dc7e1e6735f23b4aadb2dfca29c0abd8577ce34802ea3d017a64e388928949134fe225dfe190babdc5ec01be5fc7794eca84738cdefc12c5e3789ce43b",
"@esbuild/darwin-arm64@npm:0.25.5": "a009eab62f2bd284a6f2001d5e08217059186ffc16907bbe873e1de40fe9b5ed92c0db2f4c4d0dc41545838850a430c8f2f35d7bdb9cd01a1a04293acd97afca",
"@esbuild/darwin-x64@npm:0.25.5": "cac8021a7a0c549263e076913346b35a5bb81f76ffbc1abfad5e7b67303f013ac0c76f111bf624ea8447b327ec86c18a60c6ff307d743a2269f5d47313f5b2de",
"@esbuild/freebsd-arm64@npm:0.25.5": "d248e7103b7094eb4288db7c9a78b2905a25b4a957f2b945531ca88d3394f45ceca2343a7c84954734534af6159bc741eb3d5c1ed9df990f7395337a1b14192c",
"@esbuild/freebsd-x64@npm:0.25.5": "8a7be0740f07f5dbb3e24bf782ca6ef518a8ce9b53e5d864221722045713586d41774cbd531df97dc868b291b3b303c12e50ca8611c3cb7b5fe09a30b38285eb",
"@esbuild/linux-arm64@npm:0.25.5": "ce3c8fca47cf0a92148fb288eb35a5c4a4dcf7a700730b3a48fdd63c13e17c719eb6b350378203fba773477eb5be637f47a6d52c5d4ce5bdc0075ee917156006",
"@esbuild/linux-arm@npm:0.25.5": "cc81ea76ab86ed2a837c9da329f7c63412d288dc0aa608c8dcdf51705dc93d5b7f966a429be4896babe611074e5898c7e6c8e07ad7f50123a05478975294fbb4",
"@esbuild/linux-ia32@npm:0.25.5": "bfed6750923afd56148f658f6ec8995479f5115116dc212ecb9e4c556064422e22eda855177e7c02cbc945494e4db1167101918c5fa932278115db2c7025a3f6",
"@esbuild/linux-loong64@npm:0.25.5": "e5c20140bbbdba53f0d86dd72961ed73e6255d2ada2d3a626f390b352170605644822ad7592f695b6e520edcefe0c5f6ba19d10694b5d11d725745d9792bde01",
"@esbuild/linux-mips64el@npm:0.25.5": "6b3559517efd0dd1301debc7af7e275b055859c26facdda2e229b1aaab6ebea4c480a1da151c46211ee4035d95bfa7f0cdacf735b57ee99d41b69c77357310b9",
"@esbuild/linux-ppc64@npm:0.25.5": "a1a1af99d758efce928335637924dcd8ddec4201af51014e1f831b012d53a0a673b1e0c31036ec9e8c5a0311439283419ec8abdfc67ecb245fa7f7b653006ed0",
"@esbuild/linux-riscv64@npm:0.25.5": "6cd8dce6723b73e0f89898ab6cd52e0d009afdacdfc0d5529134de7b832c92c2e0421fbb5cbfc0e0c0b2b00a9b1ff2c4cdb9695b2c535ebc174960e986c727a7",
"@esbuild/linux-s390x@npm:0.25.5": "31b86dbc93d19eb362bad3353e65d6da771118346e723582d06c05f1b6ffad1c3765001b5215ef1e8f0c2bb29130d98815359bbc88e5c08304354d5a92e6ea94",
"@esbuild/linux-x64@npm:0.25.5": "f878a3e40edfd8a50de94bf982a9eaf03e636a0332af163a6c905490063aae652384fb392d4765c4338fb6f991034949c92ec768ee65c3b2fceeb494b89fe8b3",
"@esbuild/netbsd-arm64@npm:0.25.5": "941c5e28a63a93f19122271b5490e196db12815702c2266c6d66401b6909a4364ab889611ba81c5359624e3ce61f0505a680a1179ed9a555d1415fa1c485d75d",
"@esbuild/netbsd-x64@npm:0.25.5": "edbefdd88ca24a373497a7c8d1fdab418827ff89c6eee1c574159dbb4d9174552aa87753f35525a894964b77c14b012164ec5582b9f19dd4d6c1f5d45df411c7",
"@esbuild/openbsd-arm64@npm:0.25.5": "d44633a374c109d2fb9c678882016e3ec3d79f0c5f21a6e6fb0114ea709bc539200b037a4e3ec52304eea2f8c5957bf16c6f0a7af5cfde41b652c4bac604bba6",
"@esbuild/openbsd-x64@npm:0.25.5": "efc4641ea653dedc9886f0603c2e7cfc6fbe94c34d4cdaee9b060a8b9d8143d1192c45da93b3e802af2c26f72ab1ad3a3fad0e0cb297d06de55814fe83ccd32c",
"@esbuild/sunos-x64@npm:0.25.5": "29860663381b6098c0fda6f69235407654dfad953e83b3f9f06a270950d5c37da4ca60a4b5915b8e2606d468b560be6179870f64a22d5b046e8a930c31a7b554",
"@esbuild/win32-arm64@npm:0.25.5": "a77d395251c8a62ab0cec07d5230222823fa02fbf3ef008d94b5213a335c9f949872c3f1c2f947abaa28098b669018e429af42f59616e049860a0072f3b006de",
"@esbuild/win32-ia32@npm:0.25.5": "ff1b6cbe835082aef5b93c3e2012d51be431d05c6ae5f90a5bc89687c687e8e2340c262dedddd124b27b511616bbc4088b5a4a949d3147f677084dc6ec572629",
"@esbuild/win32-x64@npm:0.25.5": "266e69e8d37bd4deb77443588e49472e4e9791178cb39e1692eabb67cf65d8e85a932ac468e7ebb2072c8a9ee23ad413c8f0f7d954c474f643cedbbf7aad952a",
"@rolldown/binding-darwin-arm64@npm:1.0.0-beta.11-commit.f051675": "21449eafb0fc91888fc9284702ad0c85921c4d4143ff3bbb2c8c020a919d34870d24710b25170da147178b30e5aff19bb343618ef52ccdf0066b59a7cb8db118",
"@rolldown/binding-darwin-x64@npm:1.0.0-beta.11-commit.f051675": "c2de323cb05852b4a514dde8e14bef22be087d188415201db9a805aee64f3facb6554ed04d2a92fce0ca5b4e91b067fe8e43e619df96dec7fc3a5e7a23873df1",
"@rolldown/binding-freebsd-x64@npm:1.0.0-beta.11-commit.f051675": "57b857af21de285efd573ca87b6529e50e77cc10979dcbae5fb1dd53ddbabcd3336b9e4b4d04df3c952c6bc38873ea78cb6d5344fdbc49267df1c25c71471082",
"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-beta.11-commit.f051675": "0987f270ced3ff3e675a040b676fbd4a687080b124260e323e2c2aede7b59eb3b7d897064b5828031b91846ee5b483f10de85ed5b0468351780723ba0ecfc887",
"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-beta.11-commit.f051675": "0fffddc899ea0c2dbec2b8b21f6f6ced4cc483bd111f3c9c2684f57af9fdfed0e4adad95b3b027018b2b0f8801210f2ab4acf0d37d3702beddd8cf204f95d28f",
"@rolldown/binding-linux-arm64-musl@npm:1.0.0-beta.11-commit.f051675": "0c2af36aca65e86b967f6d350176420fdd453c7dbb7796611c181aa87f2090edb577132edd1496964f7bae7346fc9ec15968ae39012f4e5fc347a82e867bd8aa",
"@rolldown/binding-linux-x64-gnu@npm:1.0.0-beta.11-commit.f051675": "1f843a7d2283ac4f6daff6239108e7fa2680bd3795f06923603f6d693844bc990a85b66fc67005fd03a2eec7c8097c4737b935e9e448853d4a60c208b979a5ca",
"@rolldown/binding-linux-x64-musl@npm:1.0.0-beta.11-commit.f051675": "f2be00d8c8cb67c216ae1f67b491bb1dfc7b5eaab66fc84a550ea45ff7f79080631b5748ca984a88a5806994aa2618933bba0d643cdc6b82f1268fc0025647f0",
"@rolldown/binding-wasm32-wasi@npm:1.0.0-beta.11-commit.f051675": "b8fffeb3ede11a93235713f864e25270be2e3e3ddf77ba9bb4e534743e3f859b6ffff5a33e5c22e9e19745371f4d30f9a324990411a07e7e00e6f94a6ceb6fde",
"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-beta.11-commit.f051675": "2b7ea4e614a53acd3f9291b33d5e908d5f821354006610aaa53fea1a7f0cf6f8123e9f16424512a6c65e06a0c79ac324e9e067b3cddb10a434fc2470c2374b02",
"@rolldown/binding-win32-ia32-msvc@npm:1.0.0-beta.11-commit.f051675": "e147c9f648a0d95dcbaf963380968762dd6feabb9403897ba17c123e8b9bb4eb94bad5096d4fdfe8f37454195f8391e01759c1ce86d1f41f73908f0b23f8c0fa",
"@rolldown/binding-win32-x64-msvc@npm:1.0.0-beta.11-commit.f051675": "2ae46229ecfd2ed001f4a2e263bf7776896180c117d263526dc478ee30aff5569ee9f82b52fc1085d08f889aab6751c96e4988ac489f6b942ea7424e1fb8f43f",
"@rollup/rollup-android-arm-eabi@npm:4.43.0": "8e37e27b359200197cddf9c1aa5bb5f2d0d8e640fe30f0ccc4b77d9c730b2fdda6f3b6f97a0afc45c5113f23637f98c5c89abf982a222cc3f6b00192a2a998fa",
"@rollup/rollup-android-arm64@npm:4.43.0": "6e7ee0f496d30cfeca8d930c512f331053d87076b67f06303339ef19120dca5895bc2072ab3da7b99fb93f6c6c275d4d874a66bff08afeac4cea5447cdc709a3",
"@rollup/rollup-darwin-arm64@npm:4.43.0": "7b76fb8e7ccc40ff17f9584b0cdacce22e384ce1229860b0971417236884d100362a79a12cdcbd0254dcd0f68d7db6cfe11c60f38e7a672cf62b0b8abe6834e9",
"@rollup/rollup-darwin-x64@npm:4.43.0": "9209a1d1f97dad0810dc280485658b78cf597398da4ce2c2ccab04d4bbe0a05966325760d399209b67d746711bf204c4d8896941159ac5569e6a3a6738807e3a",
"@rollup/rollup-freebsd-arm64@npm:4.43.0": "d89e2a6234d2cd2f18c168a832f518864c2c66c93f230ada42014b631ea0d04cb790269cbe0bb67e0bfbdcdf8b5b5069de1382be15380f469c02a51570d60729",
"@rollup/rollup-freebsd-x64@npm:4.43.0": "0d4c3c6dc027a57e4ef1897acc58996e179f89130858f8849de9c6fbe4a9ffab5b226d0729c1bc8b15528271c0d0093e9c6df9831a01fa5baa870825306484a0",
"@rollup/rollup-linux-arm-gnueabihf@npm:4.43.0": "f7c29e494b75719b3efdf6958c81e95b9c79bd4e3b8fe775088676a35da4e49301175fe4d1b3dc176348817f3ee7645ed34381e4801655c62c8b7de5a079c8e3",
"@rollup/rollup-linux-arm-musleabihf@npm:4.43.0": "0ff5c0dfe63f3d4a5f3914555b6557f5d9a76af751ee4ae8fd4264ac8e2538108b20fb4049637bfee71f67e69b8cc5a4c38d1c0a029247e657a703594ec5733c",
"@rollup/rollup-linux-arm64-gnu@npm:4.43.0": "2138243743cd1c5ff59de2e56f7b40aefb0c8e7b54a028fa6f40407594cf82a8f71d7c25368d54e5470e12fe6565dde2ade26e7a2e303368a4c216f907407feb",
"@rollup/rollup-linux-arm64-musl@npm:4.43.0": "7b7ec641ff9b86e144971913ab40e6fdccbf9a45e501c6c5dc6e102ef28e1cad4a05ede0f4c9c1d21da9242033e221b491948e552acb5774cc033f97519da5dc",
"@rollup/rollup-linux-loongarch64-gnu@npm:4.43.0": "eca2d22690858529fee43bacb8e5c3da972d07d68a0418437af18294a6abe181e0d46aac597ce13dd5ff9b22b3a4eec88e958f526082ae116d140a3e04466801",
"@rollup/rollup-linux-powerpc64le-gnu@npm:4.43.0": "2b560dc6d6af7350fa7bd504c9e4357e677a56c4c62c27efa0162252482c8fffdbb1c77710a4f37325e8a8afd3ed9272b9998fb82472e72a2cacc5fa11cda633",
"@rollup/rollup-linux-riscv64-gnu@npm:4.43.0": "7eaf269704ed32475620e5e293bc7db7ca15c0556de3b487cb0e08619610a45a9bec8c1db5f4a3294f229bed95a6c099fea37f2d1a012cef0322a9b42a5bd27f",
"@rollup/rollup-linux-riscv64-musl@npm:4.43.0": "fe28cbe57646d2c78966119db6c91c42c0f48a9f1175fd4596697107a6f4a229484f45344fbd8656f6875fcc22fa565603688fd02a02c98007aa30aee34b066d",
"@rollup/rollup-linux-s390x-gnu@npm:4.43.0": "60691ae9cc5f68fb845c972e337c8c8230078fe9a204a249670de21c72d1e8ccac1f0d47347eb720e87068b0f1fb86af54edbcf5d20fe25b1d1cd5e76db7a0f1",
"@rollup/rollup-linux-x64-gnu@npm:4.43.0": "337a87aed8d5b07f8e5bd8e1b0fe6b7e03edaabc948076dd817d70badb5c5081e9c0faf36411e54fddc633e0a8eb4f1f348208678184794116cecbded2c5b288",
"@rollup/rollup-linux-x64-musl@npm:4.43.0": "e85942bd31ecf417f25220f1f376395e5a679f8d0c9e4fa7084d5d61265da00d2f483aef3a97884c94ed572e6d3b98ecc7707efbbf2dbdd4d8b9a5b9c4350a56",
"@rollup/rollup-win32-arm64-msvc@npm:4.43.0": "c6a793b1a16fdfe801018f2ff9d92290da6695e8041fc543a36daca859379f03fcb2d1d688891a9cfff0223962da38fd33f661a5c93d46a794c1eb4fa79ff119",
"@rollup/rollup-win32-ia32-msvc@npm:4.43.0": "305a82fdea7656d83efce73720c0d36c6da4734e9e05f3696d032272fd61de767991e04fa02b0abaf18c4aeaf17f7a61a2e7552d923d89d6a9abfba4a5e37657",
"@rollup/rollup-win32-x64-msvc@npm:4.43.0": "966e5f3d7996f41ea6cee2e0a20276cb314029bceee9b9e7512c47a3d139e1601231490229a66e8f5824b64d72c508e272f9f5f62d6b8b2a61722c17aa0ac3a1"
}

View File

@ -0,0 +1,67 @@
{
lib,
fetchFromGitHub,
yarn-berry_4,
stdenv,
nodejs,
makeWrapper,
}:
let
pname = "swagger-typescript-api";
version = "13.2.2";
yarn-berry = yarn-berry_4;
in
stdenv.mkDerivation (finalAttrs: {
inherit pname version;
src = fetchFromGitHub {
owner = "acacode";
repo = "swagger-typescript-api";
rev = version;
hash = "sha256-dpziQNXLwo2W+zZdFujaNufVoGg8M11G79LVWTi9G/M=";
};
nativeBuildInputs = [
makeWrapper
yarn-berry.yarnBerryConfigHook
yarn-berry
nodejs
];
missingHashes = ./missing-hashes.json;
offlineCache = yarn-berry.fetchYarnBerryDeps {
inherit (finalAttrs) src missingHashes;
hash = "sha256-pD/yx1DyccEWczvDQM+gseravu8eIqumOBuG65htYr8=";
};
buildPhase = ''
runHook preBuild
yarn run build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib
cp -r {dist,templates,node_modules} $out/lib
makeWrapper ${nodejs}/bin/node $out/bin/${pname} \
--add-flags $out/lib/dist/cli.js \
--set NODE_ENV production \
--set NODE_PATH "$out/lib/node_modules"
runHook postInstall
'';
meta = {
mainProgram = "swagger-typescript-api";
description = "Generate TypeScript API client and definitions for fetch or axios from an OpenAPI specification";
homepage = "https://github.com/acacode/swagger-typescript-api";
license = lib.licenses.mit;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ angelodlfrtr ];
};
})

View File

@ -16,16 +16,16 @@
buildNpmPackage rec {
pname = "teams-for-linux";
version = "2.0.16";
version = "2.0.18";
src = fetchFromGitHub {
owner = "IsmaelMartinez";
repo = "teams-for-linux";
tag = "v${version}";
hash = "sha256-+0sVumtXEJQEP3vFQ7QU4zA4PuqCRDH5+fetD8PqtBg=";
hash = "sha256-44K76pNJ0SRKAF8QdHYSi5htQpbP6YNNg6vDkzaeqaI=";
};
npmDepsHash = "sha256-I9h/5sIOXJWm/+YJbXQ5QUfoMnTNiOz27LSEiVS4FXA=";
npmDepsHash = "sha256-ShEqO6nL2YK2wdHGEcKff0fJsd9N9LI0VfhFe6FQ2gw=";
nativeBuildInputs = [
makeWrapper

View File

@ -6,16 +6,16 @@
buildGoModule rec {
pname = "tile38";
version = "1.34.4";
version = "1.35.0";
src = fetchFromGitHub {
owner = "tidwall";
repo = "tile38";
tag = version;
hash = "sha256-TLVFFgT5lxOLhv1RBS09DCcZAozkcHzIBlJSWt1ztB4=";
hash = "sha256-n17W/JOtVV6Mjhp81xx25j6GUbR9WCd3JLh9voyMeC0=";
};
vendorHash = "sha256-geXYLeJf/u+8RD7Slr2x+J6zABkWSIfhxKLxZVF/icU=";
vendorHash = "sha256-/EgUacA9xTUw3e8208NWxhaeZ/KgHLSnxy/fIqC+gZE=";
subPackages = [
"cmd/tile38-cli"

View File

@ -8,11 +8,11 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "tuist";
version = "4.38.2";
version = "4.53.4";
src = fetchurl {
url = "https://github.com/tuist/tuist/releases/download/${finalAttrs.version}/tuist.zip";
hash = "sha256-FK9F0Y3p04NOoy1Mnlcvimm/LGA5Y+lQ9P679SNNOzA=";
hash = "sha256-4YQY94/uWh/H4cCzhdQ3KxIh19D8mmUCCDKMF8ZwA4E=";
};
dontUnpack = true;

View File

@ -0,0 +1,42 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
# This is the baseType needed by scipp - the main package that depends on
# this package.
baseType ? "uint64_t",
}:
stdenv.mkDerivation (finalAttrs: {
pname = "units-llnl";
version = "0.13.1";
src = fetchFromGitHub {
owner = "LLNL";
repo = "units";
tag = "v${finalAttrs.version}";
hash = "sha256-thJnBT+wQPF9obzXk/T6H9lvPEAH5REx3YhBXEd7n7c=";
fetchSubmodules = true;
};
nativeBuildInputs = [
cmake
];
cmakeFlags = [
(lib.cmakeBool "BUILD_SHARED_LIBS" true)
(lib.cmakeFeature "UNITS_BASE_TYPE" baseType)
];
doCheck = true;
meta = {
description = "Run-time C++ library for working with units of measurement and conversions between them and with string representations of units and measurements";
homepage = "https://github.com/llnl/units";
changelog = "https://github.com/llnl/units/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ doronbehar ];
mainProgram = "units-llnl";
platforms = lib.platforms.all;
};
})

View File

@ -1,51 +1,72 @@
{
lib,
stdenv,
buildGoModule,
fetchzip,
gst_all_1,
gtkmm3,
hidapi,
lib,
makeWrapper,
meson,
ninja,
pkg-config,
python3,
stdenv,
udev,
udevCheckHook,
wrapGAppsHook3,
}:
let
version = "0.2.0";
version = "0.3.0";
src = fetchzip {
url = "https://github.com/carrotIndustries/usbkvm/releases/download/v${version}/usbkvm-v${version}.tar.gz";
sha256 = "sha256-ng6YpaN7sKEBPJcJAm0kcYtT++orweWRx6uOZFnOGG8=";
hash = "sha256-urexPODXU69QfSRHtJVpoDx/6mbPcv6EQ3mR0VRHNiY=";
};
ms-tools-lib = buildGoModule {
pname = "usbkvm-ms-tools-lib";
inherit version;
inherit version src;
inherit src;
sourceRoot = "${src.name}/ms-tools";
vendorHash = null; # dependencies are vendored in the release tarball
buildInputs = [
hidapi
];
buildInputs = [ hidapi ];
buildPhase = ''
runHook preBuild
mkdir -p $out/
go build -C lib/ -o $out/ -buildmode=c-archive mslib.go
runHook postBuild
'';
meta = {
homepage = "https://github.com/carrotIndustries/ms-tools";
description = "Program, library and reference designs to develop for MacroSilicon MS2106/MS2109/MS2130 chips";
license = lib.licenses.mit;
};
};
in
stdenv.mkDerivation {
pname = "usbkvm";
inherit version src;
# The package includes instructions to build the "mslib.{a,h}" files using a
# Go compiler, but that doesn't work in the Nix sandbox. We patch out this
# build step to instead copy those files from the Nix store:
patches = [
./precompiled-mslib.patch
];
postPatch = ''
substituteInPlace meson.build \
--replace-fail "@MSLIB_A_PRECOMPILED@" "${ms-tools-lib}/mslib.a" \
--replace-fail "@MSLIB_H_PRECOMPILED@" "${ms-tools-lib}/mslib.h"
'';
nativeBuildInputs = [
pkg-config
python3
@ -63,18 +84,6 @@ stdenv.mkDerivation {
hidapi
];
# The package includes instructions to build the "mslib.{a,h}" files using a
# Go compiler, but that doesn't work in the Nix sandbox. We patch out this
# build step to instead copy those files from the Nix store:
patches = [
./precompiled-mslib.patch
];
postPatch = ''
substituteInPlace meson.build \
--replace-fail "@MSLIB_A_PRECOMPILED@" "${ms-tools-lib}/mslib.a" \
--replace-fail "@MSLIB_H_PRECOMPILED@" "${ms-tools-lib}/mslib.h"
'';
# Install udev rules in this package's out path:
mesonFlags = [
"-Dudevrulesdir=lib/udev/rules.d"
@ -98,7 +107,7 @@ stdenv.mkDerivation {
homepage = "https://github.com/carrotIndustries/usbkvm";
description = "Open-source USB KVM (Keyboard, Video and Mouse) adapter";
changelog = "https://github.com/carrotIndustries/usbkvm/releases/tag/v${version}";
license = lib.licenses.gpl3;
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ lschuermann ];
mainProgram = "usbkvm";
};

View File

@ -1,25 +1,25 @@
{
"version": "0.149.0",
"version": "0.150.0",
"binaries": {
"aarch64-darwin": {
"url": "https://storage.yandexcloud.net/yandexcloud-yc/release/0.149.0/darwin/arm64/yc",
"hash": "sha256-9mxc0E0pZlX/kM6Lm9CZcVyR3ih8oNZwicaEYrGVLWY="
"url": "https://storage.yandexcloud.net/yandexcloud-yc/release/0.150.0/darwin/arm64/yc",
"hash": "sha256-jIK8gCqzDZTp8pM7FSEmeNmdZUIEtD2KwUegkHm8VoY="
},
"aarch64-linux": {
"url": "https://storage.yandexcloud.net/yandexcloud-yc/release/0.149.0/linux/arm64/yc",
"hash": "sha256-oDcBQq3bqRfAKRltpMoxI/tXHOzdmcGOY8Du/VkvVYs="
"url": "https://storage.yandexcloud.net/yandexcloud-yc/release/0.150.0/linux/arm64/yc",
"hash": "sha256-B639QeVd3d+lLnLNxmToAFFxUa+/9zBUhR749wVuZi0="
},
"i686-linux": {
"url": "https://storage.yandexcloud.net/yandexcloud-yc/release/0.149.0/linux/386/yc",
"hash": "sha256-09MR0gx3UBox4Ue1649WpdOxY+hTnchHD1v3PeFdMBs="
"url": "https://storage.yandexcloud.net/yandexcloud-yc/release/0.150.0/linux/386/yc",
"hash": "sha256-4Rf9el3Qs9c9AKIWDH6lojIxBJthGsjK+qYYqRjcPvI="
},
"x86_64-darwin": {
"url": "https://storage.yandexcloud.net/yandexcloud-yc/release/0.149.0/darwin/amd64/yc",
"hash": "sha256-7AhcJKYeVxpJNEl8dEvjVcFR/6aJtqqKRCDv8inyKM8="
"url": "https://storage.yandexcloud.net/yandexcloud-yc/release/0.150.0/darwin/amd64/yc",
"hash": "sha256-3V9s5kl/rZn2nN2/a3p3WYCdUeF/LA9ATCVNxYADg+U="
},
"x86_64-linux": {
"url": "https://storage.yandexcloud.net/yandexcloud-yc/release/0.149.0/linux/amd64/yc",
"hash": "sha256-vsxxGgqpewpQhUt3eMs6zOWKXgO0nTDOBB0ODfGDWNM="
"url": "https://storage.yandexcloud.net/yandexcloud-yc/release/0.150.0/linux/amd64/yc",
"hash": "sha256-vKENaNar/rHGqAoOPuo7b/tU29STk2ak6FqUxFqeOto="
}
}
}

View File

@ -0,0 +1,86 @@
From 75a0baa32f434546c5d6cfaf8ae19d561aa8dddd Mon Sep 17 00:00:00 2001
From: OPNA2608 <opna2608@protonmail.com>
Date: Mon, 9 Jun 2025 20:00:40 +0200
Subject: [PATCH] treewide: Fix imports in tests after QML files were moved out
of top-level dir
---
CMakeLists.txt | 2 ++
tests/unittests/tst_BottomEdgeIndicators.qml | 3 +--
tests/unittests/tst_PhotogridView.qml | 3 +--
tests/unittests/tst_StopWatch.qml | 3 +--
tests/unittests/tst_ViewFinderGeometry.qml | 3 +--
5 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index faa998c..9d54fbe 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -191,6 +191,8 @@ install(DIRECTORY ${QML_DIR}
DESTINATION ${CAMERA_APP_DIR}
)
+# For tests
+file(COPY ${QML_DIR} DESTINATION ${CMAKE_BINARY_DIR})
set(ASSETS_DIR assets)
diff --git a/tests/unittests/tst_BottomEdgeIndicators.qml b/tests/unittests/tst_BottomEdgeIndicators.qml
index 129b840..3dd4c0c 100644
--- a/tests/unittests/tst_BottomEdgeIndicators.qml
+++ b/tests/unittests/tst_BottomEdgeIndicators.qml
@@ -17,8 +17,7 @@
import QtQuick 2.12
import QtTest 1.0
-import "../../"
-import "../../.." //Needed for out of source build
+import "../../qml/components"
TestCase {
name: "BottomEdgeIndicators"
diff --git a/tests/unittests/tst_PhotogridView.qml b/tests/unittests/tst_PhotogridView.qml
index 4c7404a..3f14840 100644
--- a/tests/unittests/tst_PhotogridView.qml
+++ b/tests/unittests/tst_PhotogridView.qml
@@ -17,8 +17,7 @@
import QtQuick 2.12
import QtTest 1.0
-import "../../"
-import "../../.." //Needed for out of source build
+import "../../qml/components"
TestCase {
name: "PhotogridView"
diff --git a/tests/unittests/tst_StopWatch.qml b/tests/unittests/tst_StopWatch.qml
index aac9c36..5ad29f8 100644
--- a/tests/unittests/tst_StopWatch.qml
+++ b/tests/unittests/tst_StopWatch.qml
@@ -17,8 +17,7 @@
import QtQuick 2.12
import QtTest 1.0
-import "../../"
-import "../../.." //Needed for out of source build
+import "../../qml/components"
TestCase {
name: "StopWatch"
diff --git a/tests/unittests/tst_ViewFinderGeometry.qml b/tests/unittests/tst_ViewFinderGeometry.qml
index 154437f..42aaacc 100644
--- a/tests/unittests/tst_ViewFinderGeometry.qml
+++ b/tests/unittests/tst_ViewFinderGeometry.qml
@@ -17,8 +17,7 @@
import QtQuick 2.12
import QtTest 1.0
-import "../../"
-import "../../.." //Needed for out of source build
+import "../../qml/Viewfinder"
TestCase {
name: "ViewFinderGeometry"
--
2.49.0

View File

@ -28,15 +28,20 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-camera-app";
version = "4.0.8";
version = "4.1.0";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/apps/lomiri-camera-app";
tag = "v${finalAttrs.version}";
hash = "sha256-4Tkiv0f+1uZKkeyE60G/ThThMyNp+l8q6d4tiKipM3A=";
hash = "sha256-rGWIcaU3iFZIse69DUVjCebWH18yVrqWHcGoXItGX3k=";
};
patches = [
# Remove when https://gitlab.com/ubports/development/apps/lomiri-camera-app/-/merge_requests/234 merged & in release
./1001-treewide-Fix-imports-in-tests-after-QML-files-were-moved.patch
];
# We don't want absolute paths in desktop files
postPatch = ''
substituteInPlace CMakeLists.txt \

View File

@ -186,11 +186,11 @@ in
saxon_12-he = common rec {
pname = "saxon-he";
version = "12.6";
version = "12.7";
jar = "saxon-he-${version}";
src = fetchurl {
url = github.downloadUrl version;
hash = "sha256-y7ZlfaBhwVVHatnkOjVkpMySjUlR6+7S6v5aCqdOKu4=";
hash = "sha256-+J4ghaw1fZtsuKIxcHrrxff20LTsOmJhRLqWVvdZLN4=";
};
updateScript = github.updateScript version;
description = "Processor for XSLT 3.0, XPath 3.1, and XQuery 3.1";

View File

@ -92,14 +92,14 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "libcef";
version = "136.1.6";
gitRevision = "1ac1b14";
chromiumVersion = "136.0.7103.114";
version = "137.0.17";
gitRevision = "f354b0e";
chromiumVersion = "137.0.7151.104";
buildType = "Release";
srcHash = selectSystem {
aarch64-linux = "sha256-PC6vwjusN4GQJvwYEuBtXVkwhhdnEePcXR435pRnB6w=";
x86_64-linux = "sha256-Uq17X9psYzetSYQvXm62+9+XugCW3tGxnqGVsj6Hogs=";
aarch64-linux = "sha256-C9P4+TpzjyMD5z2qLbzubbrIr66usFjRx7QqiAxI2D8=";
x86_64-linux = "sha256-iDC3a/YN0NqjX/b2waKvUAZCaR0lkLmUPqBJphE037Q=";
};
src = fetchurl {

View File

@ -0,0 +1,52 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
setuptools,
setuptools-scm,
# tests
matplotlib,
ipympl,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "mpltoolbox";
version = "25.04.0";
pyproject = true;
src = fetchFromGitHub {
owner = "scipp";
repo = "mpltoolbox";
tag = version;
hash = "sha256-+LqPTlVbSxuewWuPNUfGdgQjWFxo7s2i3e21WkNNK78=";
};
build-system = [
setuptools
setuptools-scm
];
dependencies = [
matplotlib
];
nativeCheckInputs = [
ipympl
pytestCheckHook
];
pythonImportsCheck = [
"mpltoolbox"
];
meta = {
description = "Interactive tools for Matplotlib";
homepage = "https://scipp.github.io/mpltoolbox/";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ doronbehar ];
};
}

View File

@ -8,14 +8,14 @@
buildPythonPackage rec {
pname = "oelint-data";
version = "1.0.16";
version = "1.0.17";
pyproject = true;
src = fetchFromGitHub {
owner = "priv-kweihmann";
repo = "oelint-data";
tag = version;
hash = "sha256-t6NGD1IHRHfB2kJT0LwSpCicaan3ptagNDE2JV+IkE4=";
hash = "sha256-ZZBgZX6nrcPGlWQeZekCO57rizpuSVBnfoLzjh3r0Fw=";
};
build-system = [

View File

@ -0,0 +1,117 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
setuptools,
setuptools-scm,
# dependencies
lazy-loader,
matplotlib,
# tests
pytestCheckHook,
anywidget,
graphviz,
h5py,
ipympl,
ipywidgets,
mpltoolbox,
pandas,
plotly,
pooch,
pyarrow,
pythreejs,
scipp,
scipy,
xarray,
# tests data
symlinkJoin,
fetchurl,
}:
buildPythonPackage rec {
pname = "plopp";
version = "25.06.0";
pyproject = true;
src = fetchFromGitHub {
owner = "scipp";
repo = "plopp";
tag = version;
hash = "sha256-SwF0bUU/DAAJ5+0WvZgwqEw6IoaqdbKj0GkCgffGclA=";
};
build-system = [
setuptools
setuptools-scm
];
dependencies = [
lazy-loader
matplotlib
];
nativeCheckInputs = [
pytestCheckHook
anywidget
graphviz
h5py
ipympl
ipywidgets
mpltoolbox
pandas
plotly
pooch
pyarrow
pythreejs
scipp
scipy
xarray
];
env = {
# See: https://github.com/scipp/plopp/blob/25.05.0/src/plopp/data/examples.py
PLOPP_DATA_DIR =
let
# NOTE this might be changed by upstream in the future.
_version = "1";
in
symlinkJoin {
name = "plopp-test-data";
paths =
lib.mapAttrsToList
(
file: hash:
fetchurl {
url = "https://public.esss.dk/groups/scipp/plopp/${_version}/${file}";
inherit hash;
downloadToTemp = true;
recursiveHash = true;
postFetch = ''
mkdir -p $out/${_version}
mv $downloadedFile $out/${_version}/${file}
'';
}
)
{
"nyc_taxi_data.h5" = "sha256-hso8ESM+uLRf4y2CW/7dpAmm/kysAfJY3b+5vz78w4Q=";
"teapot.h5" = "sha256-i6hOw72ce1cBT6FMQTdCEKVe0WOMOjApKperGHoPW34=";
};
};
};
pythonImportsCheck = [
"plopp"
];
meta = {
description = "Visualization library for scipp";
homepage = "https://scipp.github.io/plopp/";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ doronbehar ];
};
}

View File

@ -0,0 +1,114 @@
{
lib,
stdenv,
buildPythonPackage,
fetchFromGitHub,
# build-system
scikit-build-core,
setuptools,
setuptools-scm,
# nativeBuildInputs
cmake,
ninja,
# dependencies
numpy,
units-llnl,
# buildInputs
boost,
eigen,
gtest,
pybind11,
tbb_2022_0,
# tests
pytestCheckHook,
scipy,
beautifulsoup4,
ipython,
matplotlib,
pandas,
numba,
xarray,
h5py,
hypothesis,
}:
buildPythonPackage rec {
pname = "scipp";
version = "25.05.1";
pyproject = true;
src = fetchFromGitHub {
owner = "scipp";
repo = "Scipp";
# https://github.com/scipp/scipp/pull/3722
tag = version;
hash = "sha256-AanXb+nF/YIZFuzG5UnoNPX97WScfPKuoSBY18uYt9k=";
};
env = {
SKIP_CONAN = "true";
};
build-system = [
scikit-build-core
setuptools
setuptools-scm
];
nativeBuildInputs = [
cmake
ninja
];
dontUseCmakeConfigure = true;
dependencies = [
numpy
];
buildInputs = [
boost
eigen
gtest
pybind11
units-llnl.passthru.top-level
tbb_2022_0
];
nativeCheckInputs = [
pytestCheckHook
scipy
beautifulsoup4
ipython
matplotlib
pandas
numba
xarray
h5py
hypothesis
];
pytestFlagsArray = [
# See https://github.com/scipp/scipp/issues/3721
"--hypothesis-profile=ci"
];
pythonImportsCheck = [
"scipp"
];
meta = {
description = "Multi-dimensional data arrays with labeled dimensions";
homepage = "https://scipp.github.io";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ doronbehar ];
# Got:
#
# error: a template argument list is expected after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw]
#
# Needs debugging along with upstream.
broken = stdenv.hostPlatform.isDarwin;
};
}

View File

@ -0,0 +1,56 @@
{
lib,
buildPythonPackage,
units-llnl,
# build-system
nanobind,
scikit-build-core,
# nativeBuildInputs
cmake,
# NOTE that if top-level units-llnl package uses cmakeFlags other then
# Nixpkgs' default, the build might fail, and you'd want to pick only the
# cmakeFlags that don't cause a failure. See also:
# https://github.com/scipp/scipp/issues/3705
cmakeFlags ? units-llnl.cmakeFlags,
ninja,
}:
buildPythonPackage {
inherit (units-llnl)
pname
version
src
meta
;
pyproject = true;
build-system = [
nanobind
scikit-build-core
];
nativeBuildInputs = [
cmake
ninja
];
dontUseCmakeConfigure = true;
env = {
SKBUILD_CMAKE_ARGS = lib.strings.concatStringsSep ";" (
cmakeFlags
++ [
(lib.cmakeBool "UNITS_BUILD_PYTHON_LIBRARY" true)
]
);
};
# Also upstream turns off testing for the python build so it seems, see:
# https://github.com/LLNL/units/blob/v0.13.1/pyproject.toml#L65-L66 However
# they do seem to use pytest for their CI, but in our case it fails due to
# missing googletest Python modules, which we don't know how to build.
doCheck = false;
passthru = {
top-level = units-llnl;
};
}

View File

@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "cutechess";
version = "1.3.1";
version = "1.4.0";
src = fetchFromGitHub {
owner = "cutechess";
repo = "cutechess";
rev = "v${finalAttrs.version}";
hash = "sha256-P44Twbw2MGz+oTzPwMFCe73zPxAex6uYjSTtaUypfHw=";
hash = "sha256-vhS3Eenxcq7D8E5WVON5C5hCTytcEVbYUeuCkfB0apA=";
};
nativeBuildInputs = [

View File

@ -35,7 +35,7 @@ _nixos-rebuild() {
--profile-name -p # name
--rollback
--specialisation -c # name
--use-remote-sudo
--use-sudo
--no-ssh-tty
--build-host # host
--target-host # host

View File

@ -38,7 +38,7 @@
.br
.Op Fl -build-host Va host
.Op Fl -target-host Va host
.Op Fl -use-remote-sudo
.Op Fl -sudo
.Op Fl -no-ssh-tty
.br
.Op Fl -verbose | v
@ -404,7 +404,7 @@ or
is also set. This is useful when the target-host connection to cache.nixos.org
is faster than the connection between hosts.
.
.It Fl -use-remote-sudo
.It Fl -sudo
When set, nixos-rebuild prefixes activation commands that run on the
.Fl -target-host
system with

View File

@ -32,7 +32,7 @@ specialisation=
imageVariant=
buildHost=
targetHost=
remoteSudo=
useSudo=
noSSHTTY=
verboseScript=
noFlake=
@ -170,8 +170,8 @@ while [ "$#" -gt 0 ]; do
targetHost="$1"
shift 1
;;
--use-remote-sudo)
remoteSudo=1
--sudo | --use-remote-sudo)
useSudo=1
;;
--no-ssh-tty)
noSSHTTY=1
@ -237,7 +237,7 @@ buildHostCmd() {
targetHostCmd() {
local c
if [[ "${useSudo:-x}" = 1 ]]; then
if [[ "${withSudo:-x}" = 1 ]]; then
c=("sudo")
else
c=()
@ -256,8 +256,8 @@ targetHostSudoCmd() {
t="-t"
fi
if [ -n "$remoteSudo" ]; then
useSudo=1 SSHOPTS="$SSHOPTS $t" targetHostCmd "$@"
if [[ -n "$useSudo" ]]; then
withSudo=1 SSHOPTS="$SSHOPTS $t" targetHostCmd "$@"
else
# While a tty might not be necessary, we apply it to be consistent with
# sudo usage, and an experience that is more consistent with local deployment.

View File

@ -7,17 +7,18 @@
let
version = "4.3.8";
in
(applyPatches {
applyPatches {
src = fetchFromGitHub {
owner = "mastodon";
repo = "mastodon";
rev = "v${version}";
hash = "sha256-08AApylDOz8oExZ0cRaZTgNAuP+1wiLkx0SDhkO2fMM=";
passthru = {
inherit version;
yarnHash = "sha256-IC4d/skIHEzJPuKlq4rMAqV+ydqquA6toq4WWCfuDxo=";
yarnMissingHashes = null;
};
};
patches = patches ++ [ ];
})
// {
inherit version;
yarnHash = "sha256-IC4d/skIHEzJPuKlq4rMAqV+ydqquA6toq4WWCfuDxo=";
yarnMissingHashes = null;
}

View File

@ -256,115 +256,117 @@ let
'';
}
);
in
server = stdenv.mkDerivation (
common
// {
pname = "mariadb-server";
stdenv.mkDerivation (
finalAttrs:
common
// {
pname = "mariadb-server";
nativeBuildInputs = common.nativeBuildInputs ++ [
bison
boost.dev
flex
nativeBuildInputs = common.nativeBuildInputs ++ [
bison
boost.dev
flex
];
buildInputs =
common.buildInputs
++ [
bzip2
lz4
lzo
snappy
xz
zstd
cracklib
judy
libevent
libxml2
]
++ lib.optional withNuma numactl
++ lib.optionals stdenv.hostPlatform.isLinux [ linux-pam ]
++ lib.optional (!stdenv.hostPlatform.isDarwin) mytopEnv
++ lib.optionals withStorageMroonga [
kytea
libsodium
msgpack
zeromq
]
++ lib.optionals (lib.versionAtLeast common.version "10.11") [ fmt_11 ];
propagatedBuildInputs = lib.optional withNuma numactl;
postPatch = ''
substituteInPlace scripts/galera_new_cluster.sh \
--replace ":-mariadb" ":-mysql"
'';
cmakeFlags =
common.cmakeFlags
++ [
"-DMYSQL_DATADIR=/var/lib/mysql"
"-DENABLED_LOCAL_INFILE=OFF"
"-DWITH_READLINE=ON"
"-DWITH_EXTRA_CHARSETS=all"
"-DWITH_EMBEDDED_SERVER=${if withEmbedded then "ON" else "OFF"}"
"-DWITH_UNIT_TESTS=OFF"
"-DWITH_WSREP=ON"
"-DWITH_INNODB_DISALLOW_WRITES=ON"
"-DWITHOUT_EXAMPLE=1"
"-DWITHOUT_FEDERATED=1"
"-DWITHOUT_TOKUDB=1"
]
++ lib.optionals withNuma [
"-DWITH_NUMA=ON"
]
++ lib.optionals (!withStorageMroonga) [
"-DWITHOUT_MROONGA=1"
]
++ lib.optionals (!withStorageRocks) [
"-DWITHOUT_ROCKSDB=1"
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin && withStorageRocks) [
"-DWITH_ROCKSDB_JEMALLOC=ON"
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
"-DWITH_JEMALLOC=yes"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
"-DPLUGIN_AUTH_PAM=NO"
"-DPLUGIN_AUTH_PAM_V1=NO"
"-DWITHOUT_OQGRAPH=1"
"-DWITHOUT_PLUGIN_S3=1"
];
buildInputs =
common.buildInputs
++ [
bzip2
lz4
lzo
snappy
xz
zstd
cracklib
judy
libevent
libxml2
]
++ lib.optional withNuma numactl
++ lib.optionals stdenv.hostPlatform.isLinux [ linux-pam ]
++ lib.optional (!stdenv.hostPlatform.isDarwin) mytopEnv
++ lib.optionals withStorageMroonga [
kytea
libsodium
msgpack
zeromq
]
++ lib.optionals (lib.versionAtLeast common.version "10.11") [ fmt_11 ];
preConfigure = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
patchShebangs scripts/mytop.sh
'';
propagatedBuildInputs = lib.optional withNuma numactl;
postPatch = ''
substituteInPlace scripts/galera_new_cluster.sh \
--replace ":-mariadb" ":-mysql"
postInstall =
common.postInstall
+ ''
rm -r "$out"/share/aclocal
chmod +x "$out"/bin/wsrep_sst_common
rm -f "$out"/bin/{mariadb-client-test,mariadb-test,mysql_client_test,mysqltest}
''
+ lib.optionalString withStorageMroonga ''
mv "$out"/share/{groonga,groonga-normalizer-mysql} "$out"/share/doc/mysql
''
+ lib.optionalString (!stdenv.hostPlatform.isDarwin && lib.versionAtLeast common.version "10.4") ''
mv "$out"/OFF/suite/plugins/pam/pam_mariadb_mtr.so "$out"/share/pam/lib/security
mv "$out"/OFF/suite/plugins/pam/mariadb_mtr "$out"/share/pam/etc/security
rm -r "$out"/OFF
'';
cmakeFlags =
common.cmakeFlags
++ [
"-DMYSQL_DATADIR=/var/lib/mysql"
"-DENABLED_LOCAL_INFILE=OFF"
"-DWITH_READLINE=ON"
"-DWITH_EXTRA_CHARSETS=all"
"-DWITH_EMBEDDED_SERVER=${if withEmbedded then "ON" else "OFF"}"
"-DWITH_UNIT_TESTS=OFF"
"-DWITH_WSREP=ON"
"-DWITH_INNODB_DISALLOW_WRITES=ON"
"-DWITHOUT_EXAMPLE=1"
"-DWITHOUT_FEDERATED=1"
"-DWITHOUT_TOKUDB=1"
]
++ lib.optionals withNuma [
"-DWITH_NUMA=ON"
]
++ lib.optionals (!withStorageMroonga) [
"-DWITHOUT_MROONGA=1"
]
++ lib.optionals (!withStorageRocks) [
"-DWITHOUT_ROCKSDB=1"
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin && withStorageRocks) [
"-DWITH_ROCKSDB_JEMALLOC=ON"
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
"-DWITH_JEMALLOC=yes"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
"-DPLUGIN_AUTH_PAM=NO"
"-DPLUGIN_AUTH_PAM_V1=NO"
"-DWITHOUT_OQGRAPH=1"
"-DWITHOUT_PLUGIN_S3=1"
];
CXXFLAGS = lib.optionalString stdenv.hostPlatform.isi686 "-fpermissive";
preConfigure = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
patchShebangs scripts/mytop.sh
'';
postInstall =
common.postInstall
+ ''
rm -r "$out"/share/aclocal
chmod +x "$out"/bin/wsrep_sst_common
rm -f "$out"/bin/{mariadb-client-test,mariadb-test,mysql_client_test,mysqltest}
''
+ lib.optionalString withStorageMroonga ''
mv "$out"/share/{groonga,groonga-normalizer-mysql} "$out"/share/doc/mysql
''
+ lib.optionalString (!stdenv.hostPlatform.isDarwin && lib.versionAtLeast common.version "10.4") ''
mv "$out"/OFF/suite/plugins/pam/pam_mariadb_mtr.so "$out"/share/pam/lib/security
mv "$out"/OFF/suite/plugins/pam/mariadb_mtr "$out"/share/pam/etc/security
rm -r "$out"/OFF
'';
CXXFLAGS = lib.optionalString stdenv.hostPlatform.isi686 "-fpermissive";
}
);
in
server
// {
inherit client server;
};
passthru = {
inherit client;
server = finalAttrs.finalPackage;
};
}
);
in
self: {
# see https://mariadb.org/about/#maintenance-policy for EOLs

View File

@ -1,3 +0,0 @@
.deno/
node_modules/
vendor/

View File

@ -1,33 +0,0 @@
{ nix-gitignore, buildDenoPackage }:
{
with-npm-linux = buildDenoPackage rec {
pname = "test-deno-build-binaries-with-npm-${targetSystem}";
version = "0.1.0";
denoDepsHash = "sha256-k2js/8XsxGVu83rGMJed457orraue8WUZF+JUMMfhVQ=";
src = nix-gitignore.gitignoreSource [ ] ./with-npm;
binaryEntrypointPath = "./main.ts";
targetSystem = "x86_64-linux";
};
without-npm-linux = buildDenoPackage rec {
pname = "test-deno-build-binaries-without-npm-${targetSystem}";
version = "0.1.0";
denoDepsHash = "sha256-keshKcgawVcuSGNYAIepUrRl7iqpp0ExRJag4aiV18c=";
src = nix-gitignore.gitignoreSource [ ] ./without-npm;
binaryEntrypointPath = "./main.ts";
targetSystem = "x86_64-linux";
};
# mac =
# let
# targetSystem = "aarch64-darwin";
# macpkgs = import ../../../../default.nix { crossSystem = { config = "arm64-apple-darwin"; };};
# in
# buildDenoPackage {
# pname = "test-deno-build-binaries-${targetSystem}";
# version = "0.1.0";
# denoDepsHash = "";
# src = nix-gitignore.gitignoreSource [ ] ./.;
# binaryEntrypointPath = "./main.ts";
# denortPackage = macpkgs.denort;
# inherit targetSystem;
# };
}

View File

@ -1,3 +0,0 @@
.deno/
node_modules/
vendor/

View File

@ -1,13 +0,0 @@
{
"name": "binary build",
"tasks": {
"build": "deno run --allow-all main.ts"
},
"imports": {
"@luca/cases": "jsr:@luca/cases@1.0.0",
"@std/cli": "jsr:@std/cli@1.0.17",
"cowsay": "npm:cowsay@1.6.0",
"cases": "https://deno.land/x/case@2.2.0/mod.ts"
},
"vendor": true
}

View File

@ -1,215 +0,0 @@
{
"version": "5",
"specifiers": {
"jsr:@luca/cases@1.0.0": "1.0.0",
"jsr:@std/cli@1.0.17": "1.0.17",
"npm:cowsay@1.6.0": "1.6.0"
},
"jsr": {
"@luca/cases@1.0.0": {
"integrity": "b5f9471f1830595e63a2b7d62821ac822a19e16899e6584799be63f17a1fbc30"
},
"@std/cli@1.0.17": {
"integrity": "e15b9abe629e17be90cc6216327f03a29eae613365f1353837fa749aad29ce7b"
}
},
"npm": {
"ansi-regex@3.0.1": {
"integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw=="
},
"ansi-regex@5.0.1": {
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
},
"ansi-styles@4.3.0": {
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": [
"color-convert"
]
},
"camelcase@5.3.1": {
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
},
"cliui@6.0.0": {
"integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
"dependencies": [
"string-width@4.2.3",
"strip-ansi@6.0.1",
"wrap-ansi"
]
},
"color-convert@2.0.1": {
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": [
"color-name"
]
},
"color-name@1.1.4": {
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"cowsay@1.6.0": {
"integrity": "sha512-8C4H1jdrgNusTQr3Yu4SCm+ZKsAlDFbpa0KS0Z3im8ueag+9pGOf3CrioruvmeaW/A5oqg9L0ar6qeftAh03jw==",
"dependencies": [
"get-stdin",
"string-width@2.1.1",
"strip-final-newline",
"yargs"
],
"bin": true
},
"decamelize@1.2.0": {
"integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
},
"emoji-regex@8.0.0": {
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"find-up@4.1.0": {
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dependencies": [
"locate-path",
"path-exists"
]
},
"get-caller-file@2.0.5": {
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
},
"get-stdin@8.0.0": {
"integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg=="
},
"is-fullwidth-code-point@2.0.0": {
"integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w=="
},
"is-fullwidth-code-point@3.0.0": {
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
},
"locate-path@5.0.0": {
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dependencies": [
"p-locate"
]
},
"p-limit@2.3.0": {
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dependencies": [
"p-try"
]
},
"p-locate@4.1.0": {
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dependencies": [
"p-limit"
]
},
"p-try@2.2.0": {
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
},
"path-exists@4.0.0": {
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
},
"require-directory@2.1.1": {
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
},
"require-main-filename@2.0.0": {
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
"set-blocking@2.0.0": {
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
},
"string-width@2.1.1": {
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dependencies": [
"is-fullwidth-code-point@2.0.0",
"strip-ansi@4.0.0"
]
},
"string-width@4.2.3": {
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dependencies": [
"emoji-regex",
"is-fullwidth-code-point@3.0.0",
"strip-ansi@6.0.1"
]
},
"strip-ansi@4.0.0": {
"integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
"dependencies": [
"ansi-regex@3.0.1"
]
},
"strip-ansi@6.0.1": {
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dependencies": [
"ansi-regex@5.0.1"
]
},
"strip-final-newline@2.0.0": {
"integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="
},
"which-module@2.0.1": {
"integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
},
"wrap-ansi@6.2.0": {
"integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"dependencies": [
"ansi-styles",
"string-width@4.2.3",
"strip-ansi@6.0.1"
]
},
"y18n@4.0.3": {
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
},
"yargs-parser@18.1.3": {
"integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
"dependencies": [
"camelcase",
"decamelize"
]
},
"yargs@15.4.1": {
"integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
"dependencies": [
"cliui",
"decamelize",
"find-up",
"get-caller-file",
"require-directory",
"require-main-filename",
"set-blocking",
"string-width@4.2.3",
"which-module",
"y18n",
"yargs-parser"
]
}
},
"remote": {
"https://deno.land/x/case@2.2.0/camelCase.ts": "b9a4cf361a7c9740ecb75e00b5e2c006bd4e5d40e442d26c5f2760286fa66796",
"https://deno.land/x/case@2.2.0/constantCase.ts": "c698fc32f00cd267c1684b1d413d784260d7e7798f2bf506803e418497d839b5",
"https://deno.land/x/case@2.2.0/dotCase.ts": "03ae55d5635e6a4ca894a003d9297cd9cd283af2e7d761dd3de13663849a9423",
"https://deno.land/x/case@2.2.0/headerCase.ts": "3f6c8ab2ab30a88147326bce28a00d1189ec98ab61c83ab72ce79e852afddc4a",
"https://deno.land/x/case@2.2.0/lowerCase.ts": "d75eb55cadfa589f9f2a973924a8a209054477d9574da669410f4d817ab25b41",
"https://deno.land/x/case@2.2.0/lowerFirstCase.ts": "b001efbf2d715b53d066b22cdbf8eda7f99aa7108e3d12fb02f80d499bae93d9",
"https://deno.land/x/case@2.2.0/mod.ts": "28b0b1329c7b18730799ac05627a433d9547c04b9bfb429116247c60edecd97b",
"https://deno.land/x/case@2.2.0/normalCase.ts": "085c8b6f9d69283c8b86f2e504d43278c2be8b7e56a3ed8d4a5f395e398bdc29",
"https://deno.land/x/case@2.2.0/paramCase.ts": "a234c9c17dfbaddee647b6571c2c90e8f6530123fed26c4546f4063d67c1609f",
"https://deno.land/x/case@2.2.0/pascalCase.ts": "4b3ef0a68173871a821d306d4067e8f72d42aeeef1eea6aeab30af6bfa3d7427",
"https://deno.land/x/case@2.2.0/pathCase.ts": "330a34b4df365b0291d8e36158235340131730aae6f6add66962ed2d0fbead4a",
"https://deno.land/x/case@2.2.0/sentenceCase.ts": "b312cef147a13b58ffdf3c36bf55b33aa8322c91f4aa9b32318f3911bb92327f",
"https://deno.land/x/case@2.2.0/snakeCase.ts": "e5ac1e08532ca397aa3150a0a3255d59f63a186d934e5094a8ffd24cbca7f955",
"https://deno.land/x/case@2.2.0/swapCase.ts": "bb03742fcf613f733890680ceca1b39b65ed290f36a317fcd47edd517c4e0e1e",
"https://deno.land/x/case@2.2.0/titleCase.ts": "c287131ea2c955e67cdd5cf604de96d31a8e2813305759922b9ed27e3be354e7",
"https://deno.land/x/case@2.2.0/types.ts": "8e2bd6edaa27c0d1972c0d5b76698564740f37b4d3787d58d1fb5f48de611e61",
"https://deno.land/x/case@2.2.0/upperCase.ts": "6cca267bb04d098bf4abf21e42e60c3e68ede89b12e525643c6b6eff3e10de34",
"https://deno.land/x/case@2.2.0/upperFirstCase.ts": "b964c2d8d3a85c78cd35f609135cbde99d84b9522a21470336b5af80a37facbd",
"https://deno.land/x/case@2.2.0/vendor/camelCaseRegexp.ts": "7d9ff02aad4ab6429eeab7c7353f7bcdd6cc5909a8bd3dda97918c8bbb7621ae",
"https://deno.land/x/case@2.2.0/vendor/camelCaseUpperRegexp.ts": "292de54a698370f90adcdf95727993d09888b7f33d17f72f8e54ba75f7791787",
"https://deno.land/x/case@2.2.0/vendor/nonWordRegexp.ts": "c1a052629a694144b48c66b0175a22a83f4d61cb40f4e45293fc5d6b123f927e"
},
"workspace": {
"dependencies": [
"jsr:@luca/cases@1.0.0",
"jsr:@std/cli@1.0.17",
"npm:cowsay@1.6.0"
]
}
}

View File

@ -1,15 +0,0 @@
import { camelCase } from "@luca/cases";
import { say } from "cowsay";
import { pascalCase } from "cases";
import { parseArgs } from "@std/cli";
const flags = parseArgs(Deno.args, {
string: ["text"],
});
if (!flags.text) {
throw "--text required but not specified";
}
console.log(camelCase(say({ text: flags.text })));
console.log(pascalCase(say({ text: flags.text })));

View File

@ -1,3 +0,0 @@
.deno/
node_modules/
vendor/

View File

@ -1,12 +0,0 @@
{
"name": "binary build",
"tasks": {
"build": "deno run --allow-all main.ts"
},
"imports": {
"@luca/cases": "jsr:@luca/cases@1.0.0",
"@std/cli": "jsr:@std/cli@1.0.17",
"cases": "https://deno.land/x/case@2.2.0/mod.ts"
},
"vendor": true
}

View File

@ -1,44 +0,0 @@
{
"version": "5",
"specifiers": {
"jsr:@luca/cases@1.0.0": "1.0.0",
"jsr:@std/cli@1.0.17": "1.0.17"
},
"jsr": {
"@luca/cases@1.0.0": {
"integrity": "b5f9471f1830595e63a2b7d62821ac822a19e16899e6584799be63f17a1fbc30"
},
"@std/cli@1.0.17": {
"integrity": "e15b9abe629e17be90cc6216327f03a29eae613365f1353837fa749aad29ce7b"
}
},
"remote": {
"https://deno.land/x/case@2.2.0/camelCase.ts": "b9a4cf361a7c9740ecb75e00b5e2c006bd4e5d40e442d26c5f2760286fa66796",
"https://deno.land/x/case@2.2.0/constantCase.ts": "c698fc32f00cd267c1684b1d413d784260d7e7798f2bf506803e418497d839b5",
"https://deno.land/x/case@2.2.0/dotCase.ts": "03ae55d5635e6a4ca894a003d9297cd9cd283af2e7d761dd3de13663849a9423",
"https://deno.land/x/case@2.2.0/headerCase.ts": "3f6c8ab2ab30a88147326bce28a00d1189ec98ab61c83ab72ce79e852afddc4a",
"https://deno.land/x/case@2.2.0/lowerCase.ts": "d75eb55cadfa589f9f2a973924a8a209054477d9574da669410f4d817ab25b41",
"https://deno.land/x/case@2.2.0/lowerFirstCase.ts": "b001efbf2d715b53d066b22cdbf8eda7f99aa7108e3d12fb02f80d499bae93d9",
"https://deno.land/x/case@2.2.0/mod.ts": "28b0b1329c7b18730799ac05627a433d9547c04b9bfb429116247c60edecd97b",
"https://deno.land/x/case@2.2.0/normalCase.ts": "085c8b6f9d69283c8b86f2e504d43278c2be8b7e56a3ed8d4a5f395e398bdc29",
"https://deno.land/x/case@2.2.0/paramCase.ts": "a234c9c17dfbaddee647b6571c2c90e8f6530123fed26c4546f4063d67c1609f",
"https://deno.land/x/case@2.2.0/pascalCase.ts": "4b3ef0a68173871a821d306d4067e8f72d42aeeef1eea6aeab30af6bfa3d7427",
"https://deno.land/x/case@2.2.0/pathCase.ts": "330a34b4df365b0291d8e36158235340131730aae6f6add66962ed2d0fbead4a",
"https://deno.land/x/case@2.2.0/sentenceCase.ts": "b312cef147a13b58ffdf3c36bf55b33aa8322c91f4aa9b32318f3911bb92327f",
"https://deno.land/x/case@2.2.0/snakeCase.ts": "e5ac1e08532ca397aa3150a0a3255d59f63a186d934e5094a8ffd24cbca7f955",
"https://deno.land/x/case@2.2.0/swapCase.ts": "bb03742fcf613f733890680ceca1b39b65ed290f36a317fcd47edd517c4e0e1e",
"https://deno.land/x/case@2.2.0/titleCase.ts": "c287131ea2c955e67cdd5cf604de96d31a8e2813305759922b9ed27e3be354e7",
"https://deno.land/x/case@2.2.0/types.ts": "8e2bd6edaa27c0d1972c0d5b76698564740f37b4d3787d58d1fb5f48de611e61",
"https://deno.land/x/case@2.2.0/upperCase.ts": "6cca267bb04d098bf4abf21e42e60c3e68ede89b12e525643c6b6eff3e10de34",
"https://deno.land/x/case@2.2.0/upperFirstCase.ts": "b964c2d8d3a85c78cd35f609135cbde99d84b9522a21470336b5af80a37facbd",
"https://deno.land/x/case@2.2.0/vendor/camelCaseRegexp.ts": "7d9ff02aad4ab6429eeab7c7353f7bcdd6cc5909a8bd3dda97918c8bbb7621ae",
"https://deno.land/x/case@2.2.0/vendor/camelCaseUpperRegexp.ts": "292de54a698370f90adcdf95727993d09888b7f33d17f72f8e54ba75f7791787",
"https://deno.land/x/case@2.2.0/vendor/nonWordRegexp.ts": "c1a052629a694144b48c66b0175a22a83f4d61cb40f4e45293fc5d6b123f927e"
},
"workspace": {
"dependencies": [
"jsr:@luca/cases@1.0.0",
"jsr:@std/cli@1.0.17"
]
}
}

View File

@ -1,14 +0,0 @@
import { camelCase } from "@luca/cases";
import { pascalCase } from "cases";
import { parseArgs } from "@std/cli";
const flags = parseArgs(Deno.args, {
string: ["text"],
});
if (!flags.text) {
throw "--text required but not specified";
}
console.log(camelCase(flags.text));
console.log(pascalCase(flags.text));

View File

@ -1,4 +0,0 @@
{ pkgs }:
(pkgs.callPackage ./workspaces { })
// (pkgs.callPackage ./binaries { })
// (pkgs.callPackage ./external { })

View File

@ -1,67 +0,0 @@
{ fetchFromGitHub, buildDenoPackage }:
{
readma-cli-linux = buildDenoPackage rec {
pname = "readma-cli";
version = "2.11.0";
denoDepsHash = "sha256-ixet3k6OEWfxVnN/V7vk4qDvoXjA+6bU/JjXk76aThE=";
src = fetchFromGitHub {
owner = "elcoosp";
repo = "readma";
rev = "${version}";
hash = "sha256-FVQTn+r7Ztj02vNvqFZIRIsokWeo1tPfFYffK2tvxjA=";
};
denoInstallFlags = [
"--allow-scripts"
"--frozen"
"--cached-only"
"--entrypoint"
"./cli/mod.ts"
];
binaryEntrypointPath = "./cli/mod.ts";
targetSystem = "x86_64-linux";
};
fresh-init-cli-linux = buildDenoPackage {
pname = "fresh-init-cli";
version = "";
denoDepsHash = "sha256-WlMv431qTt3gw0w/V7lG8LnLkEt8VW1fNpyclzBwMcw=";
src = fetchFromGitHub {
owner = "denoland";
repo = "fresh";
rev = "c7c341b695bad8d0f3e3575e5fa9c82e0fa28bd4";
hash = "sha256-bC4akr4Wt4sRqGkgjNuXztW8Q6YBLBsbuIOhsXH8NQU=";
};
denoWorkspacePath = "./init";
binaryEntrypointPath = "./src/mod.ts";
targetSystem = "x86_64-linux";
};
invidious-companion-cli-linux = buildDenoPackage {
pname = "invidious-companion-cli";
version = "";
denoDepsHash = "sha256-sPcvVaVb4VsLI87kiYe3Z3eoXL1uDKwTQMck91cXVnM=";
src = fetchFromGitHub {
owner = "iv-org";
repo = "invidious-companion";
rev = "a34c27ff63e51f9e3adc0e8647cd12382f8f1ffe";
hash = "sha256-/S8F7G8li12k0objsdFuh+mle6p2mk8zNUUCrG9hgns=";
};
binaryEntrypointPath = "src/main.ts";
denoCompileFlags = [
"--include=./src/lib/helpers/youtubePlayerReq.ts"
"--include=./src/lib/helpers/getFetchClient.ts"
"--allow-import=github.com:443,jsr.io:443,cdn.jsdelivr.net:443,esm.sh:443,deno.land:443"
"--allow-net"
"--allow-env"
"--allow-read"
"--allow-sys=hostname"
"--allow-write=/var/tmp/youtubei.js"
];
denoInstallFlags = [
"--allow-scripts"
"--frozen"
"--cached-only"
"--entrypoint"
"src/main.ts"
];
targetSystem = "x86_64-linux";
};
}

View File

@ -1,9 +0,0 @@
let
pkgs = import ../../../default.nix { };
in
pkgs.mkShell {
buildInputs = [ pkgs.deno ];
DENO_DIR = "./.deno";
shellHook = '''';
}

View File

@ -1,3 +0,0 @@
.deno/
node_modules/
vendor/

View File

@ -1,40 +0,0 @@
{ nix-gitignore, buildDenoPackage }:
rec {
sub1 = buildDenoPackage {
pname = "test-deno-build-workspaces-sub1";
version = "0.1.0";
denoDepsHash = "sha256-imraVvtIJqi31aaWv7U1ODVRmOuou1ZR++z7QqnTPr0=";
src = nix-gitignore.gitignoreSource [ ] ./.;
denoWorkspacePath = "./sub1";
extraTaskFlags = [
"--text"
"sub1"
];
denoTaskSuffix = ">out.txt";
installPhase = ''
cp out.txt $out
'';
};
sub2 = buildDenoPackage {
pname = "test-deno-build-workspaces-sub2";
version = "0.1.0";
inherit (sub1) denoDeps src;
denoWorkspacePath = "./sub2";
extraTaskFlags = [
"--text"
"sub2"
];
denoTaskSuffix = ">out.txt";
installPhase = ''
cp out.txt $out
'';
};
sub1Binary = buildDenoPackage {
pname = "test-deno-build-workspaces-sub1-binary";
version = "0.1.0";
inherit (sub1) denoDeps src;
denoWorkspacePath = "./sub1";
binaryEntrypointPath = "./main.ts";
};
}

Some files were not shown because too many files have changed in this diff Show More