Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2023-12-22 00:12:39 +00:00 committed by GitHub
commit d34c05a7c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
203 changed files with 4542 additions and 1437 deletions

View file

@ -1,5 +1,7 @@
# Checks pkgs/by-name (see pkgs/by-name/README.md)
# using the nixpkgs-check-by-name tool (see pkgs/test/nixpkgs-check-by-name)
#
# When you make changes to this workflow, also update pkgs/test/nixpkgs-check-by-name/scripts/run-local.sh adequately
name: Check pkgs/by-name
# The pre-built tool is fetched from a channel,
@ -21,6 +23,9 @@ jobs:
# The default of 6 hours is definitely too long
timeout-minutes: 10
steps:
# This step has to be in this file,
# because it's needed to determine which revision of the repository to fetch,
# and we can only use other files from the repository once it's fetched.
- name: Resolving the merge commit
env:
GH_TOKEN: ${{ github.token }}
@ -80,124 +85,20 @@ jobs:
ref: ${{ env.mergedSha }}
# Fetches the merge commit and its parents
fetch-depth: 2
- name: Determining PR git hashes
- name: Checking out base branch
run: |
# For pull_request_target this is the same as $GITHUB_SHA
echo "baseSha=$(git rev-parse HEAD^1)" >> "$GITHUB_ENV"
echo "headSha=$(git rev-parse HEAD^2)" >> "$GITHUB_ENV"
base=$(mktemp -d)
git worktree add "$base" "$(git rev-parse HEAD^1)"
echo "base=$base" >> "$GITHUB_ENV"
- uses: cachix/install-nix-action@7ac1ec25491415c381d9b62f0657c7a028df52a7 # v24
- name: Determining channel to use for dependencies
run: |
echo "Determining the preferred channel to use for PR base branch $GITHUB_BASE_REF"
if [[ "$GITHUB_BASE_REF" =~ ^(release|staging|staging-next)-([0-9][0-9]\.[0-9][0-9])$ ]]; then
# Use the release channel for all PRs to release-XX.YY, staging-XX.YY and staging-next-XX.YY
channel=nixos-${BASH_REMATCH[2]}
echo "PR is for a release branch, preferred channel is $channel"
else
# Use the nixos-unstable channel for all other PRs
channel=nixos-unstable
echo "PR is for a non-release branch, preferred channel is $channel"
fi
# Check that the channel exists. It doesn't exist for fresh release branches
if ! curl -fSs "https://channels.nixos.org/$channel"; then
# Fall back to nixos-unstable, makes sense for fresh release branches
echo "Preferred channel $channel could not be fetched, falling back to nixos-unstable"
channel=nixos-unstable
fi
echo "channel=$channel" >> "$GITHUB_ENV"
- name: Fetching latest version of channel
run: |
echo "Fetching latest version of channel $channel"
# This is probably the easiest way to get Nix to output the path to a downloaded channel!
nixpkgs=$(nix-instantiate --find-file nixpkgs -I nixpkgs=channel:"$channel")
# This file only exists in channels
rev=$(<"$nixpkgs"/.git-revision)
echo "Channel $channel is at revision $rev"
echo "nixpkgs=$nixpkgs" >> "$GITHUB_ENV"
echo "rev=$rev" >> "$GITHUB_ENV"
- name: Fetching pre-built nixpkgs-check-by-name from the channel
run: |
echo "Fetching pre-built nixpkgs-check-by-name from channel $channel at revision $rev"
# Passing --max-jobs 0 makes sure that we won't build anything
nix-build "$nixpkgs" -A tests.nixpkgs-check-by-name --max-jobs 0
- name: Fetching the tool
run: pkgs/test/nixpkgs-check-by-name/scripts/fetch-tool.sh "$GITHUB_BASE_REF" result
- name: Running nixpkgs-check-by-name
run: |
echo "Checking whether the check succeeds on the base branch $GITHUB_BASE_REF"
git checkout -q "$baseSha"
if baseOutput=$(result/bin/nixpkgs-check-by-name . 2>&1); then
baseSuccess=1
if result/bin/nixpkgs-check-by-name --base "$base" .; then
exit 0
else
baseSuccess=
exitCode=$?
echo "To run locally: ./maintainers/scripts/check-by-name.sh $GITHUB_BASE_REF https://github.com/$GITHUB_REPOSITORY.git"
exit "$exitCode"
fi
printf "%s\n" "$baseOutput"
echo "Checking whether the check would succeed after merging this pull request"
git checkout -q "$mergedSha"
if mergedOutput=$(result/bin/nixpkgs-check-by-name . 2>&1); then
mergedSuccess=1
exitCode=0
else
mergedSuccess=
exitCode=1
fi
printf "%s\n" "$mergedOutput"
resultToEmoji() {
if [[ -n "$1" ]]; then
echo ":heavy_check_mark:"
else
echo ":x:"
fi
}
# Print a markdown summary in GitHub actions
{
echo "| Nixpkgs version | Check result |"
echo "| --- | --- |"
echo "| Latest base commit | $(resultToEmoji "$baseSuccess") |"
echo "| After merging this PR | $(resultToEmoji "$mergedSuccess") |"
echo ""
if [[ -n "$baseSuccess" ]]; then
if [[ -n "$mergedSuccess" ]]; then
echo "The check succeeds on both the base branch and after merging this PR"
else
echo "The check succeeds on the base branch, but would fail after merging this PR:"
echo "\`\`\`"
echo "$mergedOutput"
echo "\`\`\`"
echo ""
fi
else
if [[ -n "$mergedSuccess" ]]; then
echo "The check fails on the base branch, but this PR fixes it, nicely done!"
else
echo "The check fails on both the base branch and after merging this PR, unknown if only this PRs changes would satisfy the check, the base branch needs to be fixed first."
echo ""
echo "Failure on the base branch:"
echo "\`\`\`"
echo "$baseOutput"
echo "\`\`\`"
echo ""
echo "Failure after merging this PR:"
echo "\`\`\`"
echo "$mergedOutput"
echo "\`\`\`"
echo ""
fi
fi
echo "### Details"
echo "- nixpkgs-check-by-name tool:"
echo " - Channel: $channel"
echo " - Nixpkgs commit: [$rev](https://github.com/${GITHUB_REPOSITORY}/commit/$rev)"
echo " - Store path: \`$(realpath result)\`"
echo "- Tested Nixpkgs:"
echo " - Base branch: $GITHUB_BASE_REF"
echo " - Latest base branch commit: [$baseSha](https://github.com/${GITHUB_REPOSITORY}/commit/$baseSha)"
echo " - Latest PR commit: [$headSha](https://github.com/${GITHUB_REPOSITORY}/commit/$headSha)"
echo " - Merge commit: [$mergedSha](https://github.com/${GITHUB_REPOSITORY}/commit/$mergedSha)"
} >> "$GITHUB_STEP_SUMMARY"
exit "$exitCode"

View file

@ -1,4 +1,5 @@
# Testers {#chap-testers}
This chapter describes several testing builders which are available in the `testers` namespace.
## `hasPkgConfigModules` {#tester-hasPkgConfigModules}
@ -6,19 +7,11 @@ This chapter describes several testing builders which are available in the `test
<!-- Old anchor name so links still work -->
[]{#tester-hasPkgConfigModule}
Checks whether a package exposes a given list of `pkg-config` modules.
If the `moduleNames` argument is omitted, `hasPkgConfigModules` will
use `meta.pkgConfigModules`.
If the `moduleNames` argument is omitted, `hasPkgConfigModules` will use `meta.pkgConfigModules`.
Example:
:::{.example #ex-haspkgconfigmodules-defaultvalues}
```nix
passthru.tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
moduleNames = [ "libfoo" ];
};
```
If the package in question has `meta.pkgConfigModules` set, it is even simpler:
# Check that `pkg-config` modules are exposed using default values
```nix
passthru.tests.pkg-config = testers.hasPkgConfigModules {
@ -28,6 +21,21 @@ passthru.tests.pkg-config = testers.hasPkgConfigModules {
meta.pkgConfigModules = [ "libfoo" ];
```
:::
:::{.example #ex-haspkgconfigmodules-explicitmodules}
# Check that `pkg-config` modules are exposed using explicit module names
```nix
passthru.tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
moduleNames = [ "libfoo" ];
};
```
:::
## `testVersion` {#tester-testVersion}
Checks that the output from running a command contains the specified version string in it as a whole word.
@ -83,7 +91,18 @@ This returns a derivation with an override on the builder, with the following ef
- Move `$out` to `$out/result`, if it exists (assuming `out` is the default output)
- Save the build log to `$out/testBuildFailure.log` (same)
Example:
While `testBuildFailure` is designed to keep changes to the original builder's environment to a minimum, some small changes are inevitable:
- The file `$TMPDIR/testBuildFailure.log` is present. It should not be deleted.
- `stdout` and `stderr` are a pipe instead of a tty. This could be improved.
- One or two extra processes are present in the sandbox during the original builder's execution.
- The derivation and output hashes are different, but not unusual.
- The derivation includes a dependency on `buildPackages.bash` and `expect-failure.sh`, which is built to include a transitive dependency on `buildPackages.coreutils` and possibly more.
These are not added to `PATH` or any other environment variable, so they should be hard to observe.
:::{.example #ex-testBuildFailure-showingenvironmentchanges}
# Check that a build fails, and verify the changes made during build
```nix
runCommand "example" {
@ -100,24 +119,15 @@ runCommand "example" {
'';
```
While `testBuildFailure` is designed to keep changes to the original builder's
environment to a minimum, some small changes are inevitable.
- The file `$TMPDIR/testBuildFailure.log` is present. It should not be deleted.
- `stdout` and `stderr` are a pipe instead of a tty. This could be improved.
- One or two extra processes are present in the sandbox during the original
builder's execution.
- The derivation and output hashes are different, but not unusual.
- The derivation includes a dependency on `buildPackages.bash` and
`expect-failure.sh`, which is built to include a transitive dependency on
`buildPackages.coreutils` and possibly more. These are not added to `PATH`
or any other environment variable, so they should be hard to observe.
:::
## `testEqualContents` {#tester-equalContents}
Check that two paths have the same contents.
Example:
:::{.example #ex-testEqualContents-toyexample}
# Check that two paths have the same contents
```nix
testers.testEqualContents {
@ -137,17 +147,20 @@ testers.testEqualContents {
}
```
:::
## `testEqualDerivation` {#tester-testEqualDerivation}
Checks that two packages produce the exact same build instructions.
This can be used to make sure that a certain difference of configuration,
such as the presence of an overlay does not cause a cache miss.
This can be used to make sure that a certain difference of configuration, such as the presence of an overlay does not cause a cache miss.
When the derivations are equal, the return value is an empty file.
Otherwise, the build log explains the difference via `nix-diff`.
Example:
:::{.example #ex-testEqualDerivation-hello}
# Check that two packages produce the same derivation
```nix
testers.testEqualDerivation
@ -156,29 +169,28 @@ testers.testEqualDerivation
(hello.overrideAttrs(o: { doCheck = true; }))
```
:::
## `invalidateFetcherByDrvHash` {#tester-invalidateFetcherByDrvHash}
Use the derivation hash to invalidate the output via name, for testing.
Type: `(a@{ name, ... } -> Derivation) -> a -> Derivation`
Normally, fixed output derivations can and should be cached by their output
hash only, but for testing we want to re-fetch everytime the fetcher changes.
Normally, fixed output derivations can and should be cached by their output hash only, but for testing we want to re-fetch everytime the fetcher changes.
Changes to the fetcher become apparent in the drvPath, which is a hash of
how to fetch, rather than a fixed store path.
By inserting this hash into the name, we can make sure to re-run the fetcher
every time the fetcher changes.
Changes to the fetcher become apparent in the drvPath, which is a hash of how to fetch, rather than a fixed store path.
By inserting this hash into the name, we can make sure to re-run the fetcher every time the fetcher changes.
This relies on the assumption that Nix isn't clever enough to reuse its
database of local store contents to optimize fetching.
This relies on the assumption that Nix isn't clever enough to reuse its database of local store contents to optimize fetching.
You might notice that the "salted" name derives from the normal invocation,
not the final derivation. `invalidateFetcherByDrvHash` has to invoke the fetcher
function twice: once to get a derivation hash, and again to produce the final
fixed output derivation.
You might notice that the "salted" name derives from the normal invocation, not the final derivation.
`invalidateFetcherByDrvHash` has to invoke the fetcher function twice:
once to get a derivation hash, and again to produce the final fixed output derivation.
Example:
:::{.example #ex-invalidateFetcherByDrvHash-nix}
# Prevent nix from reusing the output of a fetcher
```nix
tests.fetchgit = testers.invalidateFetcherByDrvHash fetchgit {
@ -189,13 +201,17 @@ tests.fetchgit = testers.invalidateFetcherByDrvHash fetchgit {
};
```
:::
## `runNixOSTest` {#tester-runNixOSTest}
A helper function that behaves exactly like the NixOS `runTest`, except it also assigns this Nixpkgs package set as the `pkgs` of the test and makes the `nixpkgs.*` options read-only.
If your test is part of the Nixpkgs repository, or if you need a more general entrypoint, see ["Calling a test" in the NixOS manual](https://nixos.org/manual/nixos/stable/index.html#sec-calling-nixos-tests).
Example:
:::{.example #ex-runNixOSTest-hello}
# Run a NixOS test using `runNixOSTest`
```nix
pkgs.testers.runNixOSTest ({ lib, ... }: {
@ -209,19 +225,17 @@ pkgs.testers.runNixOSTest ({ lib, ... }: {
})
```
:::
## `nixosTest` {#tester-nixosTest}
Run a NixOS VM network test using this evaluation of Nixpkgs.
NOTE: This function is primarily for external use. NixOS itself uses `make-test-python.nix` directly. Packages defined in Nixpkgs [reuse NixOS tests via `nixosTests`, plural](#ssec-nixos-tests-linking).
It is mostly equivalent to the function `import ./make-test-python.nix` from the
[NixOS manual](https://nixos.org/nixos/manual/index.html#sec-nixos-tests),
except that the current application of Nixpkgs (`pkgs`) will be used, instead of
letting NixOS invoke Nixpkgs anew.
It is mostly equivalent to the function `import ./make-test-python.nix` from the [NixOS manual](https://nixos.org/nixos/manual/index.html#sec-nixos-tests), except that the current application of Nixpkgs (`pkgs`) will be used, instead of letting NixOS invoke Nixpkgs anew.
If a test machine needs to set NixOS options under `nixpkgs`, it must set only the
`nixpkgs.pkgs` option.
If a test machine needs to set NixOS options under `nixpkgs`, it must set only the `nixpkgs.pkgs` option.
### Parameter {#tester-nixosTest-parameter}

View file

@ -261,14 +261,50 @@ For more complex cases, like libraries linked into an executable which is then e
As described in the Nix manual, almost any `*.drv` store path in a derivations attribute set will induce a dependency on that derivation. `mkDerivation`, however, takes a few attributes intended to include all the dependencies of a package. This is done both for structure and consistency, but also so that certain other setup can take place. For example, certain dependencies need their bin directories added to the `PATH`. That is built-in, but other setup is done via a pluggable mechanism that works in conjunction with these dependency attributes. See [](#ssec-setup-hooks) for details.
Dependencies can be broken down along three axes: their host and target platforms relative to the new derivations, and whether they are propagated. The platform distinctions are motivated by cross compilation; see [](#chap-cross) for exactly what each platform means. [^footnote-stdenv-ignored-build-platform] But even if one is not cross compiling, the platforms imply whether or not the dependency is needed at run-time or build-time, a concept that makes perfect sense outside of cross compilation. By default, the run-time/build-time distinction is just a hint for mental clarity, but with `strictDeps` set it is mostly enforced even in the native case.
Dependencies can be broken down along these axes: their host and target platforms relative to the new derivations. The platform distinctions are motivated by cross compilation; see [](#chap-cross) for exactly what each platform means. [^footnote-stdenv-ignored-build-platform] But even if one is not cross compiling, the platforms imply whether a dependency is needed at run-time or build-time.
The extension of `PATH` with dependencies, alluded to above, proceeds according to the relative platforms alone. The process is carried out only for dependencies whose host platform matches the new derivations build platform i.e. dependencies which run on the platform where the new derivation will be built. [^footnote-stdenv-native-dependencies-in-path] For each dependency \<dep\> of those dependencies, `dep/bin`, if present, is added to the `PATH` environment variable.
A dependency is said to be **propagated** when some of its other-transitive (non-immediate) downstream dependencies also need it as an immediate dependency.
[^footnote-stdenv-propagated-dependencies]
### Dependency propagation {#ssec-stdenv-dependencies-propagated}
It is important to note that dependencies are not necessarily propagated as the same sort of dependency that they were before, but rather as the corresponding sort so that the platform rules still line up. To determine the exact rules for dependency propagation, we start by assigning to each dependency a couple of ternary numbers (`-1` for `build`, `0` for `host`, and `1` for `target`) representing its [dependency type](#possible-dependency-types), which captures how its host and target platforms are each "offset" from the depending derivations host and target platforms. The following table summarize the different combinations that can be obtained:
Propagated dependencies are made available to all downstream dependencies.
This is particularly useful for interpreted languages, where all transitive dependencies have to be present in the same environment.
Therefore it is used for the Python infrastructure in Nixpkgs.
:::{.note}
Propagated dependencies should be used with care, because they obscure the actual build inputs of dependent derivations and cause side effects through setup hooks.
This can lead to conflicting dependencies that cannot easily be resolved.
:::
:::{.example}
# A propagated dependency
```nix
with import <nixpkgs> {};
let
bar = stdenv.mkDerivation {
name = "bar";
dontUnpack = true;
# `hello` is also made available to dependents, such as `foo`
propagatedBuildInputs = [ hello ];
postInstall = "mkdir $out";
};
foo = stdenv.mkDerivation {
name = "foo";
dontUnpack = true;
# `bar` is a direct dependency, which implicitly includes the propagated `hello`
buildInputs = [ bar ];
# The `hello` binary is available!
postInstall = "hello > $out";
};
in
foo
```
:::
Dependency propagation takes cross compilation into account, meaning that dependencies that cross platform boundaries are properly adjusted.
To determine the exact rules for dependency propagation, we start by assigning to each dependency a couple of ternary numbers (`-1` for `build`, `0` for `host`, and `1` for `target`) representing its [dependency type](#possible-dependency-types), which captures how its host and target platforms are each "offset" from the depending derivations host and target platforms. The following table summarize the different combinations that can be obtained:
| `host → target` | attribute name | offset |
| ------------------- | ------------------- | -------- |

View file

@ -2722,6 +2722,12 @@
githubId = 53131727;
name = "Bryan Albuquerque";
};
bryango = {
name = "Bryan Lai";
email = "bryanlais@gmail.com";
github = "bryango";
githubId = 26322692;
};
bryanhonof = {
name = "Bryan Honof";
email = "bryanhonof@gmail.com";
@ -4240,6 +4246,12 @@
fingerprint = "B26F 9AD8 DA20 3392 EF87 C61A BB99 9F83 D9A1 9A36";
}];
};
dblsaiko = {
email = "me@dblsaiko.net";
github = "2xsaiko";
githubId = 3987560;
name = "Marco Rebhan";
};
dbohdan = {
email = "dbohdan@dbohdan.com";
github = "dbohdan";
@ -9045,6 +9057,12 @@
githubId = 752510;
name = "Martin Potier";
};
jpts = {
email = "james+nixpkgs@cleverley-prance.uk";
github = "jpts";
githubId = 5352661;
name = "James Cleverley-Prance";
};
jqqqqqqqqqq = {
email = "jqqqqqqqqqq@gmail.com";
github = "jqqqqqqqqqq";

View file

@ -9,6 +9,10 @@ What follows is a (very incomplete) overview of available scripts.
## Metadata
### `check-by-name.sh`
An alias for `pkgs/test/nixpkgs-check-by-name/scripts/run-local.sh`, see [documentation](../../pkgs/test/nixpkgs-check-by-name/scripts/README.md).
### `get-maintainer.sh`
`get-maintainer.sh [selector] value` returns a JSON object describing

View file

@ -0,0 +1 @@
../../pkgs/test/nixpkgs-check-by-name/scripts/run-local.sh

View file

@ -39,6 +39,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `k9s` was updated to v0.29. There have been breaking changes in the config file format, check out the [changelog](https://github.com/derailed/k9s/releases/tag/v0.29.0) for details.
- `nitter` requires a `guest_accounts.jsonl` to be provided as a path or loaded into the default location at `/var/lib/nitter/guest_accounts.jsonl`. See [Guest Account Branch Deployment](https://github.com/zedeus/nitter/wiki/Guest-Account-Branch-Deployment) for details.
- Invidious has changed its default database username from `kemal` to `invidious`. Setups involving an externally provisioned database (i.e. `services.invidious.database.createLocally == false`) should adjust their configuration accordingly. The old `kemal` user will not be removed automatically even when the database is provisioned automatically.(https://github.com/NixOS/nixpkgs/pull/265857)
- `mkosi` was updated to v19. Parts of the user interface have changed. Consult the

View file

@ -1259,6 +1259,7 @@
./services/web-apps/changedetection-io.nix
./services/web-apps/chatgpt-retrieval-plugin.nix
./services/web-apps/cloudlog.nix
./services/web-apps/code-server.nix
./services/web-apps/convos.nix
./services/web-apps/dex.nix
./services/web-apps/discourse.nix

View file

@ -49,7 +49,14 @@ in {
default = true;
};
package = lib.mkPackageOption pkgs "nix-direnv" {};
package = lib.mkOption {
default = pkgs.nix-direnv.override { nix = config.nix.package; };
defaultText = "pkgs.nix-direnv";
type = lib.types.package;
description = lib.mdDoc ''
The nix-direnv package to use
'';
};
};
};

View file

@ -26,13 +26,28 @@ let
};
};
defaultSwayPackage = pkgs.sway.override {
extraSessionCommands = cfg.extraSessionCommands;
extraOptions = cfg.extraOptions;
withBaseWrapper = cfg.wrapperFeatures.base;
withGtkWrapper = cfg.wrapperFeatures.gtk;
isNixOS = true;
};
genFinalPackage = pkg:
let
expectedArgs = lib.naturalSort [
"extraSessionCommands"
"extraOptions"
"withBaseWrapper"
"withGtkWrapper"
"isNixOS"
];
existedArgs = with lib;
naturalSort
(intersectLists expectedArgs (attrNames (functionArgs pkg.override)));
in if existedArgs != expectedArgs then
pkg
else
pkg.override {
extraSessionCommands = cfg.extraSessionCommands;
extraOptions = cfg.extraOptions;
withBaseWrapper = cfg.wrapperFeatures.base;
withGtkWrapper = cfg.wrapperFeatures.gtk;
isNixOS = true;
};
in {
options.programs.sway = {
enable = mkEnableOption (lib.mdDoc ''
@ -44,14 +59,16 @@ in {
package = mkOption {
type = with types; nullOr package;
default = defaultSwayPackage;
default = pkgs.sway;
apply = p: if p == null then null else genFinalPackage p;
defaultText = literalExpression "pkgs.sway";
description = lib.mdDoc ''
Sway package to use. Will override the options
'wrapperFeatures', 'extraSessionCommands', and 'extraOptions'.
Set to `null` to not add any Sway package to your
path. This should be done if you want to use the Home Manager Sway
module to install Sway.
Sway package to use. If the package does not contain the override arguments
`extraSessionCommands`, `extraOptions`, `withBaseWrapper`, `withGtkWrapper`,
`isNixOS`, then the module options {option}`wrapperFeatures`,
{option}`wrapperFeatures` and {option}`wrapperFeatures` will have no effect.
Set to `null` to not add any Sway package to your path. This should be done if
you want to use the Home Manager Sway module to install Sway.
'';
};

View file

@ -35,6 +35,12 @@ let
type = lib.types.str;
};
extraGroups = lib.mkOption {
default = [ "keys" ];
description = lib.mdDoc "Groups the user for this buildkite agent should belong to";
type = lib.types.listOf lib.types.str;
};
runtimePackages = lib.mkOption {
default = [ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ];
defaultText = lib.literalExpression "[ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ]";
@ -150,7 +156,7 @@ in
home = cfg.dataDir;
createHome = true;
description = "Buildkite agent user";
extraGroups = [ "keys" ];
extraGroups = cfg.extraGroups;
isSystemUser = true;
group = "buildkite-agent-${name}";
};

View file

@ -304,6 +304,23 @@ in
'';
};
guestAccounts = mkOption {
type = types.path;
default = "/var/lib/nitter/guest_accounts.jsonl";
description = lib.mdDoc ''
Path to the guest accounts file.
This file contains a list of guest accounts that can be used to
access the instance without logging in. The file is in JSONL format,
where each line is a JSON object with the following fields:
{"oauth_token":"some_token","oauth_token_secret":"some_secret_key"}
See https://github.com/zedeus/nitter/wiki/Guest-Account-Branch-Deployment
for more information on guest accounts and how to generate them.
'';
};
redisCreateLocally = mkOption {
type = types.bool;
default = true;
@ -333,8 +350,12 @@ in
after = [ "network-online.target" ];
serviceConfig = {
DynamicUser = true;
LoadCredential="guestAccountsFile:${cfg.guestAccounts}";
StateDirectory = "nitter";
Environment = [ "NITTER_CONF_FILE=/var/lib/nitter/nitter.conf" ];
Environment = [
"NITTER_CONF_FILE=/var/lib/nitter/nitter.conf"
"NITTER_ACCOUNTS_FILE=%d/guestAccountsFile"
];
# Some parts of Nitter expect `public` folder in working directory,
# see https://github.com/zedeus/nitter/issues/414
WorkingDirectory = "${cfg.package}/share/nitter";

View file

@ -0,0 +1,259 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.code-server;
defaultUser = "code-server";
defaultGroup = defaultUser;
in {
options = {
services.code-server = {
enable = lib.mkEnableOption (lib.mdDoc "code-server");
package = lib.mkPackageOptionMD pkgs "code-server" {
example = ''
pkgs.vscode-with-extensions.override {
vscode = pkgs.code-server;
vscodeExtensions = with pkgs.vscode-extensions; [
bbenoist.nix
dracula-theme.theme-dracula
];
}
'';
};
extraPackages = lib.mkOption {
default = [ ];
description = lib.mdDoc ''
Additional packages to add to the code-server {env}`PATH`.
'';
example = lib.literalExpression "[ pkgs.go ]";
type = lib.types.listOf lib.types.package;
};
extraEnvironment = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
description = lib.mdDoc ''
Additional environment variables to pass to code-server.
'';
default = { };
example = { PKG_CONFIG_PATH = "/run/current-system/sw/lib/pkgconfig"; };
};
extraArguments = lib.mkOption {
default = [ ];
description = lib.mdDoc ''
Additional arguments to pass to code-server.
'';
example = lib.literalExpression ''[ "--log=info" ]'';
type = lib.types.listOf lib.types.str;
};
host = lib.mkOption {
default = "localhost";
description = lib.mdDoc ''
The host name or IP address the server should listen to.
'';
type = lib.types.str;
};
port = lib.mkOption {
default = 4444;
description = lib.mdDoc ''
The port the server should listen to.
'';
type = lib.types.port;
};
auth = lib.mkOption {
default = "password";
description = lib.mdDoc ''
The type of authentication to use.
'';
type = lib.types.enum [ "none" "password" ];
};
hashedPassword = lib.mkOption {
default = "";
description = lib.mdDoc ''
Create the password with: `echo -n 'thisismypassword' | npx argon2-cli -e`.
'';
type = lib.types.str;
};
user = lib.mkOption {
default = defaultUser;
example = "yourUser";
description = lib.mdDoc ''
The user to run code-server as.
By default, a user named `${defaultUser}` will be created.
'';
type = lib.types.str;
};
group = lib.mkOption {
default = defaultGroup;
example = "yourGroup";
description = lib.mdDoc ''
The group to run code-server under.
By default, a group named `${defaultGroup}` will be created.
'';
type = lib.types.str;
};
extraGroups = lib.mkOption {
default = [ ];
description = lib.mdDoc ''
An array of additional groups for the `${defaultUser}` user.
'';
example = [ "docker" ];
type = lib.types.listOf lib.types.str;
};
socket = lib.mkOption {
default = null;
example = "/run/code-server/socket";
description = lib.mdDoc ''
Path to a socket (bind-addr will be ignored).
'';
type = lib.types.nullOr lib.types.str;
};
socketMode = lib.mkOption {
default = null;
description = lib.mdDoc ''
File mode of the socket.
'';
type = lib.types.nullOr lib.types.str;
};
userDataDir = lib.mkOption {
default = null;
description = lib.mdDoc ''
Path to the user data directory.
'';
type = lib.types.nullOr lib.types.str;
};
extensionsDir = lib.mkOption {
default = null;
description = lib.mdDoc ''
Path to the extensions directory.
'';
type = lib.types.nullOr lib.types.str;
};
proxyDomain = lib.mkOption {
default = null;
example = "code-server.lan";
description = lib.mdDoc ''
Domain used for proxying ports.
'';
type = lib.types.nullOr lib.types.str;
};
disableTelemetry = lib.mkOption {
default = false;
example = true;
description = lib.mdDoc ''
Disable telemetry.
'';
type = lib.types.bool;
};
disableUpdateCheck = lib.mkOption {
default = false;
example = true;
description = lib.mdDoc ''
Disable update check.
Without this flag, code-server checks every 6 hours against the latest github release and
then notifies you once every week that a new release is available.
'';
type = lib.types.bool;
};
disableFileDownloads = lib.mkOption {
default = false;
example = true;
description = lib.mdDoc ''
Disable file downloads from Code.
'';
type = lib.types.bool;
};
disableWorkspaceTrust = lib.mkOption {
default = false;
example = true;
description = lib.mdDoc ''
Disable Workspace Trust feature.
'';
type = lib.types.bool;
};
disableGettingStartedOverride = lib.mkOption {
default = false;
example = true;
description = lib.mdDoc ''
Disable the coder/coder override in the Help: Getting Started page.
'';
type = lib.types.bool;
};
};
};
config = lib.mkIf cfg.enable {
systemd.services.code-server = {
description = "Code server";
wantedBy = [ "multi-user.target" ];
after = [ "network-online.target" ];
path = cfg.extraPackages;
environment = {
HASHED_PASSWORD = cfg.hashedPassword;
} // cfg.extraEnvironment;
serviceConfig = {
ExecStart = ''
${lib.getExe cfg.package} \
--auth=${cfg.auth} \
--bind-addr=${cfg.host}:${toString cfg.port} \
'' + lib.optionalString (cfg.socket != null) ''
--socket=${cfg.socket} \
'' + lib.optionalString (cfg.userDataDir != null) ''
--user-data-dir=${cfg.userDataDir} \
'' + lib.optionalString (cfg.extensionsDir != null) ''
--extensions-dir=${cfg.extensionsDir} \
'' + lib.optionalString (cfg.disableTelemetry == true) ''
--disable-telemetry \
'' + lib.optionalString (cfg.disableUpdateCheck == true) ''
--disable-update-check \
'' + lib.optionalString (cfg.disableFileDownloads == true) ''
--disable-file-downloads \
'' + lib.optionalString (cfg.disableWorkspaceTrust == true) ''
--disable-workspace-trust \
'' + lib.optionalString (cfg.disableGettingStartedOverride == true) ''
--disable-getting-started-override \
'' + lib.escapeShellArgs cfg.extraArguments;
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
RuntimeDirectory = cfg.user;
User = cfg.user;
Group = cfg.group;
Restart = "on-failure";
};
};
users.users."${cfg.user}" = lib.mkMerge [
(lib.mkIf (cfg.user == defaultUser) {
isNormalUser = true;
description = "code-server user";
inherit (cfg) group;
})
{
packages = cfg.extraPackages;
inherit (cfg) extraGroups;
}
];
users.groups."${defaultGroup}" = lib.mkIf (cfg.group == defaultGroup) { };
};
meta.maintainers = [ lib.maintainers.stackshadow ];
}

View file

@ -136,7 +136,7 @@ let
# System Call Filtering
SystemCallFilter = [ ("~" + lib.concatStringsSep " " systemCallsList) "@chown" "pipe" "pipe2" ];
} // cfgService;
path = with pkgs; [ file imagemagick ffmpeg ];
path = with pkgs; [ ffmpeg-headless file imagemagick ];
})
) cfg.sidekiqProcesses;
@ -773,7 +773,7 @@ in {
# System Call Filtering
SystemCallFilter = [ ("~" + lib.concatStringsSep " " systemCallsList) "@chown" "pipe" "pipe2" ];
} // cfgService;
path = with pkgs; [ file imagemagick ffmpeg ];
path = with pkgs; [ ffmpeg-headless file imagemagick ];
};
systemd.services.mastodon-media-auto-remove = lib.mkIf cfg.mediaAutoRemove.enable {

View file

@ -198,6 +198,7 @@ in {
cntr = handleTestOn ["aarch64-linux" "x86_64-linux"] ./cntr.nix {};
cockpit = handleTest ./cockpit.nix {};
cockroachdb = handleTestOn ["x86_64-linux"] ./cockroachdb.nix {};
code-server = handleTest ./code-server.nix {};
coder = handleTest ./coder.nix {};
collectd = handleTest ./collectd.nix {};
connman = handleTest ./connman.nix {};
@ -407,7 +408,7 @@ in {
incus = pkgs.recurseIntoAttrs (handleTest ./incus { inherit handleTestOn; });
influxdb = handleTest ./influxdb.nix {};
influxdb2 = handleTest ./influxdb2.nix {};
initrd-network-openvpn = handleTest ./initrd-network-openvpn {};
initrd-network-openvpn = handleTestOn [ "x86_64-linux" "i686-linux" ] ./initrd-network-openvpn {};
initrd-network-ssh = handleTest ./initrd-network-ssh {};
initrd-luks-empty-passphrase = handleTest ./initrd-luks-empty-passphrase.nix {};
initrdNetwork = handleTest ./initrd-network.nix {};
@ -831,7 +832,7 @@ in {
systemd-initrd-vconsole = handleTest ./systemd-initrd-vconsole.nix {};
systemd-initrd-networkd = handleTest ./systemd-initrd-networkd.nix {};
systemd-initrd-networkd-ssh = handleTest ./systemd-initrd-networkd-ssh.nix {};
systemd-initrd-networkd-openvpn = handleTest ./initrd-network-openvpn { systemdStage1 = true; };
systemd-initrd-networkd-openvpn = handleTestOn [ "x86_64-linux" "i686-linux" ] ./initrd-network-openvpn { systemdStage1 = true; };
systemd-initrd-vlan = handleTest ./systemd-initrd-vlan.nix {};
systemd-journal = handleTest ./systemd-journal.nix {};
systemd-machinectl = handleTest ./systemd-machinectl.nix {};

View file

@ -29,10 +29,12 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
};
testScript = ''
import difflib
machine.wait_for_unit("basic.target")
got = machine.succeed("cat /etc/btrbk/local.conf")
got = machine.succeed("cat /etc/btrbk/local.conf").strip()
expect = """
backend btrfs-progs-sudo
stream_compress no
timestamp_format long
target ssh://global-target/
ssh_user root
@ -46,6 +48,9 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
ssh_user root
""".strip()
print(got)
if got != expect:
diff = difflib.unified_diff(expect.splitlines(keepends=True), got.splitlines(keepends=True), fromfile="expected", tofile="got")
print("".join(diff))
assert got == expect
'';
})

View file

@ -0,0 +1,22 @@
import ./make-test-python.nix ({pkgs, lib, ...}:
{
name = "code-server";
nodes = {
machine = {pkgs, ...}: {
services.code-server = {
enable = true;
auth = "none";
};
};
};
testScript = ''
start_all()
machine.wait_for_unit("code-server.service")
machine.wait_for_open_port(4444)
machine.succeed("curl -k --fail http://localhost:4444", timeout=10)
'';
meta.maintainers = [ lib.maintainers.drupol ];
})

View file

@ -59,18 +59,19 @@ import ../make-test-python.nix ({ lib, ...}:
# This command does not fork to keep the VM in the state where
# only the initramfs is loaded
preLVMCommands =
''
/bin/nc -p 1234 -lke /bin/echo TESTVALUE
'';
preLVMCommands = lib.mkIf (!systemdStage1)
''
/bin/nc -p 1234 -lke /bin/echo TESTVALUE
'';
network = {
enable = true;
# Work around udhcpc only getting a lease on eth0
postCommands = ''
/bin/ip addr add 192.168.1.2/24 dev eth1
'';
postCommands = lib.mkIf (!systemdStage1)
''
/bin/ip addr add 192.168.1.2/24 dev eth1
'';
# Example configuration for OpenVPN
# This is the main reason for this test

View file

@ -63,14 +63,11 @@ in
machine.send_key("tab")
machine.send_key("tab")
machine.send_key("tab")
machine.send_key("tab")
machine.send_key("right")
machine.send_key("right")
machine.send_key("ret")
machine.sleep(1)
machine.sleep(2)
machine.send_key("tab")
# Type the beginning of https://de.wikipedia.org/wiki/Alle_meine_Entchen
machine.send_chars("cdef6gg5aaaa7g")
machine.sleep(1)

View file

@ -1,13 +1,28 @@
import ./make-test-python.nix ({ pkgs, ... }:
let
# In a real deployment this should naturally not common from the nix store
# and be seeded via agenix or as a non-nix managed file.
#
# These credentials are from the nitter wiki and are expired. We must provide
# credentials in the correct format, otherwise nitter fails to start. They
# must not be valid, as unauthorized errors are handled gracefully.
guestAccountFile = pkgs.writeText "guest_accounts.jsonl" ''
{"oauth_token":"1719213587296620928-BsXY2RIJEw7fjxoNwbBemgjJhueK0m","oauth_token_secret":"N0WB0xhL4ng6WTN44aZO82SUJjz7ssI3hHez2CUhTiYqy"}
'';
in
{
name = "nitter";
meta.maintainers = with pkgs.lib.maintainers; [ erdnaxe ];
nodes.machine = {
services.nitter.enable = true;
# Test CAP_NET_BIND_SERVICE
services.nitter.server.port = 80;
services.nitter = {
enable = true;
# Test CAP_NET_BIND_SERVICE
server.port = 80;
# Provide dummy guest accounts
guestAccounts = guestAccountFile;
};
};
testScript = ''

View file

@ -5,27 +5,20 @@
, autoconf
, automake
, libtool
, faad2
, mp4v2
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation {
pname = "aacgain";
version = "2.0.0";
version = "2.0.0-unstable-2022-07-12";
src = fetchFromGitHub {
owner = "dgilman";
repo = pname;
rev = version;
sha256 = "sha256-9Y23Zh7q3oB4ha17Fpm1Hu2+wtQOA1llj6WDUAO2ARU=";
repo = "aacgain";
rev = "9f9ae95a20197d1072994dbd89672bba2904bdb5";
hash = "sha256-WqL9rKY4lQD7wQSZizoM3sHNzLIG0E9xZtjw8y7fgmE=";
fetchSubmodules = true;
};
postPatch = ''
cp -R ${faad2.src}/* 3rdparty/faad2
cp -R ${mp4v2.src}/* 3rdparty/mp4v2
chmod -R +w 3rdparty
'';
nativeBuildInputs = [
cmake
autoconf

View file

@ -48,35 +48,14 @@ let
} else portaudio;
in stdenv'.mkDerivation (finalAttrs: {
pname = "musescore";
version = "4.1.1";
version = "4.2.0";
src = fetchFromGitHub {
owner = "musescore";
repo = "MuseScore";
rev = "v${finalAttrs.version}";
sha256 = "sha256-jXievVIA0tqLdKLy6oPaOHPIbDoFstveEQBri9M0Aoo=";
sha256 = "sha256-vNA1VPCHLt5kuhIix8kgeq1VlbuIX1lOY3nJaufvuyc=";
};
patches = [
# Upstream from some reason wants to install qml files from qtbase in
# installPhase, this patch removes this behavior. See:
# https://github.com/musescore/MuseScore/issues/18665
(fetchpatch {
url = "https://github.com/doronbehar/MuseScore/commit/f48448a3ede46f5a7ef470940072fbfb6742487c.patch";
hash = "sha256-UEc7auscnW0KMfWkLKQtm+UstuTNsuFeoNJYIidIlwM=";
})
# Upstream removed the option to use system freetype library in v4.1.0,
# causing the app to crash on systems when the outdated bundled freetype
# tries to load the Noto Sans font. For more info on the crash itself,
# see #244409 and https://github.com/musescore/MuseScore/issues/18795.
# For now, re-add the option ourselves. The fix has been merged upstream,
# so we can remove this patch with the next version. In the future, we
# may replace the other bundled thirdparty libs with system libs, see
# https://github.com/musescore/MuseScore/issues/11572.
(fetchpatch {
url = "https://github.com/musescore/MuseScore/commit/9ab6b32b1c3b990cfa7bb172ee8112521dc2269c.patch";
hash = "sha256-5GA29Z+o3I/uDTTDbkauZ8/xSdCE6yY93phMSY0ea7s=";
})
];
cmakeFlags = [
"-DMUSESCORE_BUILD_MODE=release"

View file

@ -1,4 +1,14 @@
{ lib, buildNpmPackage, fetchFromGitHub, makeBinaryWrapper, makeDesktopItem, copyDesktopItems, electron, python3, nix-update-script }:
{ lib
, buildNpmPackage
, fetchFromGitHub
, makeBinaryWrapper
, makeDesktopItem
, copyDesktopItems
, nodejs_18
, electron
, python3
, nix-update-script
}:
buildNpmPackage rec {
pname = "open-stage-control";
@ -18,10 +28,11 @@ buildNpmPackage rec {
npmDepsHash = "sha256-UqjYNXdNoQmirIgU9DRgkp14SIrawfrfi9mD2h6ACyU=";
nodejs = nodejs_18;
nativeBuildInputs = [
copyDesktopItems
makeBinaryWrapper
python3
];
buildInputs = [

View file

@ -2,14 +2,11 @@
, stdenv
, fetchFromGitHub
, appstream-glib
, dbus
, desktop-file-utils
, gettext
, glib
, gobject-introspection
, gsettings-desktop-schemas
, gst_all_1
, gtk3
, gtk4
, hicolor-icon-theme
, isocodes
, itstool
@ -23,20 +20,19 @@
stdenv.mkDerivation rec {
pname = "parlatype";
version = "3.1";
version = "4.0";
src = fetchFromGitHub {
owner = "gkarsay";
repo = pname;
rev = "v${version}";
sha256 = "1a4xlsbszb50vnz1g7kf7hl7aywp7s7xaravkcx13csn0a7l3x45";
sha256 = "1iyjxss6sgc9gx6ij30zz97bl31qix8pxklzn4kknh1b0j7hhbwq";
};
nativeBuildInputs = [
appstream-glib
desktop-file-utils
gettext
gobject-introspection
itstool
libxml2
meson
@ -47,16 +43,14 @@ stdenv.mkDerivation rec {
];
buildInputs = [
dbus
glib
gsettings-desktop-schemas
gst_all_1.gst-libav
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-ugly
gst_all_1.gstreamer
gtk3
gtk4
hicolor-icon-theme
isocodes
];

View file

@ -1,9 +1,8 @@
{ lib, buildGo120Module, fetchFromGitHub, nix-update-script, makeWrapper, monero-cli }:
{ lib, buildGoModule, fetchFromGitHub, nix-update-script, makeWrapper, monero-cli }:
let
pname = "atomic-swap";
version = "0.4.2";
buildGoModule = buildGo120Module;
version = "0.4.3";
in
buildGoModule {
inherit pname version;
@ -12,10 +11,10 @@ buildGoModule {
owner = "AthanorLabs";
repo = "atomic-swap";
rev = "v${version}";
hash = "sha256-JnbKaGmpTDwQMSDR4Y8Q2JTtuQV5GGuovxeIYs0KgQI=";
hash = "sha256-MOylUZ6BrvlxUrsZ5gg3JzW9ROG5UXeGhq3YoPZKdHs=";
};
vendorHash = "sha256-acBnXGy1kVBwB+j8VqGyinabnI/boTtbFNyjE6EHVes=";
vendorHash = "sha256-fGQ6MI+3z7wRL0y7AUERVtN0V2rcRa+vqeB8+3FMzzc=";
subPackages = [
"cmd/swapcli"

View file

@ -14,14 +14,14 @@ let
in
stdenv.mkDerivation rec {
pname = "aseprite";
version = "1.3";
version = "1.3.2";
src = fetchFromGitHub {
owner = "aseprite";
repo = "aseprite";
rev = "v${version}";
fetchSubmodules = true;
hash = "sha256-MSLStUmKAbGKFOQmUcRVrkjZCDglSjTmC6MGWJOCjKU=";
hash = "sha256-8PXqMDf2ATxmtFqyZlGip+DhGrdK8M6Ztte7fGH6Fmo=";
};
nativeBuildInputs = [

View file

@ -2,13 +2,13 @@
mkDerivation rec {
pname = "leo-editor";
version = "6.7.5";
version = "6.7.6";
src = fetchFromGitHub {
owner = "leo-editor";
repo = "leo-editor";
rev = version;
sha256 = "sha256-Y0g4mpEf4+hApHFHaqB8esVep2OyqWLo7YGLf/7eCYg=";
sha256 = "sha256-AWno/LccMMXZ7Aw4FYQCJSoB3dRRONoT/iex0jPFng0=";
};
dontBuild = true;

View file

@ -305,12 +305,12 @@ final: prev:
SchemaStore-nvim = buildVimPlugin {
pname = "SchemaStore.nvim";
version = "2023-12-18";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "b0o";
repo = "SchemaStore.nvim";
rev = "c23407de1f76df30ca197b69d78a11be5ce26009";
sha256 = "04v4xzi55fmgbrnvm1s9magb1r0mqsx5w8nck7pn39q7q39wazpa";
rev = "5372bf247839b46a121375d3d610ab8409d6100d";
sha256 = "0r0lvg59v7if3b4jfi5a6s11njzidhnxw7bz4nmga80bdfvb4syh";
};
meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
};
@ -2444,12 +2444,12 @@ final: prev:
crates-nvim = buildVimPlugin {
pname = "crates.nvim";
version = "2023-12-16";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "saecki";
repo = "crates.nvim";
rev = "8da3bae1f0f8892b42e9596299ec09bc055e5507";
sha256 = "1jy6z43n1146wq6bv5qpkb74hs81c3n17r570vjvi3rbc6nq139a";
rev = "81c6325b7f8875857ec09e5d24f3b6d7986f29e2";
sha256 = "1dlri6p8v8bs3mkssvxixpg8knavr2axwydy5qhywzzjzz236yd5";
};
meta.homepage = "https://github.com/saecki/crates.nvim/";
};
@ -3143,12 +3143,12 @@ final: prev:
efmls-configs-nvim = buildVimPlugin {
pname = "efmls-configs-nvim";
version = "2023-12-18";
version = "2023-12-21";
src = fetchFromGitHub {
owner = "creativenull";
repo = "efmls-configs-nvim";
rev = "32575ba992e056dde5a869fc0368a7dd4e3c7afb";
sha256 = "01jra3rzmxj2fknp2fihhg56kjazxvp67q0d9n7adph36w9b95h3";
rev = "ddc7c542aaad21da594edba233c15ae3fad01ea0";
sha256 = "0qhs1dzn0wy6jrqkyn4bz5cmd9xzxp3prka72446b3sj4521bbs7";
};
meta.homepage = "https://github.com/creativenull/efmls-configs-nvim/";
};
@ -4104,12 +4104,12 @@ final: prev:
haskell-tools-nvim = buildNeovimPlugin {
pname = "haskell-tools.nvim";
version = "2023-12-18";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "MrcJkb";
repo = "haskell-tools.nvim";
rev = "e9a09be664521134e04336c2503c7f6b058d7785";
sha256 = "1lg3wkbg2sjkbp6c3lrkszsbk97ajgs6jnwmv9xgslvaaj40r6r8";
rev = "ab80d6218d27c961cfc6c0f31c6a132f80b39cbe";
sha256 = "1biadz420rklv7i2z5w3796p46ia0lbn4kcny2c8dzwlrhgjcfim";
};
meta.homepage = "https://github.com/MrcJkb/haskell-tools.nvim/";
};
@ -4920,12 +4920,12 @@ final: prev:
lexima-vim = buildVimPlugin {
pname = "lexima.vim";
version = "2023-09-04";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "cohama";
repo = "lexima.vim";
rev = "b1e1b1bde07c1efc97288c98c5912eaa644ee6e1";
sha256 = "1dk32rjahn6grwq1gdxnxs6pavjzhkml7zb3pg1ky75pivs1rlgr";
rev = "5513d686801993b40c55baa65602f79cd3cf3c77";
sha256 = "08gmpxxfjsjqvhcicr3rwm97xddsn93afxnqipyz4vjclzmpxgwg";
};
meta.homepage = "https://github.com/cohama/lexima.vim/";
};
@ -5664,12 +5664,12 @@ final: prev:
molten-nvim = buildVimPlugin {
pname = "molten-nvim";
version = "2023-12-18";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "benlubas";
repo = "molten-nvim";
rev = "60930af2df132289d21c6c6f141c0aec8de71089";
sha256 = "0063ndbx46q6xf5y1y0zrzqbh8x5qrvmvpyh205ifwwfyls6aqai";
rev = "75ce8fe3cc8206f8fd3ecdc315e16c47f0ddb75c";
sha256 = "0qg1br622wwkd3dkydvczz6s7ycp8h6b576mx8j3clx0z0yj0m7f";
};
meta.homepage = "https://github.com/benlubas/molten-nvim/";
};
@ -6024,12 +6024,12 @@ final: prev:
neodev-nvim = buildVimPlugin {
pname = "neodev.nvim";
version = "2023-12-19";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "folke";
repo = "neodev.nvim";
rev = "018e1161ed771ef2b54f346240bcf69931594396";
sha256 = "01lddc9i6z56fyc6jfz1rv9cja98jjg4dhzhx67752nmpfzjlicf";
rev = "93ab59d5d436b36698c14d0374150a7e5e7bccb6";
sha256 = "1kn0c9nb12hhwqpjma8pxkh33salwdrwrgzg8ivljb6sr9mg8ckw";
};
meta.homepage = "https://github.com/folke/neodev.nvim/";
};
@ -6060,12 +6060,12 @@ final: prev:
neogit = buildVimPlugin {
pname = "neogit";
version = "2023-12-19";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "NeogitOrg";
repo = "neogit";
rev = "801143ee4db4121fc11a6468daae6680ba9fab51";
sha256 = "01i1spfqx29nzshxdk5c3g9m146kijq0wb37qyk2jfjj9r3jj1xg";
rev = "bbb3c19a9f55a36f844b862c3bea21781aef8644";
sha256 = "18ywqh7g3q0l8riyv6641sfvkzii3r3c6vc5ss5qp1d4cnmrvssi";
};
meta.homepage = "https://github.com/NeogitOrg/neogit/";
};
@ -6204,12 +6204,12 @@ final: prev:
neotest = buildVimPlugin {
pname = "neotest";
version = "2023-12-18";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "nvim-neotest";
repo = "neotest";
rev = "b8e29c0fba9a58bf6a5c37df77c7a6a31079c8d6";
sha256 = "0y9dm6w88prff7vf84jy0ik2f69smhvc8a7gs4cickw56n7srf28";
rev = "a2f1cb4072bb29fcc067605fb712bbd83917513e";
sha256 = "0f8rn9v26v3a6yq0wngdzrgz5rdwlpmnc74b98l1aqb2ikn6gxvd";
};
meta.homepage = "https://github.com/nvim-neotest/neotest/";
};
@ -6337,12 +6337,12 @@ final: prev:
neotest-python = buildVimPlugin {
pname = "neotest-python";
version = "2023-12-10";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "nvim-neotest";
repo = "neotest-python";
rev = "48bf141103b94c9384e5542cd185b291909ac305";
sha256 = "1apkxpznlwhilzqh3jn54xblcn18wyadymzpwh0v1p19ah46xnzj";
rev = "27a2676aa02193d6ba4ad26238c09ededa49a9a7";
sha256 = "146ycpc49yq01g0za6r76h0rbc427653z2wy7755czcjisf81i3k";
};
meta.homepage = "https://github.com/nvim-neotest/neotest-python/";
};
@ -6469,12 +6469,12 @@ final: prev:
nerdtree = buildVimPlugin {
pname = "nerdtree";
version = "2023-12-02";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "preservim";
repo = "nerdtree";
rev = "9ec27d45a863aeb82fea56cebcb8a75a4e369fc9";
sha256 = "17j2q0vdplxz4qjkx140mgxjcj1dghzkz1ijb3vc3i2hl5qfmba1";
rev = "a9546618241e61e785aa4c21b3de0cb657f3b828";
sha256 = "0pjc5bpms29ala5wc26hikzj48fvi8rs1xx8d71pk5c4s5y62l2z";
};
meta.homepage = "https://github.com/preservim/nerdtree/";
};
@ -6637,24 +6637,24 @@ final: prev:
none-ls-nvim = buildVimPlugin {
pname = "none-ls.nvim";
version = "2023-12-15";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "nvimtools";
repo = "none-ls.nvim";
rev = "ef09f14eab78ca6ce3bee1ddc73db5511f5cd953";
sha256 = "066wr59s0bqrmnx46f9yfa0yr8mmpghahzn3wc6jaj2l9rc1k7cw";
rev = "bbd8c0c2b8a47ff2e0a97868afdf3fc640f1ad1e";
sha256 = "0g2x2niigqxzq9k4ysiws6qnd4agcpf7dy7s4g1hdq8cnapgy0vm";
};
meta.homepage = "https://github.com/nvimtools/none-ls.nvim/";
};
nord-nvim = buildVimPlugin {
pname = "nord.nvim";
version = "2023-10-04";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "shaunsingh";
repo = "nord.nvim";
rev = "0a22a387c92bb3b46e3d245522712ae7497bec38";
sha256 = "1bmmyf3d4ihiaa0h9q77scif22kykkidks72vmamzh7v34x3c7d8";
rev = "80c1e5321505aeb22b7a9f23eb82f1e193c12470";
sha256 = "0bv733mf2c7cclqcgr64ngrxzk38pwimvcl0g63c6pj1la8xpqzj";
};
meta.homepage = "https://github.com/shaunsingh/nord.nvim/";
};
@ -6781,12 +6781,12 @@ final: prev:
nvim-autopairs = buildVimPlugin {
pname = "nvim-autopairs";
version = "2023-10-21";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "windwp";
repo = "nvim-autopairs";
rev = "0f04d78619cce9a5af4f355968040f7d675854a1";
sha256 = "0k2pibxx42qsdvxgbrdj7g44y5q6dnaw0g07gq025dpn27jk9ark";
rev = "9fd41181693dd4106b3e414a822bb6569924de81";
sha256 = "1xwvw5j81rx7q5jmv14fnphxsjk9anzglf10j8ai8217gc9h530z";
};
meta.homepage = "https://github.com/windwp/nvim-autopairs/";
};
@ -6973,12 +6973,12 @@ final: prev:
nvim-dap = buildVimPlugin {
pname = "nvim-dap";
version = "2023-12-14";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "mfussenegger";
repo = "nvim-dap";
rev = "e64ebf3309154b578a03c76229ebf51c37898118";
sha256 = "11j71rdx4mx3g0x8vxp19jqnpihbwdrcr29651cn5q00myzvgzx9";
rev = "f0dca670fa059eb89dda8869a6310c804241345c";
sha256 = "0zdsr98abzyiw7887dgvjh3i3bf95vw3lg4d384rr6zrxwh03kjh";
};
meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
};
@ -6997,12 +6997,12 @@ final: prev:
nvim-dap-python = buildVimPlugin {
pname = "nvim-dap-python";
version = "2023-11-15";
version = "2023-12-19";
src = fetchFromGitHub {
owner = "mfussenegger";
repo = "nvim-dap-python";
rev = "e0be843877e7ae756ef1ee7a441ca0b9e1677da9";
sha256 = "0xib2xayrnf96r07rd7xdahpza41155npkdjxmr48h52gjj15nbl";
rev = "091e4ae00a12085f9ed4200a3cd04af7179b8a23";
sha256 = "02ialmgk6i2svjqglj7hmrakfsk5spcxb9idb13vmzlng8s3rzsp";
};
meta.homepage = "https://github.com/mfussenegger/nvim-dap-python/";
};
@ -7260,12 +7260,12 @@ final: prev:
nvim-lspconfig = buildVimPlugin {
pname = "nvim-lspconfig";
version = "2023-12-19";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "neovim";
repo = "nvim-lspconfig";
rev = "e85816c5803410cacb52e9b4fbdb72a1f1a6bd11";
sha256 = "03yvhgm80lzrn7x4j3qvjwcz8yvnc0db926bw3yw7537samqn5g5";
rev = "a2e84ddef8d17a71dc8115f72e264c97328f5d33";
sha256 = "19cgid5723n4sk6n4nnc67xbkjdrmyq9fyxd62i3alflk3pxiw15";
};
meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
};
@ -7488,12 +7488,12 @@ final: prev:
nvim-scrollview = buildVimPlugin {
pname = "nvim-scrollview";
version = "2023-12-18";
version = "2023-12-21";
src = fetchFromGitHub {
owner = "dstein64";
repo = "nvim-scrollview";
rev = "e2d1ddae7e1f389e718834c6cb69501704ba30e3";
sha256 = "04w919wsr1xlwzdaj1zbwj2jx03lcx9n2zrdkxmwwkmqfs4d1rdw";
rev = "a74efa2d63acc966258889885fbf177badf88df3";
sha256 = "1gi4fbpcqc81wqm59n6n4x2mn4kjzbhx30d4vwjsrnda5s3nvlv0";
};
meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
};
@ -7536,24 +7536,24 @@ final: prev:
nvim-spectre = buildVimPlugin {
pname = "nvim-spectre";
version = "2023-11-15";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "nvim-pack";
repo = "nvim-spectre";
rev = "a18a58015b46f02b4fe537ebfffd82e46110ff24";
sha256 = "0ry2scnw8hzd3snjhbp71zc6mnna2bwn6icr3frsgdj1p5rfissn";
rev = "d8906855f1949ac97b1e77aaf8d3fe12ed158ddc";
sha256 = "1kmw61gli562d4r4vsf2fpxa09pi6a0brcdzly02n7xcan4l7bc4";
};
meta.homepage = "https://github.com/nvim-pack/nvim-spectre/";
};
nvim-spider = buildVimPlugin {
pname = "nvim-spider";
version = "2023-12-18";
version = "2023-12-21";
src = fetchFromGitHub {
owner = "chrisgrieser";
repo = "nvim-spider";
rev = "2cda32bb4bd852662e5c443dd33aa56f32182628";
sha256 = "0061mm1d1dslky9p8z084wjrjfqkr4m5sy0g6wd3yy2iam1p2xds";
rev = "daa3241d3f94e12199309f93278791e011539662";
sha256 = "14cpd2y50qy5m1hmx92p4xdd4grsf4w7fa7325vkd0ry449p69n0";
};
meta.homepage = "https://github.com/chrisgrieser/nvim-spider/";
};
@ -7620,12 +7620,12 @@ final: prev:
nvim-treesitter = buildVimPlugin {
pname = "nvim-treesitter";
version = "2023-12-19";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "nvim-treesitter";
repo = "nvim-treesitter";
rev = "0dfbf5e48e8551212c2a9f1c74cb080c8e76b5d1";
sha256 = "1vy1xgxi696j4as5l9831jpy1v1x3kfn1mak7gn0fyv97a987b25";
rev = "732c8cb0b43b7336525c3cecb2e28db153994e62";
sha256 = "02i23ldcl5x93w0mnzji65f4mbjdvn7h8x27r1mvxcmm2n38cxbv";
};
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
};
@ -8536,11 +8536,11 @@ final: prev:
rainbow-delimiters-nvim = buildVimPlugin {
pname = "rainbow-delimiters.nvim";
version = "2023-12-17";
version = "2023-12-20";
src = fetchgit {
url = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim";
rev = "b510fd445b6ee0b621e910e4b3e123e48d6bb436";
sha256 = "152jan5vpvn5mdv7cfc2gshnsrgq9qw17xqddz6d6n4p7pywfbr6";
rev = "a27051f08f6c03928ee9e94339f53da3107857db";
sha256 = "0wlm40389768sxvj1xqw2n1ldvhmnfzf0nibrr3mqsvh6abjq1id";
};
meta.homepage = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim";
};
@ -8787,12 +8787,12 @@ final: prev:
rustaceanvim = buildNeovimPlugin {
pname = "rustaceanvim";
version = "2023-12-18";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "mrcjkb";
repo = "rustaceanvim";
rev = "a13e311d449034b49d0144a411e0c8be3d5354cd";
sha256 = "0nlx7w1wi9dsji4d84f7niw74cc5mxar3q95qwydqpha3vz201s5";
rev = "fefc2408ba56832f884b1033a1d4eba1830d6aff";
sha256 = "1v3zcd149bx3pgjgk3r8yjbsvlrgipn4js02ighdrqjl5z395x6m";
};
meta.homepage = "https://github.com/mrcjkb/rustaceanvim/";
};
@ -9040,12 +9040,12 @@ final: prev:
smartcolumn-nvim = buildVimPlugin {
pname = "smartcolumn.nvim";
version = "2023-09-12";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "m4xshen";
repo = "smartcolumn.nvim";
rev = "c6abf3917fcec487c7475e208ae37f5788af5b04";
sha256 = "1imdzqq997n8jwcxf8dyh0647hx58z9imm95nky23dlmhp3lzn9v";
rev = "8cbf75c26e9f9248704a662564f30cc2d7de7f34";
sha256 = "1hyfl7g11fx9xbkyaljcwdih1fc4cp777j0rxii5jrr50rvriyik";
};
meta.homepage = "https://github.com/m4xshen/smartcolumn.nvim/";
};
@ -9353,12 +9353,12 @@ final: prev:
startup-nvim = buildVimPlugin {
pname = "startup.nvim";
version = "2023-11-02";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "startup-nvim";
repo = "startup.nvim";
rev = "088de9f5af8a10dfc39f8e397e3e9646940c7323";
sha256 = "09hhl8l2b4q53i2scig6rx3zq7mcsa6f5za0ahmn3s9vh9862iqz";
rev = "c6ba324f9eba0c23b675b53af431346aab893268";
sha256 = "0vp4vfrlb39z4s4617v1xkzjkx6l5sxfravfj2wkkwzpjrqfs2bl";
};
meta.homepage = "https://github.com/startup-nvim/startup.nvim/";
};
@ -9994,12 +9994,12 @@ final: prev:
telescope-nvim = buildNeovimPlugin {
pname = "telescope.nvim";
version = "2023-12-06";
version = "2023-12-19";
src = fetchFromGitHub {
owner = "nvim-telescope";
repo = "telescope.nvim";
rev = "6213322ab56eb27356fdc09a5078e41e3ea7f3bc";
sha256 = "074bq8p1bkyr12z1wy31bipb97vmqia4lsmdp2aj1v1r5x5ph736";
rev = "f336f8cfab38a82f9f00df380d28f0c2a572f862";
sha256 = "14v1v45p5jpvn9lgbjcfgx8p4b60w0bqk3vv7sdb5nbikkjhy10z";
};
meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
};
@ -10102,12 +10102,12 @@ final: prev:
text-case-nvim = buildVimPlugin {
pname = "text-case.nvim";
version = "2023-12-19";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "johmsalas";
repo = "text-case.nvim";
rev = "ada81738da3f1ed08f5e4ac95fa21213a0221b22";
sha256 = "1dy6v1d3iv92j88ydcgzjccnv6f213vhpnb27r6rv8hd3z6h4dfv";
rev = "f847b283ebbe8b98bc96fa29f1685244c42ce4cf";
sha256 = "1fp4lgr6vbacn421k4jy5h5h6yravv95rszrf313jjsjid4n1j3q";
};
meta.homepage = "https://github.com/johmsalas/text-case.nvim/";
};
@ -10463,12 +10463,12 @@ final: prev:
unison = buildVimPlugin {
pname = "unison";
version = "2023-12-19";
version = "2023-12-21";
src = fetchFromGitHub {
owner = "unisonweb";
repo = "unison";
rev = "e690c5f57e12f5883ffd44ead57bf2942c1fedd0";
sha256 = "09vlww4yxsxal0pnif1an0lqpkvf5zjnkvmz0h7yyfdpmq1prmxq";
rev = "5e98e805af75dc15116fc524c911a7c78ede9e03";
sha256 = "0yhg40pr1611nplxy5v794b52868ylg4cqm6gqzms1bwz1gzvh7l";
};
meta.homepage = "https://github.com/unisonweb/unison/";
};
@ -12913,12 +12913,12 @@ final: prev:
vim-just = buildVimPlugin {
pname = "vim-just";
version = "2023-12-17";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "NoahTheDuke";
repo = "vim-just";
rev = "e2e42ae765f53569efb7178a7bbb9a6977d269e2";
sha256 = "0a930prjv6b09qkn2zwmn5bxs73sad48v3mr8g9b7f0i4528iklz";
rev = "cbba24e544dd32509a6b68271ce3142ab5a180c3";
sha256 = "05fp1vqir8w9kl1il76bszsmh6vn6kj8a8g4nssa4pw7bpsflrvs";
};
meta.homepage = "https://github.com/NoahTheDuke/vim-just/";
};
@ -15616,12 +15616,12 @@ final: prev:
vimtex = buildVimPlugin {
pname = "vimtex";
version = "2023-12-18";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "lervag";
repo = "vimtex";
rev = "e7ce03ea517c5b61ec9703a44019481678d60af3";
sha256 = "0i8crnv5h9swdi22bxp8sj7s59lnjy2ryqslbxydq2vb8kq4cr4c";
rev = "6179414f2eb3db977a513b7b19c23e7e62a0f388";
sha256 = "1fynvg4695h990lh1w9mknd7n0mdk2br1j0xdh3sh94w204xyyrh";
};
meta.homepage = "https://github.com/lervag/vimtex/";
};
@ -16133,12 +16133,12 @@ final: prev:
embark-vim = buildVimPlugin {
pname = "embark-vim";
version = "2023-11-27";
version = "2023-12-20";
src = fetchFromGitHub {
owner = "embark-theme";
repo = "vim";
rev = "7efd788d2e7b2d0a923cb6dabad7e2c11ab7aa95";
sha256 = "0pnqx6jli9pwqs6h2dsvh7q05gchama7zcpr91zp2jabacbanycf";
rev = "95f92adee0e5ad36f74fe04266554ac9c03e3fc3";
sha256 = "15v8wgbcckdll8j27d2v30rcbgc38hddmnfbk24p3jxx2pxdl529";
};
meta.homepage = "https://github.com/embark-theme/vim/";
};

View file

@ -737,12 +737,12 @@
};
gleam = buildGrammar {
language = "gleam";
version = "0.0.0+rev=c9c7f0f";
version = "0.0.0+rev=2b49c49";
src = fetchFromGitHub {
owner = "gleam-lang";
repo = "tree-sitter-gleam";
rev = "c9c7f0f01749d301b54e96ed8e0c47c7c415a196";
hash = "sha256-j7onMy986PeJNy9x8GUkg8Be22bGYoZs53sToLWc/eI=";
rev = "2b49c49ef632928b5c52bb0a7269ff797d5d1414";
hash = "sha256-zFdyUqbJn7ighjXH+9EO+0Cf2Oj8ON8IYUZCIQUQ5dA=";
};
meta.homepage = "https://github.com/gleam-lang/tree-sitter-gleam";
};
@ -2243,12 +2243,12 @@
};
styled = buildGrammar {
language = "styled";
version = "0.0.0+rev=e51e673";
version = "0.0.0+rev=5e52758";
src = fetchFromGitHub {
owner = "mskelton";
repo = "tree-sitter-styled";
rev = "e51e673efc860373167680b4bcbf418a11e4ed26";
hash = "sha256-s9omwcuIAXgpwWTpyRpessA5fOeWqRqTctBKr3rUeNc=";
rev = "5e52758b32e02adca16bb93f95b3f9c050c72b56";
hash = "sha256-3x/ZKVYyWuLGkgdm9HutI16m8xpJKSMOZHY48WqH9b0=";
};
meta.homepage = "https://github.com/mskelton/tree-sitter-styled";
};
@ -2569,12 +2569,12 @@
};
v = buildGrammar {
language = "v";
version = "0.0.0+rev=eced04c";
version = "0.0.0+rev=f0336bb";
src = fetchFromGitHub {
owner = "v-analyzer";
repo = "v-analyzer";
rev = "eced04c473f3bcb49f9c8ac91744451a9ab40310";
hash = "sha256-fT/jqaKwUP7KWT+RT9V23HAL0Ol7mr/8NWNbYtSFhBI=";
rev = "f0336bb8847393ba4d5905a94642acf0dc3d5ebd";
hash = "sha256-0hC9xb1rOtUb47gzCdzvCxAz54d9RZ4UMfb2PFOM6ZE=";
};
location = "tree_sitter_v";
meta.homepage = "https://github.com/v-analyzer/v-analyzer";
@ -2669,12 +2669,12 @@
};
wing = buildGrammar {
language = "wing";
version = "0.0.0+rev=b5fa0cb";
version = "0.0.0+rev=e6e06a0";
src = fetchFromGitHub {
owner = "winglang";
repo = "wing";
rev = "b5fa0cb75ee96d3ff19df59085d508240f5b0fd5";
hash = "sha256-SqPw0LxxJiarYR3YIPKxAuFGWJw6dUwSVFbey3z2OAA=";
rev = "e6e06a05eeb894001d3c24e1db72f5cd2f35bdae";
hash = "sha256-/a1cXTwEyHTv0mzXvZIvD0V9HBL8NyeMMWI1O+Fp5Fs=";
};
location = "libs/tree-sitter-wing";
generate = true;

View file

@ -1580,8 +1580,8 @@ let
mktplcRef = {
publisher = "github";
name = "copilot";
version = "1.135.544";
sha256 = "sha256-OeG1nkQbQAfu8NuDEA+iaWy0ioFyXPe7Qm/CZIKPiX8=";
version = "1.143.601";
sha256 = "sha256-Ge/q1fAfhI5EuJFLHZqZyuPahHSgES7G0ns9FbS9vzA=";
};
meta = {

View file

@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "eos-installer";
version = "5.0.2";
version = "5.1.0";
src = fetchFromGitHub {
owner = "endlessm";
repo = "eos-installer";
rev = "Release_${version}";
sha256 = "utTTux8o8TN51bvnGldrtMEatiLA1AiHf/9XJZ7k7KM=";
sha256 = "BqvZglzFJabGXkI8hnLiw1r+CvM7kSKQPj8IKYBB6S4=";
fetchSubmodules = true;
};

View file

@ -14,14 +14,14 @@
rustPlatform.buildRustPackage rec {
pname = "leetcode-cli";
version = "0.4.2";
version = "0.4.3";
src = fetchCrate {
inherit pname version;
sha256 = "sha256-Yr8Jsy8863O6saaFRAxssni+PtK7XYe+Iifgxu8Rx6Q=";
sha256 = "sha256-y5zh93WPWSMDXqYangqrxav+sC0b0zpFIp6ZIew6KMo=";
};
cargoHash = "sha256-rab/oLr27UOlnwUUB1RXC/egLoYyzmVtzN1L+AGed8o=";
cargoHash = "sha256-VktDiLsU+GOsa6ba9JJZGEPTavSKp+aSZm2dfhPEqMs=";
nativeBuildInputs = [
pkg-config

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "revanced-cli";
version = "2.22.0";
version = "4.3.0";
src = fetchurl {
url = "https://github.com/revanced/revanced-cli/releases/download/v${version}/revanced-cli-${version}-all.jar";
hash = "sha256-jyaqkZL7aOc5WXjlomZThyaCUwKU7AyKKrgtKadUo5s=";
hash = "sha256-D/4zR5PvcZqv8yyNIzbnYnGoHDrPQAeHyrN/G4QsTB0=";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -7,13 +7,13 @@
buildGoModule rec {
pname = "arkade";
version = "0.10.15";
version = "0.10.17";
src = fetchFromGitHub {
owner = "alexellis";
repo = "arkade";
rev = version;
hash = "sha256-1r/f3CoTaOA2ZfM9UBGftZDZdCL9JIrs6SvaSO8BI6w=";
hash = "sha256-Ubj2jrQFmMTSY2+Z4pqDIQ+K8JycX+NOpgcuyCrD4uo=";
};
CGO_ENABLED = 0;

View file

@ -1,8 +1,8 @@
{
k3sVersion = "1.27.7+k3s2";
k3sCommit = "575bce7689f4be112bd0099362fb8d5f2e39398e";
k3sRepoSha256 = "1k8hmxdc45pxwkpkq3y1jpx1ybv1h9y4sk7zb09y0487jqqgd15f";
k3sVendorHash = "sha256-IqnBau4uBIN8ccnoX1P3ud8ZoMR3BjhchLU32tq0YWQ=";
k3sVersion = "1.27.8+k3s2";
k3sCommit = "02fcbd1f57f0bc0ca1dc68f98cfa0e7d3b008225";
k3sRepoSha256 = "02g741b43s2ss1mdjnrs7fx4bhv9k55k4n350h9qp5jgqg8ldbdi";
k3sVendorHash = "sha256-mCPr+Y8wiWyW5T/iYH7Y4tz+nrqGyD2IQnIFd0EgdjI=";
chartVersions = import ./chart-versions.nix;
k3sRootVersion = "0.12.2";
k3sRootSha256 = "1gjynvr350qni5mskgm7pcc7alss4gms4jmkiv453vs8mmma9c9k";

View file

@ -1,17 +1,17 @@
{ lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
buildGoModule rec {
pname = "talosctl";
version = "1.5.5";
version = "1.6.0";
src = fetchFromGitHub {
owner = "siderolabs";
repo = "talos";
rev = "v${version}";
hash = "sha256-15sNXiJ/s3MlrXFXPxA7mQ+/36HRSZF6XKos6XEHi1Y=";
hash = "sha256-Mcc9lfnhSbVA5tNHUtBgfQEGVyen4KZ/V9OeV8PxAYQ=";
};
vendorHash = "sha256-fGl16Wsb1tW9+wZBg5yY73t7n+EJ1dVx5IlzY2B8PJA=";
vendorHash = "sha256-VeUDyiJ0R27Xrf+79f0soELKvR2xaK5ocbvhCzP9eFk=";
ldflags = [ "-s" "-w" ];

View file

@ -5,11 +5,11 @@
stdenv.mkDerivation rec {
pname = "alfaview";
version = "9.5.0";
version = "9.7.0";
src = fetchurl {
url = "https://assets.alfaview.com/stable/linux/deb/${pname}_${version}.deb";
hash = "sha256-UQg7yGKdjZWrJpPAaHpPz9aQuxLvuRDXeQaOg7WorwE=";
hash = "sha256-nqIMnMz2FysBOyKpoHXQw9Gl0lmQg5oXmnZDqlPNZ+A=";
};
nativeBuildInputs = [

View file

@ -3,12 +3,12 @@ electron, libsecret }:
stdenv.mkDerivation rec {
pname = "tutanota-desktop";
version = "3.118.27";
version = "3.119.3";
src = fetchurl {
url = "https://github.com/tutao/tutanota/releases/download/tutanota-desktop-release-${version}/${pname}-${version}-unpacked-linux.tar.gz";
name = "tutanota-desktop-${version}.tar.gz";
hash = "sha256-z2Ir8O7IDiE7cYuLshpMQMnOJanaECUvKlUEyPayIPo=";
hash = "sha256-TdjvU12nh1sTfGTdBn+7dbEunaF38YjDvceEns4iRbA=";
};
nativeBuildInputs = [

View file

@ -24,13 +24,13 @@
stdenv.mkDerivation rec {
pname = "planify";
version = "4.3.1";
version = "4.3.2";
src = fetchFromGitHub {
owner = "alainm23";
repo = "planify";
rev = version;
hash = "sha256-YF4un5j7zv0ishcgt00XDGy0AhR/bo6HJj04t0qfxwU=";
hash = "sha256-i+Up92Gl3FjgQ4GpcZruvYD//TPNWktSuWXGgDTwbWw=";
};
nativeBuildInputs = [

View file

@ -27,11 +27,11 @@ let
in
stdenv.mkDerivation rec {
pname = "PortfolioPerformance";
version = "0.65.6";
version = "0.66.2";
src = fetchurl {
url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
hash = "sha256-sI2DqhR9LmXxjkkMTDiMG/f/QXcBVPmEjbHFsmEP8qE=";
hash = "sha256-jUakjgprf561OVwBW25+/+q+r2CZ6H1iDM3n6w54IfI=";
};
nativeBuildInputs = [
@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
homepage = "https://www.portfolio-performance.info/";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.epl10;
maintainers = with maintainers; [ elohmeier oyren shawn8901 ];
maintainers = with maintainers; [ elohmeier kilianar oyren shawn8901 ];
mainProgram = "portfolio";
platforms = [ "x86_64-linux" ];
};

View file

@ -151,7 +151,7 @@ stdenv.mkDerivation rec {
description = "Collect, organize, cite, and share your research sources";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.agpl3Only;
platforms = platforms.linux;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ i077 ];
};
}

View file

@ -144,7 +144,7 @@ stdenv.mkDerivation rec {
description = "Collect, organize, cite, and share your research sources";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.agpl3Only;
platforms = platforms.linux;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ atila ];
};
}

View file

@ -276,7 +276,7 @@ stdenv.mkDerivation (finalAttrs: (shared // {
'';
patches = [
# Not accepted upstream, see https://github.com/gnuradio/gnuradio/pull/5227
./modtool-newmod-permissions.patch
./modtool-newmod-permissions.3_9.patch
];
passthru = shared.passthru // {
# Deps that are potentially overridden and are used inside GR plugins - the same version must

View file

@ -45,11 +45,11 @@
# If one wishes to use a different src or name for a very custom build
, overrideSrc ? {}
, pname ? "gnuradio"
, version ? "3.10.7.0"
, version ? "3.10.8.0"
}:
let
sourceSha256 = "sha256-7fIQMcx90wI4mAZmR26/rkBKPKhNxgu3oWpJTV3C+Ek=";
sourceSha256 = "sha256-4BoJciL3ffd9Dgk3HxXCOOwnGHqCEVuo+a1AtzJG4IY=";
featuresInfo = {
# Needed always
basic = {
@ -291,12 +291,6 @@ stdenv.mkDerivation (finalAttrs: (shared // {
patches = [
# Not accepted upstream, see https://github.com/gnuradio/gnuradio/pull/5227
./modtool-newmod-permissions.patch
# https://github.com/gnuradio/gnuradio/pull/6808
(fetchpatch {
name = "gnuradio-fmt10.1.patch";
url = "https://github.com/gnuradio/gnuradio/commit/9357c17721a27cc0aae3fe809af140c84e492f37.patch";
hash = "sha256-w3b22PTqoORyYQ3RKRG+2htQWbITzQiOdSDyuejUtHQ=";
})
];
passthru = shared.passthru // {
# Deps that are potentially overridden and are used inside GR plugins - the same version must

View file

@ -0,0 +1,15 @@
diff --git c/gr-utils/modtool/core/newmod.py w/gr-utils/modtool/core/newmod.py
index babebfcde..9a02f663e 100644
--- c/gr-utils/modtool/core/newmod.py
+++ w/gr-utils/modtool/core/newmod.py
@@ -62,7 +62,9 @@ class ModToolNewModule(ModTool):
self._setup_scm(mode='new')
logger.info(f"Creating out-of-tree module in {self.dir}...")
try:
- shutil.copytree(self.srcdir, self.dir)
+ # https://stackoverflow.com/a/17022146/4935114
+ shutil.copystat = lambda x, y: x
+ shutil.copytree(self.srcdir, self.dir, copy_function=shutil.copyfile)
try:
shutil.copyfile(os.path.join(gr.prefix(), 'share', 'gnuradio', 'clang-format.conf'),
os.path.join(self.dir, '.clang-format'))

View file

@ -1,8 +1,8 @@
diff --git c/gr-utils/modtool/core/newmod.py w/gr-utils/modtool/core/newmod.py
index babebfcde..9a02f663e 100644
--- c/gr-utils/modtool/core/newmod.py
diff --git i/gr-utils/modtool/core/newmod.py w/gr-utils/modtool/core/newmod.py
index 8b222473f..c82fcd538 100644
--- i/gr-utils/modtool/core/newmod.py
+++ w/gr-utils/modtool/core/newmod.py
@@ -62,7 +62,9 @@ class ModToolNewModule(ModTool):
@@ -66,7 +66,9 @@ class ModToolNewModule(ModTool):
self._setup_scm(mode='new')
logger.info(f"Creating out-of-tree module in {self.dir}...")
try:
@ -10,6 +10,6 @@ index babebfcde..9a02f663e 100644
+ # https://stackoverflow.com/a/17022146/4935114
+ shutil.copystat = lambda x, y: x
+ shutil.copytree(self.srcdir, self.dir, copy_function=shutil.copyfile)
try:
shutil.copyfile(os.path.join(gr.prefix(), 'share', 'gnuradio', 'clang-format.conf'),
os.path.join(self.dir, '.clang-format'))
source_dir = os.path.join(gr.prefix(), "share", "gnuradio")
for source_name, target_name in (
("clang-format.conf", ".clang-format"),

View file

@ -1,14 +1,14 @@
{ lib, stdenv, fetchFromGitHub, cmake, gcc, gcc-unwrapped }:
stdenv.mkDerivation rec {
version = "4.0.1";
version = "4.1";
pname = "messer-slim";
src = fetchFromGitHub {
owner = "MesserLab";
repo = "SLiM";
rev = "v${version}";
sha256 = "sha256-KC9MbIJi//ZYreoRS+DED8eQW7e4IPvGT+rLI+f7Zrk=";
sha256 = "sha256-mb6xcu28QYAFm2906lRNY0zciQBKSGcz3q/cvOEh/VE=";
};
nativeBuildInputs = [ cmake gcc gcc-unwrapped ];

View file

@ -199,7 +199,7 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
[[package]]
name = "asusctl"
version = "5.0.0"
version = "5.0.2"
dependencies = [
"asusd",
"cargo-husky",
@ -218,7 +218,7 @@ dependencies = [
[[package]]
name = "asusd"
version = "5.0.0"
version = "5.0.2"
dependencies = [
"async-trait",
"cargo-husky",
@ -237,12 +237,13 @@ dependencies = [
"serde_derive",
"systemd-zbus",
"tokio",
"udev",
"zbus",
]
[[package]]
name = "asusd-user"
version = "5.0.0"
version = "5.0.2"
dependencies = [
"cargo-husky",
"config-traits",
@ -845,7 +846,7 @@ dependencies = [
[[package]]
name = "config-traits"
version = "5.0.0"
version = "5.0.2"
dependencies = [
"cargo-husky",
"log",
@ -898,7 +899,7 @@ dependencies = [
[[package]]
name = "cpuctl"
version = "5.0.0"
version = "5.0.2"
[[package]]
name = "cpufeatures"
@ -1025,7 +1026,7 @@ dependencies = [
[[package]]
name = "dmi_id"
version = "5.0.0"
version = "5.0.2"
dependencies = [
"log",
"udev",
@ -2845,7 +2846,7 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
[[package]]
name = "rog-control-center"
version = "5.0.0"
version = "5.0.2"
dependencies = [
"asusd",
"cargo-husky",
@ -2878,7 +2879,7 @@ dependencies = [
[[package]]
name = "rog_anime"
version = "5.0.0"
version = "5.0.2"
dependencies = [
"cargo-husky",
"dmi_id",
@ -2895,7 +2896,7 @@ dependencies = [
[[package]]
name = "rog_aura"
version = "5.0.0"
version = "5.0.2"
dependencies = [
"cargo-husky",
"dmi_id",
@ -2909,7 +2910,7 @@ dependencies = [
[[package]]
name = "rog_dbus"
version = "5.0.0"
version = "5.0.2"
dependencies = [
"asusd",
"cargo-husky",
@ -2922,7 +2923,7 @@ dependencies = [
[[package]]
name = "rog_platform"
version = "5.0.0"
version = "5.0.2"
dependencies = [
"cargo-husky",
"concat-idents",
@ -2939,7 +2940,7 @@ dependencies = [
[[package]]
name = "rog_profiles"
version = "5.0.0"
version = "5.0.2"
dependencies = [
"cargo-husky",
"log",
@ -2953,7 +2954,7 @@ dependencies = [
[[package]]
name = "rog_simulators"
version = "5.0.0"
version = "5.0.2"
dependencies = [
"glam",
"log",

View file

@ -13,13 +13,13 @@
rustPlatform.buildRustPackage rec {
pname = "asusctl";
version = "5.0.0";
version = "5.0.2";
src = fetchFromGitLab {
owner = "asus-linux";
repo = "asusctl";
rev = version;
hash = "sha256-ZdPSUXchQ19awvlNFVih38p6AU7KQ2RttUnm8zQnTWs=";
hash = "sha256-0+HCqp/mn+O6Cnbmma7iw5EFBbLozvnkqGA378oj0G8=";
};
cargoHash = "";

View file

@ -25,6 +25,7 @@
, pugixml
, qtbase
, qtmultimedia
, utf8cpp
, xdg-utils
, zlib
, withGUI ? true
@ -32,7 +33,8 @@
}:
let
inherit (lib) enableFeature optional optionals optionalString;
inherit (lib)
enableFeature getDev getLib optionals optionalString;
phase = name: args:
''
@ -64,10 +66,9 @@ stdenv.mkDerivation rec {
pkg-config
rake
]
++ optional withGUI wrapQtAppsHook;
++ optionals withGUI [ wrapQtAppsHook ];
# 1. qtbase and qtmultimedia are needed without the GUI
# 2. we have utf8cpp in nixpkgs but it doesn't find it
# qtbase and qtmultimedia are needed without the GUI
buildInputs = [
boost
expat
@ -84,11 +85,12 @@ stdenv.mkDerivation rec {
pugixml
qtbase
qtmultimedia
utf8cpp
xdg-utils
zlib
]
++ optional withGUI cmark
++ optional stdenv.isDarwin libiconv;
++ optionals withGUI [ cmark ]
++ optionals stdenv.isDarwin [ libiconv ];
# autoupdate is not needed but it silences a ton of pointless warnings
postPatch = ''
@ -103,9 +105,11 @@ stdenv.mkDerivation rec {
"--disable-static-qt"
"--disable-update-check"
"--enable-optimization"
"--with-boost-libdir=${lib.getLib boost}/lib"
"--with-boost-libdir=${getLib boost}/lib"
"--with-docbook-xsl-root=${docbook_xsl}/share/xml/docbook-xsl"
"--with-gettext"
"--with-extra-includes=${getDev utf8cpp}/include/utf8cpp"
"--with-extra-libs=${getLib utf8cpp}/lib"
(enableFeature withGUI "gui")
];

View file

@ -31,13 +31,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "fvwm3";
version = "1.0.8";
version = "1.0.9";
src = fetchFromGitHub {
owner = "fvwmorg";
repo = "fvwm3";
rev = finalAttrs.version;
hash = "sha256-nIxFoKo2HTF2qCawxN0WySwfjaNqtfBg1BMo0P6ZY88=";
hash = "sha256-SjAccEAQsrzfVCtesqULONmb9TLD5IF8uIwEX3UhrxU=";
};
nativeBuildInputs = [

View file

@ -187,6 +187,12 @@ let
x11_args+=(--ro-bind-try "$local_socket" "$local_socket")
fi
${lib.optionalString privateTmp ''
# sddm places XAUTHORITY in /tmp
if [[ "$XAUTHORITY" == /tmp/* ]]; then
x11_args+=(--ro-bind-try "$XAUTHORITY" "$XAUTHORITY")
fi''}
cmd=(
${bubblewrap}/bin/bwrap
--dev-bind /dev /dev

View file

@ -1,4 +1,4 @@
{ lib, stdenv, callPackage, fetchDartDeps, writeText, symlinkJoin, dartHooks, makeWrapper, dart, cacert, nodejs, darwin, jq }:
{ lib, stdenv, callPackage, fetchDartDeps, runCommand, symlinkJoin, writeText, dartHooks, makeWrapper, dart, cacert, nodejs, darwin, jq }:
{ sdkSetupScript ? ""
, pubGetScript ? "dart pub get"
@ -37,13 +37,15 @@
let
dartDeps = (fetchDartDeps.override {
dart = symlinkJoin {
name = "dart-fod";
paths = [ dart ];
nativeBuildInputs = [ makeWrapper ];
postBuild = ''
wrapProgram "$out/bin/dart" \
--add-flags "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt"
'';
name = "dart-sdk-fod";
paths = [
(runCommand "dart-fod" { nativeBuildInputs = [ makeWrapper ]; } ''
mkdir -p "$out/bin"
makeWrapper "${dart}/bin/dart" "$out/bin/dart" \
--add-flags "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt"
'')
dart
];
};
}) {
buildDrvArgs = args;

View file

@ -154,15 +154,27 @@ let
outputHash = if vendorHash != "" then vendorHash else lib.fakeSha256;
} // (removeAttrs drvArgs [ "name" "pname" ]));
depsListDrv = stdenvNoCC.mkDerivation ({
name = "${name}-dart-deps-list.json";
nativeBuildInputs = [ hook dart jq ];
mkDepsDrv = args: stdenvNoCC.mkDerivation (args // {
nativeBuildInputs = args.nativeBuildInputs or [ ] ++ [ hook dart ];
configurePhase = ''
configurePhase = args.configurePhase or ''
runHook preConfigure
doPubGet dart pub get --offline
${sdkSetupScript}
_pub_get() {
${pubGetScript} --offline
}
doPubGet _pub_get
runHook postConfigure
'';
} // (removeAttrs buildDrvInheritArgs [ "name" "pname" ]));
depsListDrv = mkDepsDrv {
name = "${name}-dart-deps-list.json";
nativeBuildInputs = [ jq ];
buildPhase = ''
runHook preBuild
@ -171,7 +183,34 @@ let
'';
dontInstall = true;
} // (removeAttrs buildDrvInheritArgs [ "name" "pname" ]));
};
packageConfigDrv = mkDepsDrv {
name = "${name}-package-config.json";
nativeBuildInputs = [ jq ];
buildPhase = ''
runHook preBuild
# Canonicalise the package_config.json, and replace references to the
# reconstructed package cache with the original FOD.
#
# The reconstructed package cache is not reproducible. The intended
# use-case of this derivation is for use with tools that use a
# package_config.json to load assets from packages, and not for use with
# Pub directly, which requires the setup performed by the hook before
# usage.
jq -S '
.packages[] |= . + { rootUri: .rootUri | gsub("'"$PUB_CACHE"'"; "${hook.deps}/cache/.pub-cache") }
| .generated |= "1970-01-01T00:00:00.000Z"
' .dart_tool/package_config.json > $out
runHook postBuild
'';
dontInstall = true;
};
# As of Dart 3.0.0, Pub checks the revision of cached Git-sourced packages.
# Git must be wrapped to return a positive result, as the real .git directory is wiped
@ -195,8 +234,10 @@ let
substitutions = { inherit gitSourceWrapper deps; };
propagatedBuildInputs = [ dart git ];
passthru = {
inherit deps;
files = deps.outPath;
depsListFile = depsListDrv.outPath;
packageConfig = packageConfigDrv;
};
}) ./setup-hook.sh;
in

View file

@ -48,6 +48,8 @@
flutter config --enable-linux-desktop >/dev/null
'';
inherit pubGetScript;
nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ wrapGAppsHook ];
buildInputs = (args.buildInputs or [ ]) ++ [ glib ];

View file

@ -112,12 +112,11 @@ There's some limitations as to which packages can be defined using this structur
CI performs [certain checks](../test/nixpkgs-check-by-name/README.md#validity-checks) on the `pkgs/by-name` structure.
This is done using the [`nixpkgs-check-by-name` tool](../test/nixpkgs-check-by-name).
The version of this tool used is the one that corresponds to the NixOS channel of the PR base branch.
See [here](../../.github/workflows/check-by-name.yml) for details.
The tool can be run locally using
You can locally emulate the CI check using
```bash
nix-build -A tests.nixpkgs-check-by-name
result/bin/nixpkgs-check-by-name .
```
$ ./pkgs/test/nixpkgs-check-by-name/scripts/run-local.sh master
```
See [here](../../.github/workflows/check-by-name.yml) for more info.

View file

@ -0,0 +1,32 @@
{ fetchFromGitLab, lib, python3Packages, qt5 }:
let
pname = "amphetype";
version = "1.0.0";
in python3Packages.buildPythonApplication {
inherit pname version;
src = fetchFromGitLab {
owner = "franksh";
repo = pname;
rev = "v${version}";
hash = "sha256-pve2f+XMfFokMCtW3KdeOJ9Ey330Gwv/dk1+WBtrBEQ=";
};
propagatedBuildInputs = with python3Packages; [
editdistance
pyqt5
translitcodec
];
doCheck = false;
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
meta = with lib; {
description = "An advanced typing practice program";
homepage = "https://gitlab.com/franksh/amphetype";
license = licenses.gpl3Only;
maintainers = with maintainers; [ rycee ];
};
}

View file

@ -2,13 +2,13 @@
buildDotnetModule rec {
pname = "Boogie";
version = "3.0.6";
version = "3.0.9";
src = fetchFromGitHub {
owner = "boogie-org";
repo = "boogie";
rev = "v${version}";
sha256 = "sha256-A/nshihI1DxV0mvYYDLPWTNQkuduppxNC7OyWuGNCD8=";
sha256 = "sha256-8hujTiUO62yfv3T/Fu5unTuvJXLGgn9BXoCA2oag3jQ=";
};
projectFile = [ "Source/Boogie.sln" ];

View file

@ -0,0 +1,69 @@
{ lib
, stdenv
, fetchFromGitHub
, qt5
, makeDesktopItem
, copyDesktopItems
}:
stdenv.mkDerivation (self: {
pname = "cloudlogoffline";
version = "1.1.4";
rev = "185f294ec36d7ebe40e37d70148b15f58d60bf0d";
hash = "sha256-UEi7q3NbTgkg4tSjiksEO05YE4yjRul4qB9hFPswnK0=";
src = fetchFromGitHub {
inherit (self) rev hash;
owner = "myzinsky";
repo = "cloudLogOffline";
};
nativeBuildInputs = [
qt5.qmake
qt5.wrapQtAppsHook
]
++ lib.optionals (!stdenv.isDarwin) [
copyDesktopItems
];
buildInputs = [
qt5.qtbase
qt5.qtgraphicaleffects
qt5.qtlocation
qt5.qtpositioning
qt5.qtquickcontrols2
qt5.qtsvg
];
postPatch = let
targetDir = if stdenv.isDarwin then "Applications" else "bin";
in ''
substituteInPlace CloudLogOffline.pro \
--replace 'target.path = /opt/$''${TARGET}/bin' "target.path = $out/${targetDir}"
'';
postInstall = lib.optionalString (!stdenv.isDarwin) ''
install -d $out/share/pixmaps
install -m644 images/logo_circle.svg $out/share/pixmaps/cloudlogoffline.svg
'';
desktopItems = lib.optionals (!stdenv.isDarwin) [
(makeDesktopItem {
name = "cloudlogoffline";
desktopName = "CloudLogOffline";
exec = "CloudLogOffline";
icon = "cloudlogoffline";
comment = self.meta.description;
genericName = "Ham radio contact logbook";
categories = [ "Network" "Utility" "HamRadio" ];
})
];
meta = {
description = "Offline frontend for Cloudlog";
homepage = "https://github.com/myzinsky/cloudLogOffline";
license = [ lib.licenses.lgpl3 ];
mainProgram = "CloudLogOffline";
maintainers = [ lib.maintainers.dblsaiko ];
platforms = lib.platforms.unix;
};
})

View file

@ -0,0 +1,28 @@
{ lib
, stdenv
, fetchFromGitHub
, php
}:
php.buildComposerProject (finalAttrs: {
pname = "composer-require-checker";
version = "4.8.0";
src = fetchFromGitHub {
owner = "maglnet";
repo = "ComposerRequireChecker";
rev = finalAttrs.version;
hash = "sha256-qCHUNaPunCPuWax/YUbYXaVh1JlJEwYvG/NmaSc1VpA=";
};
vendorHash = "sha256-B5w5n2S/mTF7vpsLuHtf2DGR5aPBfO9QGmodYGXE+Cg=";
meta = {
description = "A CLI tool to check whether a specific composer package uses imported symbols that aren't part of its direct composer dependencies";
homepage = "https://github.com/maglnet/ComposerRequireChecker/";
changelog = "https://github.com/maglnet/ComposerRequireChecker/releases/tag/${finalAttrs.version}";
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [ drupol ];
mainProgram = "composer-require-checker";
};
})

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "didder";
version = "1.2.0";
version = "1.3.0";
src = fetchFromGitHub {
owner = "makew0rld";
repo = pname;
rev = "v${version}";
hash = "sha256-S1j2TdV0XCrSc7Ua+SdY3JJoWgnFuAMGhUinTKO2Xh4=";
hash = "sha256-wYAudEyOLxbNfk4M720absGkuWXcaBPyBAcmBNBaaWU=";
};
vendorHash = "sha256-TEp1YrQquqdEMVvZaNsEB1H/DZsTYmRL257RjQF2JqM=";
vendorHash = "sha256-UD90N3nE3H9GSdVhGt1zfCk8BhPaToKGu4i0zP0Lb3Q=";
nativeBuildInputs = [ pandoc ];

View file

@ -13,13 +13,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "doublecmd";
version = "1.1.5";
version = "1.1.7";
src = fetchFromGitHub {
owner = "doublecmd";
repo = "doublecmd";
rev = "v${finalAttrs.version}";
hash = "sha256-W0WrI58RgAzxV9WiDAqmz800lcU67uk4IFetUR4Embg=";
hash = "sha256-eY8hYstNJ5RMiz3TUfgPFpvKycxTMVaZ6PE69Glxa0I=";
};
nativeBuildInputs = [

View file

@ -9,11 +9,11 @@
buildGoModule rec {
pname = "goredo";
version = "2.5.0";
version = "2.6.0";
src = fetchurl {
url = "http://www.goredo.cypherpunks.ru/download/${pname}-${version}.tar.zst";
hash = "sha256-kVxCHXQ9PjaLYviB8sf8oHiFniyNrHMO6C/qSZhjK7k=";
hash = "sha256-XTL/otfCKC55TsUBBVors2kgFpOFh+6oekOOafOhcUs=";
};
patches = [

View file

@ -38,13 +38,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "llama-cpp";
version = "1573";
version = "1671";
src = fetchFromGitHub {
owner = "ggerganov";
repo = "llama.cpp";
rev = "refs/tags/b${finalAttrs.version}";
hash = "sha256-FEH0SI87qtezc++TAR38wfldx6/1GknuTBWGn+UyFPI=";
hash = "sha256-OFRc3gHKQboVCsDlQVHwzEBurIsOMj/bVGYuCLilydE=";
};
patches = [

View file

@ -0,0 +1,73 @@
{ lib
, stdenv
, fetchFromGitHub
, meson
, ninja
, pkg-config
, fontconfig
, icu
, libdrm
, libGL
, libinput
, libX11
, libXcursor
, libxkbcommon
, mesa
, pixman
, seatd
, srm-cuarzo
, udev
, wayland
, xorgproto
}:
stdenv.mkDerivation (self: {
pname = "louvre";
version = "1.1.0-1";
rev = "v${self.version}";
hash = "sha256-HwvX0ykl2+4MBcIixmEknFtsB0QC4w1QDzQz1589bl0=";
src = fetchFromGitHub {
inherit (self) rev hash;
owner = "CuarzoSoftware";
repo = "Louvre";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
fontconfig
icu
libdrm
libGL
libinput
libX11
libXcursor
libxkbcommon
mesa
pixman
seatd
srm-cuarzo
udev
wayland
xorgproto
];
outputs = [ "out" "dev" ];
preConfigure = ''
# The root meson.build file is in src/
cd src
'';
meta = {
description = "C++ library for building Wayland compositors";
homepage = "https://github.com/CuarzoSoftware/Louvre";
mainProgram = "louvre-views";
maintainers = [ lib.maintainers.dblsaiko ];
platforms = lib.platforms.linux;
};
})

View file

@ -62,11 +62,11 @@
"packages": [
"jsony"
],
"path": "/nix/store/bzcq8q439rdsqhhihikzv3rsx4l4ybdm-source",
"rev": "ea811be",
"sha256": "1720iqsxjhqmhw1zhhs7d2ncdz25r8fqadls1p1iry1wfikjlnba",
"path": "/nix/store/l84av0wdc0s4r4alsvkaxcxhpd6j4bzg-source",
"rev": "1de1f08",
"sha256": "0rj205cs3v6g80h8ys9flbdq4wyd1csmkwdxv0lz21972zcsrcfh",
"srcDir": "src",
"url": "https://github.com/treeform/jsony/archive/ea811be.tar.gz"
"url": "https://github.com/treeform/jsony/archive/1de1f08.tar.gz"
},
{
"method": "fetchzip",
@ -95,11 +95,22 @@
"packages": [
"nimcrypto"
],
"path": "/nix/store/dnj20qh97ylf57nka9wbxs735wbw7yxv-source",
"rev": "4014ef9",
"sha256": "1kgqr2lqaffglc1fgbanwcvhkqcbbd20d5b6w4lf0nksfl9c357a",
"path": "/nix/store/zyr8zwh7vaiycn1s4r8cxwc71f2k5l0h-source",
"rev": "a079df9",
"sha256": "1dmdmgb6b9m5f8dyxk781nnd61dsk3hdxqks7idk9ncnpj9fng65",
"srcDir": "",
"url": "https://github.com/cheatfate/nimcrypto/archive/4014ef9.tar.gz"
"url": "https://github.com/cheatfate/nimcrypto/archive/a079df9.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"oauth"
],
"path": "/nix/store/bwmrrzs6xpwizmww35461x3lqpgd0942-source",
"rev": "b8c163b",
"sha256": "0k5slyzjngbdr6g0b0dykhqmaf8r8n2klbkg2gpid4ckm8hg62v5",
"srcDir": "src",
"url": "https://github.com/CORDEA/oauth/archive/b8c163b.tar.gz"
},
{
"method": "fetchzip",
@ -156,6 +167,18 @@
"srcDir": "src",
"url": "https://github.com/dom96/sass/archive/7dfdd03.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"sha1"
],
"path": "/nix/store/a6a0ycxsaxpqks42aq9wicj8ars7z7ai-source",
"ref": "master",
"rev": "92ccc5800bb0ac4865b275a2ce3c1544e98b48bc",
"sha256": "00zvvd8ssy22srg74xzapknmgmi82v534npjdrk5805shswfhqdm",
"srcDir": "",
"url": "https://github.com/onionhammer/sha1/archive/92ccc5800bb0ac4865b275a2ce3c1544e98b48bc.tar.gz"
},
{
"method": "fetchzip",
"packages": [

View file

@ -8,13 +8,13 @@
buildNimPackage (finalAttrs: prevAttrs: {
pname = "nitter";
version = "unstable-2023-10-31";
version = "unstable-2023-12-03";
src = fetchFromGitHub {
owner = "zedeus";
repo = "nitter";
rev = "b62d73dbd373f08af07c7a79efcd790d3bc1a49c";
hash = "sha256-yCD7FbqWZMY0fyFf9Q3Ka06nw5Ha7jYLpmPONAhEVIM=";
rev = "583c858cdf3486451ed6a0627640844f27009dbe";
hash = "sha256-3E6nfmOFhQ2bjwGMWdTmZ38Fg/SE36s6fxYDXwSJaTw=";
};
lockFile = ./lock.json;

View file

@ -0,0 +1,62 @@
{ lib
, stdenv
, fetchFromGitHub
, meson
, ninja
, pkg-config
, libdisplay-info
, libdrm
, libGL
, libinput
, mesa
, seatd
, udev
}:
stdenv.mkDerivation (self: {
pname = "srm-cuarzo";
version = "0.4.0-1";
rev = "v${self.version}";
hash = "sha256-PWtDSBYw62sfyN2lpd7NY8SbqDrt5IN1rdLZRtDfals=";
src = fetchFromGitHub {
inherit (self) rev hash;
owner = "CuarzoSoftware";
repo = "SRM";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
libdisplay-info
libdrm
libGL
libinput
mesa
seatd
udev
];
outputs = [ "out" "dev" ];
postPatch = ''
substituteInPlace src/meson.build \
--replace "/usr/include/drm" "${libdrm.dev}/include/drm" \
--replace "/usr/include/libdrm" "${libdrm.dev}/include/libdrm"
'';
preConfigure = ''
# The root meson.build file is in src/
cd src
'';
meta = {
description = "Simple Rendering Manager";
homepage = "https://github.com/CuarzoSoftware/SRM";
maintainers = [ lib.maintainers.dblsaiko ];
platforms = lib.platforms.linux;
};
})

View file

@ -5,16 +5,16 @@
buildGoModule rec {
pname = "terrapin-scanner";
version = "1.0.3";
version = "1.1.0";
src = fetchFromGitHub {
owner = "RUB-NDS";
repo = "Terrapin-Scanner";
rev = "refs/tags/v${version}";
hash = "sha256-snKEIWhFj+uG/jY1nbq/8T0y2FcAdkIUTf9J2Lz6owo=";
hash = "sha256-d0aAs9dT74YQkzDQnmeEo+p/RnPHeG2+SgCCF/t1F+w=";
};
vendorHash = null;
vendorHash = "sha256-skYMlL9SbBoC89tFCTIzyRViEJaviXENASEqr6zSvoo=";
ldflags = [
"-s"

View file

@ -14,14 +14,14 @@
}:
let
version = "14.1.2";
version = "15.0.2";
twemojiSrc = fetchFromGitHub {
name = "twemoji";
owner = "jdecked";
repo = "twemoji";
rev = "v${version}";
sha256 = "sha256-UQ4PwO4D1kw7JOMf6xSaRBfT822KwrvWBPDmaQjkRVQ=";
hash = "sha256-FLOqXDpSFyClBlG5u3IRL0EKeu1mckCfRizJh++IWxo=";
};
pythonEnv =

View file

@ -140,6 +140,7 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus;
platforms = platforms.unix;
mainProgram = "evince";
maintainers = teams.gnome.members ++ teams.pantheon.members;
};
}

View file

@ -1,4 +1,13 @@
{ lib, stdenv, fetchFromGitHub, stanc, python3, buildPackages, runtimeShell }:
{ lib
, stdenv
, fetchFromGitHub
, python3
, stanc
, buildPackages
, runtimeShell
, runCommandCC
, cmdstan
}:
stdenv.mkDerivation rec {
pname = "cmdstan";
@ -12,39 +21,43 @@ stdenv.mkDerivation rec {
hash = "sha256-c+L/6PjW7YgmXHuKhKjiRofBRAhKYCzFCZ6BOX5AmC4=";
};
nativeBuildInputs = [ stanc ];
buildFlags = [ "build" ];
enableParallelBuilding = true;
doCheck = true;
nativeCheckInputs = [ python3 ];
CXXFLAGS = lib.optionalString stdenv.isDarwin "-D_BOOST_LGAMMA";
postPatch = ''
substituteInPlace stan/lib/stan_math/make/libraries \
--replace "/usr/bin/env bash" "bash"
patchShebangs .
'' + lib.optionalString stdenv.isAarch64 ''
sed -z -i "s/TEST(CommandStansummary, check_console_output).*TEST(CommandStansummary, check_csv_output)/TEST(CommandStansummary, check_csv_output)/" \
src/test/interface/stansummary_test.cpp
'';
nativeBuildInputs = [
python3
stanc
];
preConfigure = ''
patchShebangs test-all.sh runCmdStanTests.py stan/
''
# Fix inclusion of hardcoded paths in PCH files, by building in the store.
+ ''
mkdir -p $out/opt
cp -R . $out/opt/cmdstan
cd $out/opt/cmdstan
mkdir -p bin
ln -s ${buildPackages.stanc}/bin/stanc bin/stanc
'';
makeFlags = lib.optional stdenv.isDarwin "arch=${stdenv.hostPlatform.darwinArch}";
makeFlags = [
"build"
] ++ lib.optionals stdenv.isDarwin [
"arch=${stdenv.hostPlatform.darwinArch}"
];
checkPhase = ''
./runCmdStanTests.py -j$NIX_BUILD_CORES src/test/interface
'';
# Disable inclusion of timestamps in PCH files when using Clang.
env.CXXFLAGS = lib.optionalString stdenv.cc.isClang "-Xclang -fno-pch-timestamp";
enableParallelBuilding = true;
installPhase = ''
mkdir -p $out/opt $out/bin
cp -r . $out/opt/cmdstan
runHook preInstall
mkdir -p $out/bin
ln -s $out/opt/cmdstan/bin/stanc $out/bin/stanc
ln -s $out/opt/cmdstan/bin/stansummary $out/bin/stansummary
cat > $out/bin/stan <<EOF
@ -52,10 +65,19 @@ stdenv.mkDerivation rec {
make -C $out/opt/cmdstan "\$(realpath "\$1")"
EOF
chmod a+x $out/bin/stan
runHook postInstall
'';
# Hack to ensure that patchelf --shrink-rpath get rids of a $TMPDIR reference.
preFixup = "rm -rf stan";
passthru.tests = {
test = runCommandCC "cmdstan-test" { } ''
cp -R ${cmdstan}/opt/cmdstan cmdstan
chmod -R +w cmdstan
cd cmdstan
./runCmdStanTests.py -j$NIX_BUILD_CORES src/test/interface
touch $out
'';
};
meta = with lib; {
description = "Command-line interface to Stan";

View file

@ -0,0 +1,54 @@
{ lib
, runCommand
, xorg
, cacert
, unzip
, platform
, flutter
, hash
}:
let
platforms = [
"android"
"ios"
"web"
"linux"
"windows"
"macos"
"fuchsia"
"universal"
];
flutter' = flutter.override {
# Use a version of Flutter with just enough capabilities to download
# artifacts.
supportedTargetPlatforms = [ ];
};
in
runCommand "flutter-artifacts-${platform}"
{
nativeBuildInputs = [ xorg.lndir flutter' unzip ];
NIX_FLUTTER_TOOLS_VM_OPTIONS = "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt";
outputHash = hash;
outputHashMode = "recursive";
outputHashAlgo = "sha256";
passthru = {
inherit platform;
};
} ''
export FLUTTER_ROOT="$NIX_BUILD_TOP"
lndir -silent '${flutter'}' "$FLUTTER_ROOT"
rm -rf "$FLUTTER_ROOT/bin/cache"
mkdir "$FLUTTER_ROOT/bin/cache"
HOME="$(mktemp -d)" flutter precache -v '--${platform}' ${builtins.concatStringsSep " " (map (p: "'--no-${p}'") (lib.remove platform platforms))}
rm -rf "$FLUTTER_ROOT/bin/cache/lockfile"
find "$FLUTTER_ROOT" -type l -lname '${flutter'}/*' -delete
cp -r bin/cache "$out"
''

View file

@ -0,0 +1,75 @@
# NOTICE: When updating these hashes, make sure that no additional platforms
# have been added to the `flutter precache` CLI. If any have, they may be
# included in every derivation, unless they are also added to the platform list
# in fetch-artifacts.nix.
#
# The known arguments are as follows:
# $ flutter precache --help --verbose
# Usage: flutter precache [arguments]
# -h, --help Print this usage information.
# -a, --all-platforms Precache artifacts for all host platforms.
# -f, --force Force re-downloading of artifacts.
# --[no-]android Precache artifacts for Android development.
# --[no-]android_gen_snapshot Precache gen_snapshot for Android development.
# --[no-]android_maven Precache Gradle dependencies for Android development.
# --[no-]android_internal_build Precache dependencies for internal Android development.
# --[no-]ios Precache artifacts for iOS development.
# --[no-]web Precache artifacts for web development.
# --[no-]linux Precache artifacts for Linux desktop development.
# --[no-]windows Precache artifacts for Windows desktop development.
# --[no-]macos Precache artifacts for macOS desktop development.
# --[no-]fuchsia Precache artifacts for Fuchsia development.
# --[no-]universal Precache artifacts required for any development platform.
# (defaults to on)
# --[no-]flutter_runner Precache the flutter runner artifacts.
# --[no-]use-unsigned-mac-binaries Precache the unsigned macOS binaries when available.
# Schema:
# ${flutterVersion}.${targetPlatform}.${hostPlatform}
#
# aarch64-darwin as a host is not yet supported.
# https://github.com/flutter/flutter/issues/60118
{
"3.13.8" = {
android = {
x86_64-linux = "sha256-Uc36aBq8wQo2aEvjAPOoixZElWOE/GNRm2GUfhbwT3Y=";
aarch64-linux = "sha256-Uc36aBq8wQo2aEvjAPOoixZElWOE/GNRm2GUfhbwT3Y=";
x86_64-darwin = "sha256-v/6/GTj7732fEOIgSaoM00yaw2qNwOMuvbuoCvii7vQ=";
};
fuchsia = {
x86_64-linux = "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=";
aarch64-linux = "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=";
x86_64-darwin = "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=";
};
ios = {
x86_64-linux = "sha256-QwkeGnutTVsm682CqxRtEd9rKUvN7zlAJcqkvAQYwao=";
aarch64-linux = "sha256-QwkeGnutTVsm682CqxRtEd9rKUvN7zlAJcqkvAQYwao=";
x86_64-darwin = "sha256-QwkeGnutTVsm682CqxRtEd9rKUvN7zlAJcqkvAQYwao=";
};
linux = {
x86_64-linux = "sha256-0gIOwux3YBdmcXgwICr8dpftj1CauaBUX8Rt5GG0WSs=";
aarch64-linux = "sha256-drGHsuJoOCLqrhVrXczqJRCOtpeWVlqdWW0OSMS/l5M=";
x86_64-darwin = "sha256-0gIOwux3YBdmcXgwICr8dpftj1CauaBUX8Rt5GG0WSs=";
};
macos = {
x86_64-linux = "sha256-9WqCJQ37mcGc5tzfqQoY5CqHWHGTizjXf9p73bdnNWc=";
aarch64-linux = "sha256-9WqCJQ37mcGc5tzfqQoY5CqHWHGTizjXf9p73bdnNWc=";
x86_64-darwin = "sha256-9WqCJQ37mcGc5tzfqQoY5CqHWHGTizjXf9p73bdnNWc=";
};
universal = {
x86_64-linux = "sha256-wATt1UPjo/fh7RFO1vvcUAdo0dMAaaOUIuzYodsM0v0=";
aarch64-linux = "sha256-Z9bszNaIpCccG7OfvE5WFsw36dITiyCQAZ6p29+Yq68=";
x86_64-darwin = "sha256-qN5bAXRfQ78TWF3FLBIxWzUB5y5OrZVQTEilY5J/+2k=";
};
web = {
x86_64-linux = "sha256-DVXJOOFxv7tKt3d0NaYMexkphEcr7+gDFV67I6iAYa0=";
aarch64-linux = "sha256-DVXJOOFxv7tKt3d0NaYMexkphEcr7+gDFV67I6iAYa0=";
x86_64-darwin = "sha256-DVXJOOFxv7tKt3d0NaYMexkphEcr7+gDFV67I6iAYa0=";
};
windows = {
x86_64-linux = "sha256-s8fJtwQkuZaGXr6vrPiKfpwP/NfewbETwyp9ERGqHYI=";
aarch64-linux = "sha256-s8fJtwQkuZaGXr6vrPiKfpwP/NfewbETwyp9ERGqHYI=";
x86_64-darwin = "sha256-s8fJtwQkuZaGXr6vrPiKfpwP/NfewbETwyp9ERGqHYI=";
};
};
}

View file

@ -0,0 +1,10 @@
{ gtk3
}:
{ buildInputs ? [ ]
, ...
}:
{
buildInputs = buildInputs ++ [ gtk3 ];
}

View file

@ -0,0 +1,26 @@
{ lib
, stdenv
, callPackage
, autoPatchelfHook
, src
}:
(stdenv.mkDerivation {
inherit (src) name;
inherit src;
nativeBuildInputs = lib.optional stdenv.hostPlatform.isLinux autoPatchelfHook;
installPhase = ''
runHook preInstall
mkdir -p "$out/bin"
cp -r . "$out/bin/cache"
runHook postInstall
'';
}).overrideAttrs (
if builtins.pathExists ./overrides/${src.platform}.nix
then callPackage ./overrides/${src.platform}.nix { }
else ({ ... }: { })
)

View file

@ -1,14 +1,24 @@
{ callPackage, fetchzip, dart, lib, stdenv }:
{ callPackage, fetchzip, fetchFromGitHub, dart, lib, stdenv }:
let
mkCustomFlutter = args: callPackage ./flutter.nix args;
wrapFlutter = flutter: callPackage ./wrapper.nix { inherit flutter; };
getPatches = dir:
let files = builtins.attrNames (builtins.readDir dir);
in map (f: dir + ("/" + f)) files;
mkFlutter = { version, engineVersion, dartVersion, flutterHash, dartHash, patches }:
mkFlutter =
{ version
, engineVersion
, dartVersion
, flutterHash
, dartHash
, patches
, pubspecLockFile
, vendorHash
, depsListFile
}:
let
args = {
inherit version engineVersion patches;
inherit version engineVersion patches pubspecLockFile vendorHash depsListFile;
dart = dart.override {
version = dartVersion;
@ -31,24 +41,12 @@ let
};
};
};
src = {
x86_64-linux = fetchzip {
url = "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${version}-stable.tar.xz";
sha256 = flutterHash.x86_64-linux;
};
aarch64-linux = fetchzip {
url = "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${version}-stable.tar.xz";
sha256 = flutterHash.aarch64-linux;
};
x86_64-darwin = fetchzip {
url = "https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_${version}-stable.zip";
sha256 = flutterHash.x86_64-darwin;
};
aarch64-darwin = fetchzip {
url = "https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_arm64_${version}-stable.zip";
sha256 = flutterHash.aarch64-darwin;
};
}.${stdenv.hostPlatform.system};
src = fetchFromGitHub {
owner = "flutter";
repo = "flutter";
rev = version;
hash = flutterHash;
};
};
in
(mkCustomFlutter args).overrideAttrs (prev: next: {
@ -57,13 +55,7 @@ let
buildFlutterApplication = callPackage ../../../build-support/flutter {
# Package a minimal version of Flutter that only uses Linux desktop release artifacts.
flutter = (wrapFlutter (mkCustomFlutter args)).override {
supportsAndroid = false;
includedEngineArtifacts = {
common = [ "flutter_patched_sdk_product" ];
platform.linux = lib.optionals stdenv.hostPlatform.isLinux
(lib.genAttrs ((lib.optional stdenv.hostPlatform.isx86_64 "x64") ++ (lib.optional stdenv.hostPlatform.isAarch64 "arm64"))
(architecture: [ "release" ]));
};
supportedTargetPlatforms = [ "universal" "linux" ];
};
};
};
@ -83,12 +75,10 @@ in
x86_64-darwin = "sha256-BchKowKd6BscVuk/dXibcQzdFkW9//GDfll77mHEI4M=";
aarch64-darwin = "sha256-9yrx09vYrOTmdqkfJI7mfh7DI1/rg67tPlf82m5+iKI=";
};
flutterHash = rec {
x86_64-linux = "sha256-ouI1gjcynSQfPTnfTVXQ4r/NEDdhmzUsKdcALLRiCbg=";
aarch64-linux = x86_64-linux;
x86_64-darwin = "sha256-k6KNazP/I71zG5mbx3iEtXBJ8EZi9Qq+7PgL/HAJrgE=";
aarch64-darwin = "sha256-Duvw8EqrGb3PmBHBH/prZjyij2xJd9sLkNfPRYpC0pQ=";
};
flutterHash = "sha256-00G030FvZZTsdf9ruFs9jdIHcC5h+xpp4NlmL64qVZA=";
patches = flutter3Patches;
pubspecLockFile = ./lockfiles/stable/pubspec.lock;
vendorHash = "sha256-lsFOvvmhszBcFb9XvabpqfL2Ek4wjhmB0OrcWUOURFQ=";
depsListFile = ./lockfiles/stable/deps.json;
};
}

View file

@ -1,243 +0,0 @@
{ lib
, stdenv
, hostPlatform
, engineVersion
, fetchurl
, fetchzip
, autoPatchelfHook
, gtk3
, flutterVersion
, unzip
, stdenvNoCC
}:
let
hashes = (import ./hashes.nix).${engineVersion} or
(throw "There are no known artifact hashes for Flutter engine version ${engineVersion}.");
noticeText = stdenvNoCC.mkDerivation (finalAttrs: {
pname = "flutter-notice";
version = engineVersion;
dontUnpack = true;
src = fetchurl {
pname = "flutter-sky_engine-LICENSE";
version = engineVersion;
url = "https://raw.githubusercontent.com/flutter/engine/${engineVersion}/sky/packages/sky_engine/LICENSE";
sha256 = hashes.skyNotice;
};
flutterNotice = fetchurl {
pname = "flutter-LICENSE";
version = engineVersion;
url = "https://raw.githubusercontent.com/flutter/flutter/${flutterVersion}/LICENSE";
sha256 = hashes.flutterNotice;
};
installPhase =
''
SRC_TEXT="$(cat $src)"
FLUTTER_NOTICE_TEXT="$(cat $flutterNotice)"
cat << EOF > $out
This artifact is from the Flutter SDK's engine.
This file carries third-party notices for its dependencies.
See also other files, that have LICENSE in the name, in the artifact directory.
Appendix 1/2: merged sky_engine LICENSE file (also found at ${finalAttrs.src.url})
$SRC_TEXT
Appendix 2/2: Flutter license (also found at ${finalAttrs.flutterNotice.url})
$FLUTTER_NOTICE_TEXT
EOF
'';
});
artifacts =
{
common = {
flutter_patched_sdk = { archive = "flutter_patched_sdk.zip"; };
flutter_patched_sdk_product = { archive = "flutter_patched_sdk_product.zip"; };
};
platform = {
android =
(lib.genAttrs
[ "arm" "arm64" "x64" ]
(arch:
{
base = [
{ archive = "artifacts.zip"; }
];
variants = lib.genAttrs [ "profile" "release" ]
(variant: [
{ archive = "artifacts.zip"; }
{ subdirectory = true; archive = "${lib.toLower hostPlatform.uname.system}-x64.zip"; }
]);
})) //
{
"x86" = {
base = [
{ archive = "artifacts.zip"; }
];
variants.jit-release = [
{ archive = "artifacts.zip"; }
];
};
};
darwin = {
"arm64" = {
base = [
{ archive = "artifacts.zip"; }
{ archive = "font-subset.zip"; }
];
variants = lib.genAttrs [ "profile" "release" ]
(variant: [
{ archive = "artifacts.zip"; }
]);
};
"x64" = {
base = [
{ archive = "FlutterEmbedder.framework.zip"; }
{ archive = "FlutterMacOS.framework.zip"; }
{ archive = "artifacts.zip"; }
{ archive = "font-subset.zip"; }
{ archive = "gen_snapshot.zip"; }
];
variants.profile = [
{ archive = "FlutterMacOS.framework.zip"; }
{ archive = "artifacts.zip"; }
{ archive = "gen_snapshot.zip"; }
];
variants.release = [
{ archive = "FlutterMacOS.dSYM.zip"; }
{ archive = "FlutterMacOS.framework.zip"; }
{ archive = "artifacts.zip"; }
{ archive = "gen_snapshot.zip"; }
];
};
};
ios =
(lib.genAttrs
[ "" ]
(arch:
{
base = [
{ archive = "artifacts.zip"; }
];
variants.profile = [
{ archive = "artifacts.zip"; }
];
variants.release = [
{ archive = "artifacts.zip"; }
{ archive = "Flutter.dSYM.zip"; }
];
}));
linux = lib.genAttrs
[ "arm64" "x64" ]
(arch:
let
linux-flutter-gtk = {
archive = "linux-${arch}-flutter-gtk.zip";
buildInputs = [ gtk3 ];
};
in
{
base = [
({ archive = "artifacts.zip"; } // lib.optionalAttrs (arch == "arm64") {
# For some reason, the arm64 artifacts are missing shader code in Flutter < 3.10.0.
postPatch = ''
if [ ! -d shader_lib ]; then
ln -s ${lib.findSingle
(pkg: lib.getName pkg == "flutter-artifact-linux-x64-artifacts")
(throw "Could not find the x64 artifact archive.")
(throw "Could not find the correct x64 artifact archive.")
artifactDerivations.platform.linux.x64.base
}/shader_lib .
fi
'';
})
{ archive = "font-subset.zip"; }
(linux-flutter-gtk // {
# https://github.com/flutter/flutter/commit/9d94a51b607600a39c14470c35c676eb3e30eed6
variant = "debug";
})
];
variants = lib.genAttrs [ "debug" "profile" "release" ] (variant: [
linux-flutter-gtk
]);
});
};
};
mkArtifactDerivation = { platform ? null, variant ? null, subdirectory ? null, archive, ... }@args:
let
artifactDirectory = if platform == null then null else "${platform}${lib.optionalString (variant != null) "-${variant}"}";
archiveBasename = lib.removeSuffix ".${(lib.last (lib.splitString "." archive))}" archive;
overrideUnpackCmd = builtins.elem archive [ "FlutterEmbedder.framework.zip" "FlutterMacOS.framework.zip" ];
in
stdenv.mkDerivation ({
pname = "flutter-artifact${lib.optionalString (platform != null) "-${artifactDirectory}"}-${archiveBasename}";
version = engineVersion;
nativeBuildInputs = [ unzip ]
++ lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
src =
if overrideUnpackCmd then
(fetchurl {
url = "https://storage.googleapis.com/flutter_infra_release/flutter/${engineVersion}${lib.optionalString (platform != null) "/${artifactDirectory}"}/${archive}";
hash = (if artifactDirectory == null then hashes else hashes.${artifactDirectory}).${archive};
}) else
(fetchzip {
url = "https://storage.googleapis.com/flutter_infra_release/flutter/${engineVersion}${lib.optionalString (platform != null) "/${artifactDirectory}"}/${archive}";
stripRoot = false;
hash = (if artifactDirectory == null then hashes else hashes.${artifactDirectory}).${archive};
});
sourceRoot = if overrideUnpackCmd then "." else null;
unpackCmd = if overrideUnpackCmd then "unzip -o $src -d $out" else null;
installPhase =
let
destination = "$out/${if subdirectory == true then archiveBasename else if subdirectory != null then subdirectory else "."}";
in
''
# ship the notice near all artifacts. if the artifact directory is / multiple directories are nested in $src, link it there. If there isn't a directory, link it in root
# this *isn't the same as the subdirectory variable above*
DIR_CNT="$(echo */ | wc -w)"
if [[ "$DIR_CNT" == 0 ]]; then
ln -s ${noticeText} LICENSE.README
else
for dir in */
do
ln -s ${noticeText} "$dir/LICENSE.README"
done
fi
mkdir -p "${destination}"
cp -r . "${destination}"
'';
} // args);
artifactDerivations = {
common = builtins.mapAttrs (name: mkArtifactDerivation) artifacts.common;
platform =
builtins.mapAttrs
(os: architectures:
builtins.mapAttrs
(architecture: variants: {
base = map
(args: mkArtifactDerivation ({
platform = "${os}${lib.optionalString (architecture != "") "-${architecture}"}";
} // args))
variants.base;
variants = builtins.mapAttrs
(variant: variantArtifacts: map
(args: mkArtifactDerivation ({
platform = "${os}${lib.optionalString (architecture != "") "-${architecture}"}";
inherit variant;
} // args))
variantArtifacts)
variants.variants;
})
architectures)
artifacts.platform;
};
in
artifactDerivations

View file

@ -1,118 +0,0 @@
{
"767d8c75e898091b925519803830fc2721658d07" = {
skyNotice = "sha256-bJMktK26wC9fVzdhLNcTHqOg5sHRZ535LB5u5dgwjlY=";
flutterNotice = "sha256-pZjblLYpD/vhC17PkRBXtqlDNRxyf92p5fKJHWhwCiA=";
android-arm = {
"artifacts.zip" = "sha256-pnUDY2sUN2r/LrivyNkfTUpQC90GKOI6Ya+0lgIz+c0=";
};
android-arm-profile = {
"artifacts.zip" = "sha256-/kDNI+no4u2Ri/FqqsQEp2iEqifULYGqzz8w0G4pzCM=";
"linux-x64.zip" = "sha256-fUfaDJIo1VcdJHcd0jO98Az3OdNQ+JtA5Mp6nQVVU4E=";
"darwin-x64.zip" = "sha256-J7vDD5VEsgnWmbI8acM3vQwrnrqcfMaCijiItDfniLY=";
};
android-arm-release = {
"artifacts.zip" = "sha256-tVAFHHG8A8vlgQu6l6ybdfm6OmBf2vrYf3PZByWvs08=";
"linux-x64.zip" = "sha256-lrejG7zpUBox9kPvs1uPM/lyR1d/SAc1w+c6kcqghHI=";
"darwin-x64.zip" = "sha256-8lKOsqLgbnuoCR87v84dn8V3PRzl1+maWFIHopiGvbc=";
};
android-arm64 = {
"artifacts.zip" = "sha256-rcU2mX0nP1ot+6DU+uxvILUOAuwTPGH23UQ6riBs0d4=";
};
android-arm64-profile = {
"artifacts.zip" = "sha256-x4TEJWi3c6mEPGh+3l4PtRqsg4Tq7mxHtGz+4MqwzPw=";
"linux-x64.zip" = "sha256-PsDKOq3DXaNeNtaFtDQJ9JIEESXBHm8XHHpOw2u1cGg=";
"darwin-x64.zip" = "sha256-K4W1CEBOlZVsHjuhvKCUZWv45VSohRd23vviaLqMNjQ=";
};
android-arm64-release = {
"artifacts.zip" = "sha256-w+J4sNhYoj44IiHpZ0BkemCYlE9wOTvWL57Y8RCstkI=";
"linux-x64.zip" = "sha256-MJsmck27V14/f0IAT6b/R47p8/eCMX9Nn//PEAbEeOY=";
"darwin-x64.zip" = "sha256-xXa5GFatJPiwBANqeWUpAdM9gibD4xH85aI6YpJrcpI=";
};
android-x64 = {
"artifacts.zip" = "sha256-doNUwEJkwncHPIf2c8xOZByUU8dmogtWlc6q7n7ElDY=";
};
android-x64-profile = {
"artifacts.zip" = "sha256-N3AjdHdzj4s6v3f3Gf6n/1Xk0W7xFQP70SneCNlj2sk=";
"linux-x64.zip" = "sha256-pNn75iZqLwOGO3ZmymmrSasDPMmDWwp9ZWBv9Xti4cU=";
"darwin-x64.zip" = "sha256-6O4lA/4wZ91ODUUYHe4HpjvraAEbhHiehBmf3sT37Dc=";
};
android-x64-release = {
"artifacts.zip" = "sha256-odDS/m8fgSA24EYt+W2sEDmOlPO17FZxxomWuYUHmns=";
"linux-x64.zip" = "sha256-sVQYmu0KaPADlL59XZc26Ks+TbmaJxRGPiJKlWxUhRA=";
"darwin-x64.zip" = "sha256-dep/CmBIDkvqYKQPWMCDTDbFhVvOk6N7JAF8v3dr/P8=";
};
android-x86 = {
"artifacts.zip" = "sha256-MzTFQ0XPtd9OXvKfM98bwpxN/xfEcXox24gn/4aS/Do=";
};
android-x86-jit-release = {
"artifacts.zip" = "sha256-cUsBqJxOOluwnYEFzdtZof8c4Vp1D81HkEEH8aRGLyY=";
};
darwin-arm64 = {
"artifacts.zip" = "sha256-df+rmN0RqLM7MgEKjTcybMY0bFYCB1jsTvaVE1J0BzY=";
"font-subset.zip" = "sha256-hJ5fECxN4oZX6E9ivzSDGejNSj56t2SKccbyfozXxps=";
};
darwin-arm64-profile = {
"artifacts.zip" = "sha256-EaXOr998zE4cG5G5FRtsDGt3jjg1GjkRGE/ZDD3Coto=";
};
darwin-arm64-release = {
"artifacts.zip" = "sha256-1XMoM8jDRoUSPMauKD5lsgC25B7Htod8wYouDKSEGJY=";
};
darwin-x64 = {
"FlutterEmbedder.framework.zip" = "sha256-vzvt0pwo1HbIxxym/jn2Y+1+Iqm/Gw2TfymEcuUHIXQ=";
"FlutterMacOS.framework.zip" = "sha256-cMTCULaVOKDq8VrqCmZLo0IPBve0GSh0K2yvtdCvX8c=";
"artifacts.zip" = "sha256-8BViZUz4b0XurQJM+FCU2toONKmhajabCc66gBUVGgY=";
"font-subset.zip" = "sha256-VgqNdUmvTbSedQtJNT+Eq90GWS4hXCDCBDBjno6s1dk=";
"gen_snapshot.zip" = "sha256-4O0ZfKt96x8/Jwh8DgBoPFiv84Tqf9tR/f0PVRJlJiQ=";
};
darwin-x64-profile = {
"FlutterMacOS.framework.zip" = "sha256-IrXK0Mjllic3OKaYKKpAE9gPIceTO32hGqgxGR66QmY=";
"artifacts.zip" = "sha256-IHllbxwRMrEWA1MI0DRCYYRzYAdQIL8B9b5rZHsOvjc=";
"gen_snapshot.zip" = "sha256-bPI6pHrWQR1X7CzytbJA90TYe3cg1yN+9v7JtsCCrbQ=";
};
darwin-x64-release = {
"FlutterMacOS.dSYM.zip" = "sha256-HjU8sLPwvOwO3LP7krpZZW6/t3sN3rX2frFnBp1Kk0I=";
"FlutterMacOS.framework.zip" = "sha256-GuTWojZFdSEeOiSYxH8XGSWsxcrkUpnXA61B0NpDa5A=";
"artifacts.zip" = "sha256-tQCm1HHrhffNz9a0lNIHXLBqFMbT4QiaibKvRKuuhJ4=";
"gen_snapshot.zip" = "sha256-0na+yx0Nxe/FuHVZqhgbRniZLInShoKE3USaJg0829o=";
};
"flutter_patched_sdk.zip" = "sha256-AVjXLND3nJAaGyBAhytBRUvbkJtwZEcndQSrq+D2c08=";
"flutter_patched_sdk_product.zip" = "sha256-31qgieDI897sXtEf8ok2SdFgrlN57bwhT3FUfdofZi0=";
ios = {
"artifacts.zip" = "sha256-RicBTTBX5aIQwfcolDrKe0MVG9uTp56RYMWgR75AVEw=";
};
ios-profile = {
"artifacts.zip" = "sha256-6EXHvy36K+rRGpjt0GL/DyuOhpAGeaOrZAZvPZuLyys=";
};
ios-release = {
"Flutter.dSYM.zip" = "sha256-zYqlX4QhxnDb9LasMcBcPO/+30LCfVbwC+z+wZiiEqk=";
"artifacts.zip" = "sha256-DVpynf2LxU6CPC1BPQbi8OStcIwJKX55rDSWNiJ4KNk=";
};
linux-arm64 = {
"artifacts.zip" = "sha256-djesma+IqQZgGlxQj4Gv6hAkQhQKQp7Gsa1I4hksqNc=";
"font-subset.zip" = "sha256-Wo11dks0uhLI2nu+9QJ7aLmvfsPcuqvcmquak4qv5XM=";
};
linux-arm64-debug = {
"linux-arm64-flutter-gtk.zip" = "sha256-6T2Ycxe3GTVnFGfBFfXLZwPklIndQ6hojnCSnMeXJso=";
};
linux-arm64-profile = {
"linux-arm64-flutter-gtk.zip" = "sha256-ycInFHuRu7r+50GsoFR4v/rIRiAQaQ9zFemd2d9AnpQ=";
};
linux-arm64-release = {
"linux-arm64-flutter-gtk.zip" = "sha256-J60MU8pHDVL9DyX5A3YdCRkKXnTgvALhHiEzYiPSSuA=";
};
linux-x64 = {
"artifacts.zip" = "sha256-ZUMRJ0dzaeRQUYy5S7gDLWa3w9CVhNPORN9l+lwxAMs=";
"font-subset.zip" = "sha256-pmtHAgIj5tXzUsDrrxB5JwfLDNzMCqouUCOyYN5BOEQ=";
};
linux-x64-debug = {
"linux-x64-flutter-gtk.zip" = "sha256-otmghZAiUlpLYfFaWd18UWlfctKcYsMRBMP78ZyBj/E=";
};
linux-x64-profile = {
"linux-x64-flutter-gtk.zip" = "sha256-bT6xMYlwTB9JOV1790cJqTSEXYstdI4sZCQzFzcpa5s=";
};
linux-x64-release = {
"linux-x64-flutter-gtk.zip" = "sha256-E8Eogr0nD7yaxjuoNhpvF4tTx9N53y3iOkI71Eqx5Ko=";
};
};
}

View file

@ -0,0 +1,51 @@
{ hostPlatform
, buildDartApplication
, git
, which
, dart
, version
, flutterSrc
, patches ? [ ]
, pubspecLockFile
, vendorHash
, depsListFile
}:
buildDartApplication.override { inherit dart; } rec {
pname = "flutter-tools";
inherit version;
dartOutputType = "jit-snapshot";
src = flutterSrc;
sourceRoot = "source/packages/flutter_tools";
postUnpack = ''chmod -R u+w "$NIX_BUILD_TOP/source"'';
inherit patches;
# The given patches are made for the entire SDK source tree.
prePatch = ''pushd "$NIX_BUILD_TOP/source"'';
postPatch = ''popd'';
# When the JIT snapshot is being built, the application needs to run.
# It attempts to generate configuration files, and relies on a few external
# tools.
nativeBuildInputs = [ git which ];
preConfigure = ''
export HOME=.
export FLUTTER_ROOT="$NIX_BUILD_TOP/source"
mkdir -p "$FLUTTER_ROOT/bin/cache"
ln -s '${dart}' "$FLUTTER_ROOT/bin/cache/dart-sdk"
'';
dartEntryPoints."flutter_tools.snapshot" = "bin/flutter_tools.dart";
dartCompileFlags = [ "--define=NIX_FLUTTER_HOST_PLATFORM=${hostPlatform.system}" ];
# The Dart wrapper launchers are useless for the Flutter tool - it is designed
# to be launched from a snapshot by the SDK.
postInstall = ''
pushd "$out"
rm ${builtins.concatStringsSep " " (builtins.attrNames dartEntryPoints)}
popd
'';
inherit pubspecLockFile vendorHash depsListFile;
}

View file

@ -3,23 +3,33 @@
, patches
, dart
, src
, pubspecLockFile
, vendorHash
, depsListFile
, lib
, stdenv
, callPackage
, makeWrapper
, darwin
, git
, which
}:
let
tools = callPackage ./flutter-tools.nix {
inherit dart version;
flutterSrc = src;
inherit patches;
inherit pubspecLockFile vendorHash depsListFile;
};
unwrapped =
stdenv.mkDerivation {
name = "flutter-${version}-unwrapped";
inherit src patches version;
outputs = [ "out" "cache" ];
buildInputs = [ git ];
nativeBuildInputs = [ ]
nativeBuildInputs = [ makeWrapper ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ];
preConfigure = ''
@ -34,46 +44,31 @@ let
'';
buildPhase = ''
export FLUTTER_ROOT="$(pwd)"
export FLUTTER_TOOLS_DIR="$FLUTTER_ROOT/packages/flutter_tools"
export SCRIPT_PATH="$FLUTTER_TOOLS_DIR/bin/flutter_tools.dart"
# The flutter_tools package tries to run many Git commands. In most
# cases, unexpected output is handled gracefully, but commands are never
# expected to fail completely. A blank repository needs to be created.
rm -rf .git # Remove any existing Git directory
git init -b nixpkgs
GIT_AUTHOR_NAME=Nixpkgs GIT_COMMITTER_NAME=Nixpkgs \
GIT_AUTHOR_EMAIL= GIT_COMMITTER_EMAIL= \
GIT_AUTHOR_DATE='1/1/1970 00:00:00 +0000' GIT_COMMITTER_DATE='1/1/1970 00:00:00 +0000' \
git commit --allow-empty -m "Initial commit"
(. '${../../../build-support/fetchgit/deterministic-git}'; make_deterministic_repo .)
export SNAPSHOT_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.snapshot"
export STAMP_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.stamp"
mkdir -p bin/cache
export DART_SDK_PATH="${dart}"
# Add a flutter_tools artifact stamp, and build a snapshot.
# This is the Flutter CLI application.
echo "$(git rev-parse HEAD)" > bin/cache/flutter_tools.stamp
ln -s '${tools}/share/flutter_tools.snapshot' bin/cache/flutter_tools.snapshot
# The Flutter tool compilation requires dependencies to be cached, as there is no Internet access.
# Dart expects package caches to be mutable, and does not support composing cache directories.
# The packages cached during the build therefore cannot be easily used. They are provided through
# the derivation's "cache" output, though, in case they are needed.
#
# Note that non-cached packages will normally be fetched from the Internet when they are needed, so Flutter
# will function without an existing package cache as long as it has an Internet connection.
export PUB_CACHE="$cache"
# Some of flutter_tools's dependencies contain static assets. The
# application attempts to read its own package_config.json to find these
# assets at runtime.
mkdir -p packages/flutter_tools/.dart_tool
ln -s '${tools.dartDeps.packageConfig}' packages/flutter_tools/.dart_tool/package_config.json
if [ -d .pub-preload-cache ]; then
${dart}/bin/dart pub cache preload .pub-preload-cache/*
elif [ -d .pub-cache ]; then
mv .pub-cache "$PUB_CACHE"
else
echo 'ERROR: Failed to locate the Dart package cache required to build the Flutter tool.'
exit 1
fi
pushd "$FLUTTER_TOOLS_DIR"
${dart}/bin/dart pub get --offline
popd
local revision="$(cd "$FLUTTER_ROOT"; git rev-parse HEAD)"
${dart}/bin/dart --snapshot="$SNAPSHOT_PATH" --packages="$FLUTTER_TOOLS_DIR/.dart_tool/package_config.json" "$SCRIPT_PATH"
echo "$revision" > "$STAMP_PATH"
echo -n "${version}" > version
# Certain prebuilts should be replaced with Nix-built (or at least Nix-patched) equivalents.
rm -r \
$FLUTTER_ROOT/bin/cache/dart-sdk \
$FLUTTER_ROOT/bin/cache/artifacts/engine
'';
installPhase = ''
@ -81,8 +76,19 @@ let
mkdir -p $out
cp -r . $out
rm -rf $out/bin/cache/dart-sdk
ln -sf ${dart} $out/bin/cache/dart-sdk
# The regular launchers are designed to download/build/update SDK
# components, and are not very useful in Nix.
# Replace them with simple links and wrappers.
rm "$out/bin"/{dart,flutter}
ln -s "$out/bin/cache/dart-sdk/bin/dart" "$out/bin/dart"
makeShellWrapper "$out/bin/dart" "$out/bin/flutter" \
--set-default FLUTTER_ROOT "$out" \
--set FLUTTER_ALREADY_LOCKED true \
--add-flags "--disable-dart-dev \$NIX_FLUTTER_TOOLS_VM_OPTIONS $out/bin/cache/flutter_tools.snapshot"
runHook postInstall
'';
@ -95,13 +101,13 @@ let
export HOME="$(mktemp -d)"
$out/bin/flutter config --android-studio-dir $HOME
$out/bin/flutter config --android-sdk $HOME
$out/bin/flutter --version | fgrep -q '${version}'
$out/bin/flutter --version | fgrep -q '${builtins.substring 0 10 engineVersion}'
runHook postInstallCheck
'';
passthru = {
inherit dart engineVersion;
inherit dart engineVersion tools;
# The derivation containing the original Flutter SDK files.
# When other derivations wrap this one, any unmodified files
# found here should be included as-is, for tooling compatibility.
@ -116,7 +122,7 @@ let
'';
homepage = "https://flutter.dev";
license = licenses.bsd3;
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
maintainers = with maintainers; [ babariviere ericdallo FlafyDev hacker1024 ];
};
};

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,677 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
_fe_analyzer_shared:
dependency: "direct main"
description:
name: _fe_analyzer_shared
sha256: ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a
url: "https://pub.dev"
source: hosted
version: "61.0.0"
analyzer:
dependency: "direct main"
description:
name: analyzer
sha256: ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562
url: "https://pub.dev"
source: hosted
version: "5.13.0"
archive:
dependency: "direct main"
description:
name: archive
sha256: "80e5141fafcb3361653ce308776cfd7d45e6e9fbb429e14eec571382c0c5fecb"
url: "https://pub.dev"
source: hosted
version: "3.3.2"
args:
dependency: "direct main"
description:
name: args
sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596
url: "https://pub.dev"
source: hosted
version: "2.4.2"
async:
dependency: "direct main"
description:
name: async
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
url: "https://pub.dev"
source: hosted
version: "2.11.0"
boolean_selector:
dependency: "direct main"
description:
name: boolean_selector
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
browser_launcher:
dependency: "direct main"
description:
name: browser_launcher
sha256: "6ee4c6b1f68a42e769ef6e663c4f56708522f7bce9d2ab6e308a37b612ffa4ec"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
built_collection:
dependency: "direct main"
description:
name: built_collection
sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100"
url: "https://pub.dev"
source: hosted
version: "5.1.1"
built_value:
dependency: "direct main"
description:
name: built_value
sha256: "598a2a682e2a7a90f08ba39c0aaa9374c5112340f0a2e275f61b59389543d166"
url: "https://pub.dev"
source: hosted
version: "8.6.1"
checked_yaml:
dependency: "direct dev"
description:
name: checked_yaml
sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff
url: "https://pub.dev"
source: hosted
version: "2.0.3"
clock:
dependency: "direct main"
description:
name: clock
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted
version: "1.1.1"
collection:
dependency: "direct dev"
description:
name: collection
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
url: "https://pub.dev"
source: hosted
version: "1.17.2"
completion:
dependency: "direct main"
description:
name: completion
sha256: f11b7a628e6c42b9edc9b0bc3aa490e2d930397546d2f794e8e1325909d11c60
url: "https://pub.dev"
source: hosted
version: "1.0.1"
convert:
dependency: "direct main"
description:
name: convert
sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
url: "https://pub.dev"
source: hosted
version: "3.1.1"
coverage:
dependency: "direct main"
description:
name: coverage
sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097"
url: "https://pub.dev"
source: hosted
version: "1.6.3"
crypto:
dependency: "direct main"
description:
name: crypto
sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
url: "https://pub.dev"
source: hosted
version: "3.0.3"
csslib:
dependency: "direct main"
description:
name: csslib
sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
dap:
dependency: "direct main"
description:
name: dap
sha256: "2120d4a8cbad45e5dbd518b713e8f064274e0a4c0e3edcaef1f4cf9ccbc90cd9"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
dds:
dependency: "direct main"
description:
name: dds
sha256: "397c3c80919ee187b2efc28205af3c0378b6b757ea6d059083dece145a2e31e9"
url: "https://pub.dev"
source: hosted
version: "2.9.0+hotfix"
dds_service_extensions:
dependency: "direct main"
description:
name: dds_service_extensions
sha256: "9ac669bef49a4c13ed62073685089be121200fb213800ec59c202e90d569ea44"
url: "https://pub.dev"
source: hosted
version: "1.5.0"
devtools_shared:
dependency: "direct main"
description:
name: devtools_shared
sha256: ad58ac3a5df41adf08d0d6f0a4d73349533edcc383ee93a30ac3d0fd0bb6df49
url: "https://pub.dev"
source: hosted
version: "2.24.0"
dwds:
dependency: "direct main"
description:
name: dwds
sha256: b6dad73ae56f00bff7647f531b9db018005f713328e816e7a277b544184e9170
url: "https://pub.dev"
source: hosted
version: "19.0.1+1"
fake_async:
dependency: "direct main"
description:
name: fake_async
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted
version: "1.3.1"
file:
dependency: "direct main"
description:
name: file
sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
url: "https://pub.dev"
source: hosted
version: "6.1.4"
file_testing:
dependency: "direct dev"
description:
name: file_testing
sha256: "0aaadb4025bd350403f4308ad6c4cea953278d9407814b8342558e4946840fb5"
url: "https://pub.dev"
source: hosted
version: "3.0.0"
fixnum:
dependency: "direct main"
description:
name: fixnum
sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
flutter_template_images:
dependency: "direct main"
description:
name: flutter_template_images
sha256: fd3e55af73c577b9e3f88d4080d3e366cb5c8ef3fbd50b94dfeca56bb0235df6
url: "https://pub.dev"
source: hosted
version: "4.2.0"
frontend_server_client:
dependency: "direct main"
description:
name: frontend_server_client
sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612"
url: "https://pub.dev"
source: hosted
version: "3.2.0"
glob:
dependency: "direct main"
description:
name: glob
sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
html:
dependency: "direct main"
description:
name: html
sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a"
url: "https://pub.dev"
source: hosted
version: "0.15.4"
http:
dependency: "direct main"
description:
name: http
sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2"
url: "https://pub.dev"
source: hosted
version: "0.13.6"
http_multi_server:
dependency: "direct main"
description:
name: http_multi_server
sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
url: "https://pub.dev"
source: hosted
version: "3.2.1"
http_parser:
dependency: "direct main"
description:
name: http_parser
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted
version: "4.0.2"
intl:
dependency: "direct main"
description:
name: intl
sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d"
url: "https://pub.dev"
source: hosted
version: "0.18.1"
io:
dependency: "direct main"
description:
name: io
sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e"
url: "https://pub.dev"
source: hosted
version: "1.0.4"
js:
dependency: "direct main"
description:
name: js
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted
version: "0.6.7"
json_annotation:
dependency: "direct dev"
description:
name: json_annotation
sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467
url: "https://pub.dev"
source: hosted
version: "4.8.1"
json_rpc_2:
dependency: "direct main"
description:
name: json_rpc_2
sha256: "5e469bffa23899edacb7b22787780068d650b106a21c76db3c49218ab7ca447e"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
logging:
dependency: "direct main"
description:
name: logging
sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340"
url: "https://pub.dev"
source: hosted
version: "1.2.0"
matcher:
dependency: "direct main"
description:
name: matcher
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
url: "https://pub.dev"
source: hosted
version: "0.12.16"
meta:
dependency: "direct main"
description:
name: meta
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
url: "https://pub.dev"
source: hosted
version: "1.9.1"
mime:
dependency: "direct main"
description:
name: mime
sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
url: "https://pub.dev"
source: hosted
version: "1.0.4"
multicast_dns:
dependency: "direct main"
description:
name: multicast_dns
sha256: "80e54aba906a7cc68fdc6a201e76b135af27155e2f8e958181d85e2b73786591"
url: "https://pub.dev"
source: hosted
version: "0.3.2+3"
mustache_template:
dependency: "direct main"
description:
name: mustache_template
sha256: a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c
url: "https://pub.dev"
source: hosted
version: "2.0.0"
native_stack_traces:
dependency: "direct main"
description:
name: native_stack_traces
sha256: c797830b9910d13b0f4e70ddef15cde034214fe3bdb8092c4ea5ffad2f74013f
url: "https://pub.dev"
source: hosted
version: "0.5.6"
node_preamble:
dependency: "direct dev"
description:
name: node_preamble
sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db"
url: "https://pub.dev"
source: hosted
version: "2.0.2"
package_config:
dependency: "direct main"
description:
name: package_config
sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
path:
dependency: "direct main"
description:
name: path
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
url: "https://pub.dev"
source: hosted
version: "1.8.3"
petitparser:
dependency: "direct main"
description:
name: petitparser
sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750
url: "https://pub.dev"
source: hosted
version: "5.4.0"
platform:
dependency: "direct main"
description:
name: platform
sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
pool:
dependency: "direct main"
description:
name: pool
sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
url: "https://pub.dev"
source: hosted
version: "1.5.1"
process:
dependency: "direct main"
description:
name: process
sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
url: "https://pub.dev"
source: hosted
version: "4.2.4"
pub_semver:
dependency: "direct main"
description:
name: pub_semver
sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
pubspec_parse:
dependency: "direct dev"
description:
name: pubspec_parse
sha256: c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367
url: "https://pub.dev"
source: hosted
version: "1.2.3"
shelf:
dependency: "direct main"
description:
name: shelf
sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4
url: "https://pub.dev"
source: hosted
version: "1.4.1"
shelf_packages_handler:
dependency: "direct main"
description:
name: shelf_packages_handler
sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
shelf_proxy:
dependency: "direct main"
description:
name: shelf_proxy
sha256: a71d2307f4393211930c590c3d2c00630f6c5a7a77edc1ef6436dfd85a6a7ee3
url: "https://pub.dev"
source: hosted
version: "1.0.4"
shelf_static:
dependency: "direct main"
description:
name: shelf_static
sha256: a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e
url: "https://pub.dev"
source: hosted
version: "1.1.2"
shelf_web_socket:
dependency: "direct main"
description:
name: shelf_web_socket
sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1"
url: "https://pub.dev"
source: hosted
version: "1.0.4"
source_map_stack_trace:
dependency: "direct main"
description:
name: source_map_stack_trace
sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
source_maps:
dependency: "direct main"
description:
name: source_maps
sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703"
url: "https://pub.dev"
source: hosted
version: "0.10.12"
source_span:
dependency: "direct main"
description:
name: source_span
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
url: "https://pub.dev"
source: hosted
version: "1.10.0"
sse:
dependency: "direct main"
description:
name: sse
sha256: "3ff9088cac3f45aa8b91336f1962e3ea6c81baaba0bbba361c05f8aa7fb59442"
url: "https://pub.dev"
source: hosted
version: "4.1.2"
stack_trace:
dependency: "direct main"
description:
name: stack_trace
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted
version: "1.11.0"
standard_message_codec:
dependency: "direct main"
description:
name: standard_message_codec
sha256: "906e66549f0ea90d87c5320e0b0f04738c5d14bc7fb121a15da31b60e84f5b15"
url: "https://pub.dev"
source: hosted
version: "0.0.1+3"
stream_channel:
dependency: "direct main"
description:
name: stream_channel
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
string_scanner:
dependency: "direct main"
description:
name: string_scanner
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted
version: "1.2.0"
sync_http:
dependency: "direct main"
description:
name: sync_http
sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961"
url: "https://pub.dev"
source: hosted
version: "0.3.1"
term_glyph:
dependency: "direct main"
description:
name: term_glyph
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted
version: "1.2.1"
test:
dependency: "direct dev"
description:
name: test
sha256: "13b41f318e2a5751c3169137103b60c584297353d4b1761b66029bae6411fe46"
url: "https://pub.dev"
source: hosted
version: "1.24.3"
test_api:
dependency: "direct main"
description:
name: test_api
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
url: "https://pub.dev"
source: hosted
version: "0.6.0"
test_core:
dependency: "direct main"
description:
name: test_core
sha256: "99806e9e6d95c7b059b7a0fc08f07fc53fabe54a829497f0d9676299f1e8637e"
url: "https://pub.dev"
source: hosted
version: "0.5.3"
typed_data:
dependency: "direct main"
description:
name: typed_data
sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
url: "https://pub.dev"
source: hosted
version: "1.3.2"
unified_analytics:
dependency: "direct main"
description:
name: unified_analytics
sha256: "4f9f29e5fd357d68fce270e37c7ad9bb489ee20098529199d6bc786b2b624298"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
usage:
dependency: "direct main"
description:
name: usage
sha256: "0bdbde65a6e710343d02a56552eeaefd20b735e04bfb6b3ee025b6b22e8d0e15"
url: "https://pub.dev"
source: hosted
version: "4.1.1"
uuid:
dependency: "direct main"
description:
name: uuid
sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313"
url: "https://pub.dev"
source: hosted
version: "3.0.7"
vm_service:
dependency: "direct main"
description:
name: vm_service
sha256: c620a6f783fa22436da68e42db7ebbf18b8c44b9a46ab911f666ff09ffd9153f
url: "https://pub.dev"
source: hosted
version: "11.7.1"
vm_snapshot_analysis:
dependency: "direct main"
description:
name: vm_snapshot_analysis
sha256: "5a79b9fbb6be2555090f55b03b23907e75d44c3fd7bdd88da09848aa5a1914c8"
url: "https://pub.dev"
source: hosted
version: "0.7.6"
watcher:
dependency: "direct main"
description:
name: watcher
sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
web_socket_channel:
dependency: "direct main"
description:
name: web_socket_channel
sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b
url: "https://pub.dev"
source: hosted
version: "2.4.0"
webdriver:
dependency: "direct main"
description:
name: webdriver
sha256: "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
webkit_inspection_protocol:
dependency: "direct main"
description:
name: webkit_inspection_protocol
sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d"
url: "https://pub.dev"
source: hosted
version: "1.2.0"
xml:
dependency: "direct main"
description:
name: xml
sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84"
url: "https://pub.dev"
source: hosted
version: "6.3.0"
yaml:
dependency: "direct main"
description:
name: yaml
sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5"
url: "https://pub.dev"
source: hosted
version: "3.1.2"
sdks:
dart: ">=3.0.0 <4.0.0"

View file

@ -0,0 +1,19 @@
diff --git a/packages/flutter_tools/lib/src/flutter_cache.dart b/packages/flutter_tools/lib/src/flutter_cache.dart
index 252021cf78..e50ef0885d 100644
--- a/packages/flutter_tools/lib/src/flutter_cache.dart
+++ b/packages/flutter_tools/lib/src/flutter_cache.dart
@@ -51,14 +51,6 @@ class FlutterCache extends Cache {
registerArtifact(IosUsbArtifacts(artifactName, this, platform: platform));
}
registerArtifact(FontSubsetArtifacts(this, platform: platform));
- registerArtifact(PubDependencies(
- logger: logger,
- // flutter root and pub must be lazily initialized to avoid accessing
- // before the version is determined.
- flutterRoot: () => Cache.flutterRoot!,
- pub: () => pub,
- projectFactory: projectFactory,
- ));
}
}

View file

@ -11,18 +11,19 @@ index 3532c23114..25dfcae4c7 100644
BIN_NAME="$(basename "$PROG_NAME")"
case "$BIN_NAME" in
flutter*)
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
index 13efbde879..467b3a7cbf 100644
--- a/packages/flutter_tools/lib/src/cache.dart
+++ b/packages/flutter_tools/lib/src/cache.dart
@@ -664,6 +664,7 @@ class Cache {
diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart
index b7e624b4e2..edfdde118b 100644
--- a/packages/flutter_tools/lib/src/runner/flutter_command.dart
+++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart
@@ -1554,7 +1554,7 @@ Run 'flutter -h' (or 'flutter <command> -h') for available flutter commands and
/// Update the cache to contain all `requiredArtifacts`.
Future<void> updateAll(Set<DevelopmentArtifact> requiredArtifacts, {bool offline = false}) async {
+ return;
if (!_lockEnabled) {
return;
}
// Populate the cache. We call this before pub get below so that the
// sky_engine package is available in the flutter cache for pub to find.
- if (shouldUpdateCache) {
+ if (false) {
// First always update universal artifacts, as some of these (e.g.
// ios-deploy on macOS) are required to determine `requiredArtifacts`.
final bool offline;
diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
index 5d6d78639f..90a4dfa555 100644
--- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart

View file

@ -1,53 +0,0 @@
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
index dd80b1e46e..8e54517765 100644
--- a/packages/flutter_tools/lib/src/cache.dart
+++ b/packages/flutter_tools/lib/src/cache.dart
@@ -22,6 +22,7 @@ import 'base/user_messages.dart';
import 'build_info.dart';
import 'convert.dart';
import 'features.dart';
+import 'globals.dart' as globals;
const String kFlutterRootEnvironmentVariableName = 'FLUTTER_ROOT'; // should point to //flutter/ (root of flutter/flutter repo)
const String kFlutterEngineEnvironmentVariableName = 'FLUTTER_ENGINE'; // should point to //engine/src/ (root of flutter/engine repo)
@@ -318,8 +319,13 @@ class Cache {
return;
}
assert(_lock == null);
+ final Directory dir = _fileSystem.directory(_fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter'));
+ if (!dir.existsSync()) {
+ dir.createSync(recursive: true);
+ globals.os.chmod(dir, '755');
+ }
final File lockFile =
- _fileSystem.file(_fileSystem.path.join(flutterRoot!, 'bin', 'cache', 'lockfile'));
+ _fileSystem.file(_fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter', 'lockfile'));
try {
_lock = lockFile.openSync(mode: FileMode.write);
} on FileSystemException catch (e) {
@@ -378,8 +384,7 @@ class Cache {
String get devToolsVersion {
if (_devToolsVersion == null) {
- const String devToolsDirPath = 'dart-sdk/bin/resources/devtools';
- final Directory devToolsDir = getCacheDir(devToolsDirPath, shouldCreate: false);
+ final Directory devToolsDir = _fileSystem.directory(_fileSystem.path.join(flutterRoot!, 'bin/cache/dart-sdk/bin/resources/devtools'));
if (!devToolsDir.existsSync()) {
throw Exception('Could not find directory at ${devToolsDir.path}');
}
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
index 1c31c1b5db..76c7210d3b 100644
--- a/packages/flutter_tools/lib/src/cache.dart
+++ b/packages/flutter_tools/lib/src/cache.dart
@@ -529,6 +529,11 @@ class Cache {
/// Return the top-level directory in the cache; this is `bin/cache`.
Directory getRoot() {
+ const Platform platform = LocalPlatform();
+ if (platform.environment.containsKey('FLUTTER_CACHE_DIR')) {
+ return _fileSystem.directory(platform.environment['FLUTTER_CACHE_DIR']);
+ }
+
if (_rootOverride != null) {
return _fileSystem.directory(_fileSystem.path.join(_rootOverride!.path, 'bin', 'cache'));
} else {

View file

@ -0,0 +1,21 @@
diff --git a/packages/flutter_tools/lib/src/base/os.dart b/packages/flutter_tools/lib/src/base/os.dart
index 1ce1951cef..1bd7602318 100644
--- a/packages/flutter_tools/lib/src/base/os.dart
+++ b/packages/flutter_tools/lib/src/base/os.dart
@@ -260,7 +260,15 @@ class _PosixUtils extends OperatingSystemUtils {
@override
String get pathVarSeparator => ':';
- HostPlatform? _hostPlatform;
+ // uname outputs build platform characteristics, not host platform characteristics.
+ // _MacOSUtils uses sysctl instead, which is still incorrect.
+ HostPlatform? _hostPlatform = switch (const String.fromEnvironment('NIX_FLUTTER_HOST_PLATFORM')) {
+ 'x86_64-linux' => HostPlatform.linux_x64,
+ 'aarch64-linux' => HostPlatform.linux_arm64,
+ 'x86_64-darwin' => HostPlatform.darwin_x64,
+ 'arm64-darwin' => HostPlatform.darwin_arm64,
+ String value => throw ArgumentError.value(value, 'NIX_FLUTTER_HOST_PLATFORM', 'Unknown Nix host platform!'),
+ };
@override
HostPlatform get hostPlatform {

View file

@ -1,10 +1,23 @@
{ symlinkJoin }: flutter:
{ symlinkJoin
, makeWrapper
}: flutter:
let
self =
symlinkJoin {
name = "${flutter.name}-sdk-links";
paths = [ flutter flutter.sdk ];
paths = [ flutter flutter.cacheDir flutter.sdk ];
nativeBuildInputs = [ makeWrapper ];
postBuild = ''
wrapProgram "$out/bin/flutter" \
--set-default FLUTTER_ROOT "$out"
# symlinkJoin seems to be missing the .git directory for some reason.
if [ -d '${flutter.sdk}/.git' ]; then
ln -s '${flutter.sdk}/.git' "$out"
fi
'';
passthru = flutter.passthru // {
# Update the SDK attribute.

View file

@ -3,27 +3,14 @@
, darwin
, callPackage
, flutter
, supportsLinuxDesktop ? stdenv.hostPlatform.isLinux
, supportsAndroid ? (stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isDarwin)
, supportsDarwin ? stdenv.hostPlatform.isDarwin
, supportsIOS ? stdenv.hostPlatform.isDarwin
, includedEngineArtifacts ? {
common = [
"flutter_patched_sdk"
"flutter_patched_sdk_product"
];
platform = {
android = lib.optionalAttrs supportsAndroid
((lib.genAttrs [ "arm" "arm64" "x64" ] (architecture: [ "profile" "release" ])) // { x86 = [ "jit-release" ]; });
darwin = lib.optionalAttrs supportsDarwin
((lib.genAttrs [ "arm64" "x64" ] (architecture: [ "profile" "release" ])));
ios = lib.optionalAttrs supportsIOS
((lib.genAttrs [ "" ] (architecture: [ "profile" "release" ])));
linux = lib.optionalAttrs supportsLinuxDesktop
(lib.genAttrs ((lib.optional stdenv.hostPlatform.isx86_64 "x64") ++ (lib.optional stdenv.hostPlatform.isAarch64 "arm64"))
(architecture: [ "debug" "profile" "release" ]));
};
}
, supportedTargetPlatforms ? [
"universal"
"web"
]
++ lib.optional stdenv.hostPlatform.isLinux "linux"
++ lib.optional (stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isDarwin) "android"
++ lib.optionals stdenv.hostPlatform.isDarwin [ "macos" "ios" ]
, artifactHashes ? (import ./artifacts/hashes.nix).${flutter.version}
, extraPkgConfigPackages ? [ ]
, extraLibraries ? [ ]
, extraIncludes ? [ ]
@ -57,70 +44,31 @@
}:
let
engineArtifacts = callPackage ./engine-artifacts {
inherit (flutter) engineVersion;
flutterVersion = flutter.version;
};
mkCommonArtifactLinkCommand = { artifact }:
''
mkdir -p $out/artifacts/engine/common
lndir -silent ${artifact} $out/artifacts/engine/common
'';
mkPlatformArtifactLinkCommand = { artifact, os, architecture, variant ? null }:
let
artifactDirectory = "${os}-${architecture}${lib.optionalString (variant != null) "-${variant}"}";
in
''
mkdir -p $out/artifacts/engine/${artifactDirectory}
lndir -silent ${artifact} $out/artifacts/engine/${artifactDirectory}
'';
engineArtifactDirectory =
runCommandLocal "flutter-engine-artifacts-${flutter.version}" { nativeBuildInputs = [ lndir ]; }
(
builtins.concatStringsSep "\n"
((map
(name: mkCommonArtifactLinkCommand {
artifact = engineArtifacts.common.${name};
})
(includedEngineArtifacts.common or [ ])) ++
(builtins.foldl'
(commands: os: commands ++
(builtins.foldl'
(commands: architecture: commands ++
(builtins.foldl'
(commands: variant: commands ++
(map
(artifact: mkPlatformArtifactLinkCommand {
inherit artifact os architecture variant;
})
engineArtifacts.platform.${os}.${architecture}.variants.${variant}))
(map
(artifact: mkPlatformArtifactLinkCommand {
inherit artifact os architecture;
})
engineArtifacts.platform.${os}.${architecture}.base)
includedEngineArtifacts.platform.${os}.${architecture}))
[ ]
(builtins.attrNames includedEngineArtifacts.platform.${os})))
[ ]
(builtins.attrNames (includedEngineArtifacts.platform or { }))))
);
supportsLinuxDesktopTarget = builtins.elem "linux" supportedTargetPlatforms;
cacheDir = symlinkJoin {
platformArtifacts = lib.genAttrs supportedTargetPlatforms (platform:
(callPackage ./artifacts/prepare-artifacts.nix {
src = callPackage ./artifacts/fetch-artifacts.nix {
inherit platform;
flutter = callPackage ./wrapper.nix { inherit flutter; };
hash = artifactHashes.${platform}.${stdenv.hostPlatform.system} or "";
};
}));
cacheDir = symlinkJoin rec {
name = "flutter-cache-dir";
paths = [
engineArtifactDirectory
"${flutter}/bin/cache"
];
paths = builtins.attrValues platformArtifacts;
postBuild = ''
mkdir -p "$out/bin/cache"
ln -s '${flutter}/bin/cache/dart-sdk' "$out/bin/cache"
'';
passthru.platform = platformArtifacts;
};
# By default, Flutter stores downloaded files (such as the Pub cache) in the SDK directory.
# Wrap it to ensure that it does not do that, preferring home directories instead.
# The sh file `$out/bin/internal/shared.sh` runs when launching Flutter and calls `"$FLUTTER_ROOT/bin/cache/` instead of our environment variable `FLUTTER_CACHE_DIR`.
# We do not patch it since the script doesn't require engine artifacts(which are the only thing not added by the unwrapped derivation), so it shouldn't fail, and patching it will just be harder to maintain.
immutableFlutter = writeShellScript "flutter_immutable" ''
export PUB_CACHE=''${PUB_CACHE:-"$HOME/.pub-cache"}
export FLUTTER_CACHE_DIR=${cacheDir}
${flutter}/bin/flutter "$@"
'';
@ -128,7 +76,7 @@ let
tools = [ git which ];
# Libraries that Flutter apps depend on at runtime.
appRuntimeDeps = lib.optionals supportsLinuxDesktop [
appRuntimeDeps = lib.optionals supportsLinuxDesktopTarget [
atk
cairo
gdk-pixbuf
@ -152,10 +100,10 @@ let
# Some header files and libraries are not properly located by the Flutter SDK.
# They must be manually included.
appStaticBuildDeps = (lib.optionals supportsLinuxDesktop [ libX11 xorgproto zlib ]) ++ extraLibraries;
appStaticBuildDeps = (lib.optionals supportsLinuxDesktopTarget [ libX11 xorgproto zlib ]) ++ extraLibraries;
# Tools used by the Flutter SDK to compile applications.
buildTools = lib.optionals supportsLinuxDesktop [
buildTools = lib.optionals supportsLinuxDesktopTarget [
pkg-config
cmake
ninja
@ -174,12 +122,12 @@ in
nativeBuildInputs = [ makeWrapper ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ]
++ lib.optionals supportsLinuxDesktop [ glib wrapGAppsHook ];
++ lib.optionals supportsLinuxDesktopTarget [ glib wrapGAppsHook ];
passthru = flutter.passthru // {
inherit (flutter) version;
unwrapped = flutter;
inherit engineArtifacts;
inherit cacheDir;
};
dontUnpack = true;

View file

@ -11,17 +11,17 @@
stdenv.mkDerivation (finalAttrs: {
pname = "unison-code-manager";
version = "M5j";
version = "0.5.11";
src = if stdenv.isDarwin then
fetchurl {
url = "https://github.com/unisonweb/unison/releases/download/release/${finalAttrs.version}/ucm-macos.tar.gz";
hash = "sha256-CDm5a4TR8GfM8QK5mYmEb63PSz469X3R5LaikAcvILI=";
hash = "sha256-e6arK4TpN7CXOZWjlVx0ReI6hz8sEHFMgpl5/S04aEs=";
}
else
fetchurl {
url = "https://github.com/unisonweb/unison/releases/download/release/${finalAttrs.version}/ucm-linux.tar.gz";
hash = "sha256-5H4qOPh2tFgOp+uHNndwwh1K+Wb42Umfl0ok9Ixrlc8=";
hash = "sha256-GlHy2/g64kvKHNltgUOdHrpjt6nFh9gl9KXk4JFrrig=";
};
# The tarball is just the prebuilt binary, in the archive root.

View file

@ -2,19 +2,19 @@
rustPlatform.buildRustPackage rec {
pname = "wasmtime";
version = "15.0.1";
version = "16.0.0";
src = fetchFromGitHub {
owner = "bytecodealliance";
repo = pname;
rev = "v${version}";
hash = "sha256-9vArmudz1Avxz46IS9FZIKbs8wZXoeWMd/FGLmpPitw=";
hash = "sha256-kySJme79RQMI8PP2Jhx1mjqJpUIf5jPn2TvbPEzw5hY=";
fetchSubmodules = true;
};
# Disable cargo-auditable until https://github.com/rust-secure-code/cargo-auditable/issues/124 is solved.
auditable = false;
cargoHash = "sha256-/mX9zUN+dZoOCOPMeWCJ9U7KfI6JnFl8B2leYosy2jQ=";
cargoHash = "sha256-2XlnR4OBvdQyMUUOL6VvqDxf8jGYlhz2PDuPd24Ocxw=";
cargoBuildFlags = [ "--package" "wasmtime-cli" "--package" "wasmtime-c-api" ];
outputs = [ "out" "dev" ];

View file

@ -76,13 +76,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "gdal";
version = "3.8.1";
version = "3.8.2";
src = fetchFromGitHub {
owner = "OSGeo";
repo = "gdal";
rev = "v${finalAttrs.version}";
hash = "sha256-EQWAJZgufUC0FADuIotrGhP0Nf5qlgOwmiSlqLSv00A=";
hash = "sha256-R21zRjEvJO+97yXJDvzDJryQ7ps9uEN62DZ0GCxdoFk=";
};
nativeBuildInputs = [

View file

@ -0,0 +1,31 @@
{ lib
, buildDunePackage
, fetchurl
, uutf
}:
buildDunePackage rec {
pname = "tty";
version = "0.0.2";
minimalOCamlVersion = "5.1";
src = fetchurl {
url = "https://github.com/leostera/tty/releases/download/${version}/tty-${version}.tbz";
hash = "sha256-eeD5Y+/QXZzFoEHvOSZj2Q74V8BK5j3Lu3Zsrj2YUUs=";
};
propagatedBuildInputs = [
uutf
];
doCheck = true;
meta = {
description = "A library for interacting with teletype and terminal emulators";
homepage = "https://github.com/leostera/tty";
changelog = "https://github.com/leostera/tty/blob/${version}/CHANGES.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ sixstring982 ];
};
}

View file

@ -6,11 +6,11 @@
buildOctavePackage rec {
pname = "ocl";
version = "1.2.1";
version = "1.2.2";
src = fetchurl {
url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
sha256 = "sha256-NVUefSGv5/l1B7sES7NG1gU8Ms2gfmb8OGxQrhzWlus=";
sha256 = "sha256-ErVMfYkWcdS+UqUH7q7gNQXQwAjrcyiUkWxagAKj3w0=";
};
meta = with lib; {

View file

@ -0,0 +1,45 @@
{ lib
, buildPythonPackage
, pythonOlder
, fetchPypi
, setuptools
, setuptools-scm
, httpagentparser
, cherrypy
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "cherrypy-cors";
version = "1.7.0";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-gzhM1mSnq4uat9SSb+lxOs/gvONmXuKBiaD6BLnyEtY=";
};
nativeBuildInputs = [
setuptools
setuptools-scm
];
propagatedBuildInputs = [
httpagentparser
cherrypy
];
pythonImportsCheck = [ "cherrypy_cors" ];
nativeCheckInputs = [
pytestCheckHook
];
meta = with lib; {
description = "CORS support for CherryPy";
homepage = "https://github.com/cherrypy/cherrypy-cors";
license = licenses.mit;
maintainers = with maintainers; [ jpts ];
};
}

View file

@ -5,16 +5,17 @@
, requests
, django
, boto3
, hatchling
, python
, mock
, pytestCheckHook
, pytest-django
, responses
}:
buildPythonPackage rec {
pname = "django-anymail";
version = "10.1";
format = "setuptools";
pyproject = true;
src = fetchFromGitHub {
owner = "anymail";
@ -23,29 +24,32 @@ buildPythonPackage rec {
hash = "sha256-unmbYQFLeqfqE1uFLMPLUad1UqA+sgbTzwRfpRhM3ik=";
};
nativeBuildInputs = [
hatchling
];
propagatedBuildInputs = [
six
requests
django
boto3
];
nativeCheckInputs = [
pytestCheckHook
pytest-django
mock
];
responses
] ++ passthru.optional-dependencies.amazon-ses;
disabledTests = [
# Require networking
"test_debug_logging"
"test_no_debug_logging"
];
passthru.optional-dependencies = {
amazon-ses = [ boto3 ];
};
checkPhase = ''
runHook preCheck
CONTINUOUS_INTEGRATION=1 python runtests.py
runHook postCheck
'';
pythonImportsCheck = [ "anymail" ];
DJANGO_SETTINGS_MODULE = "tests.test_settings.settings_3_2";
meta = with lib; {
description = "Django email backends and webhooks for Mailgun";
homepage = "https://github.com/anymail/django-anymail";

View file

@ -8,12 +8,12 @@
buildPythonPackage rec {
pname = "dockerspawner";
version = "12.1.0";
version = "13.0.0";
format = "setuptools";
src = fetchPypi {
inherit pname version;
sha256 = "3894ed8a9157f8ac8f42e0130f43932490ac5d1e89e6f295b1252f08c00ba36b";
sha256 = "sha256-POlTZ9luS9wQ/vt9w8VMfTEqGzg/DhfB45ePfvnyito=";
};
propagatedBuildInputs = [
@ -25,12 +25,15 @@ buildPythonPackage rec {
# tests require docker
doCheck = false;
pythonImportsCheck = [ "dockerspawner" ];
pythonImportsCheck = [
"dockerspawner"
];
meta = with lib; {
description = "Dockerspawner: A custom spawner for Jupyterhub";
homepage = "https://jupyter.org";
description = "A custom spawner for Jupyterhub";
homepage = "https://github.com/jupyterhub/dockerspawner";
changelog = "https://github.com/jupyterhub/dockerspawner/blob/${version}/docs/source/changelog.md";
license = licenses.bsd3;
maintainers = [ ];
maintainers = with maintainers; [ ];
};
}

View file

@ -28,14 +28,14 @@
buildPythonPackage rec {
pname = "etils";
version = "1.5.2";
format = "pyproject";
version = "1.6.0";
pyproject = true;
disabled = pythonOlder "3.8";
disabled = pythonOlder "3.10";
src = fetchPypi {
inherit pname version;
hash = "sha256-umo+Gv+Vx2kTB3aqF2wRVAY39d2IHzt5FypRSbaxxEY=";
hash = "sha256-xjX70Cp5/tStdoJdMTBrWB0itAZxch2qi8J5z2Mz5Io=";
};
nativeBuildInputs = [
@ -81,7 +81,7 @@ buildPythonPackage rec {
meta = with lib; {
changelog = "https://github.com/google/etils/blob/v${version}/CHANGELOG.md";
description = "Collection of eclectic utils for python";
description = "Collection of eclectic utils";
homepage = "https://github.com/google/etils";
license = licenses.asl20;
maintainers = with maintainers; [ mcwitt ];

View file

@ -18,7 +18,7 @@
buildPythonPackage rec {
pname = "faraday-plugins";
version = "1.14.0";
version = "1.15.0";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "infobyte";
repo = "faraday_plugins";
rev = "refs/tags/${version}";
hash = "sha256-qFA0AVebHd/Ny8x+rUkueLZhYB/PwL7o/qpUnZCRsEA=";
hash = "sha256-2Z3S5zojaRVaeeujFor/g3x+rxKppw/jSyq0GRJ49OY=";
};
postPatch = ''

View file

@ -1,23 +1,28 @@
{ lib
, buildPythonPackage
, fetchPypi
, pythonOlder
, sgmllib3k
, python
, pythonOlder
, setuptools
, sgmllib3k
}:
buildPythonPackage rec {
pname = "feedparser";
version = "6.0.10";
format = "setuptools";
version = "6.0.11";
pyproject = true;
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-J9pIX0Y3znFjzeqxOoAxK5O30MG3db70pHYpoxELylE=";
hash = "sha256-ydBAe2TG8qBl0OuyksKzXAEFDMDcM3V0Yaqr3ExBhNU=";
};
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
sgmllib3k
];
@ -36,8 +41,9 @@ buildPythonPackage rec {
];
meta = with lib; {
homepage = "https://github.com/kurtmckee/feedparser";
description = "Universal feed parser";
homepage = "https://github.com/kurtmckee/feedparser";
changelog = "https://feedparser.readthedocs.io/en/latest/changelog.html";
license = licenses.bsd2;
maintainers = with maintainers; [ domenkozar ];
};

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