Merge 33de6dfc31 into haskell-updates
This commit is contained in:
@@ -26,7 +26,6 @@ It also implements [NixOS](https://nixos.org/nixos/), a purely-functional Linux
|
||||
|
||||
* [Discourse Forum](https://discourse.nixos.org/)
|
||||
* [Matrix Chat](https://matrix.to/#/#space:nixos.org)
|
||||
* [NixOS Weekly](https://weekly.nixos.org/)
|
||||
* [Official wiki](https://wiki.nixos.org/)
|
||||
* [Community-maintained list of ways to get in touch](https://wiki.nixos.org/wiki/Get_In_Touch#Chat) (Discord, Telegram, IRC, etc.)
|
||||
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
|
||||
- The minimum version of Nix required to evaluate Nixpkgs has been raised from 2.3 to 2.18.
|
||||
|
||||
- `mono4` and `mono5` have been removed. Use `mono6` or `mono` instead.
|
||||
|
||||
- The `offrss` package was removed due to lack of upstream maintenance since 2012. It's recommended for users to migrate to another RSS reader
|
||||
|
||||
- GCC 9, 10, 11, and 12 have been removed, as they have reached end‐of‐life upstream and are no longer supported.
|
||||
@@ -72,6 +74,8 @@
|
||||
The binary name remains `webfontkitgenerator`.
|
||||
The `webfontkitgenerator` package is an alias to `webfont-bundler`.
|
||||
|
||||
- `python3Packages.triton` no longer takes an `enableRocm` argument and supports ROCm in all build configurations via runtime binding. In most cases no action will be needed. If triton is unable to find the HIP SDK add `rocmPackages.clr` as a build input or set the environment variable `HIP_PATH="${rocmPackages.clr}"`.
|
||||
|
||||
- `inspircd` has been updated to the v4 release series. Please refer to the upstream documentation for [general information](https://docs.inspircd.org/4/overview/#v4-overview) and a list of [breaking changes](https://docs.inspircd.org/4/breaking-changes/).
|
||||
|
||||
- `lima` package now only includes the guest agent for the host's architecture by default. If your guest VM's architecture differs from your Lima host's, you'll need to enable the `lima-additional-guestagents` package by setting `withAdditionalGuestAgents = true` when overriding lima with this input.
|
||||
@@ -95,6 +99,8 @@
|
||||
|
||||
- `privatebin` has been updated to `2.0.0`. This release changes configuration defaults including switching the template and removing legacy features. See the [v2.0.0 changelog entry](https://github.com/PrivateBin/PrivateBin/releases/tag/2.0.0) for details on how to upgrade.
|
||||
|
||||
- `rocmPackages.triton` has been removed in favor of `python3Packages.triton`.
|
||||
|
||||
- `go-mockery` has been updated to v3. For migration instructions see the [upstream documentation](https://vektra.github.io/mockery/latest/v3/). If v2 is still required `go-mockery_v2` has been added but will be removed on or before 2029-12-31 in-line with it's [upstream support lifecycle](https://vektra.github.io/mockery/
|
||||
|
||||
- [private-gpt](https://github.com/zylon-ai/private-gpt) service has been removed by lack of maintenance upstream.
|
||||
|
||||
+20
-1
@@ -166,7 +166,16 @@ rec {
|
||||
overrideWith = newArgs: origArgs // (if isFunction newArgs then newArgs origArgs else newArgs);
|
||||
|
||||
# Re-call the function but with different arguments
|
||||
overrideArgs = mirrorArgs (newArgs: makeOverridable f (overrideWith newArgs));
|
||||
overrideArgs = mirrorArgs (
|
||||
/**
|
||||
Change the arguments with which a certain function is called.
|
||||
|
||||
In some cases, you may find a list of possible attributes to pass in this function's `__functionArgs` attribute, but it will not be complete for an original function like `args@{foo, ...}: ...`, which accepts arbitrary attributes.
|
||||
|
||||
This function was provided by `lib.makeOverridable`.
|
||||
*/
|
||||
newArgs: makeOverridable f (overrideWith newArgs)
|
||||
);
|
||||
# Change the result of the function call by applying g to it
|
||||
overrideResult = g: makeOverridable (mirrorArgs (args: g (f args))) origArgs;
|
||||
in
|
||||
@@ -176,6 +185,16 @@ rec {
|
||||
override = overrideArgs;
|
||||
overrideDerivation = fdrv: overrideResult (x: overrideDerivation x fdrv);
|
||||
${if result ? overrideAttrs then "overrideAttrs" else null} =
|
||||
/**
|
||||
Override the attributes that were passed to `mkDerivation` in order to generate this derivation.
|
||||
|
||||
This function is provided by `lib.makeOverridable`, and indirectly by `callPackage` among others, in order to make the combination of `override` and `overrideAttrs` work.
|
||||
Specifically, it re-adds the `override` attribute to the result of `overrideAttrs`.
|
||||
|
||||
The real implementation of `overrideAttrs` is provided by `stdenv.mkDerivation`.
|
||||
*/
|
||||
# NOTE: part of the above documentation had to be duplicated in `mkDerivation`'s `overrideAttrs`.
|
||||
# design/tech debt issue: https://github.com/NixOS/nixpkgs/issues/273815
|
||||
fdrv: overrideResult (x: x.overrideAttrs fdrv);
|
||||
}
|
||||
else if isFunction result then
|
||||
|
||||
+1
-1
@@ -829,7 +829,7 @@ rec {
|
||||
toList [ 1 2 ]
|
||||
=> [ 1 2 ]
|
||||
toList "hi"
|
||||
=> [ "hi "]
|
||||
=> [ "hi" ]
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
@@ -119,9 +119,8 @@ When adding users to [`maintainer-list.nix`](./maintainer-list.nix), the followi
|
||||
|
||||
Note: GitHub's "Verified" label does not display the user's full key fingerprint, and should not be used for validating the key matches.
|
||||
|
||||
- If the user has specified a `github` account name, ensure they have also specified a `githubId` and verify the two match.
|
||||
- Ensure that the user has specified a `github` account name and a `githubId` and verify the two match.
|
||||
|
||||
Maintainer entries that include a `github` field must also include their `githubId`.
|
||||
People can and do change their GitHub name frequently, and the ID is used as the official and stable identity of the maintainer.
|
||||
|
||||
Given a maintainer entry like this:
|
||||
@@ -139,7 +138,7 @@ When adding users to [`maintainer-list.nix`](./maintainer-list.nix), the followi
|
||||
|
||||
First, make sure that the listed GitHub handle matches the author of the commit.
|
||||
|
||||
Then, visit the URL `https://api.github.com/users/ghost` and validate that the `id` field matches the provided `githubId`.
|
||||
Then, visit the URL `https://api.github.com/user/10137` and validate that the `login` field matches the provided `github` handle.
|
||||
|
||||
### Maintainer teams
|
||||
|
||||
|
||||
@@ -4,13 +4,12 @@
|
||||
handle = {
|
||||
# Required
|
||||
name = "Your name";
|
||||
|
||||
# Optional, but at least one of email, matrix or githubId must be given
|
||||
email = "address@example.org";
|
||||
matrix = "@user:example.org";
|
||||
github = "GithubUsername";
|
||||
githubId = your-github-id;
|
||||
|
||||
# Optional
|
||||
email = "address@example.org";
|
||||
matrix = "@user:example.org";
|
||||
keys = [{
|
||||
fingerprint = "AAAA BBBB CCCC DDDD EEEE FFFF 0000 1111 2222 3333";
|
||||
}];
|
||||
@@ -21,16 +20,16 @@
|
||||
|
||||
- `handle` is the handle you are going to use in nixpkgs expressions,
|
||||
- `name` is a name that people would know and recognize you by,
|
||||
- `email` is your maintainer email address,
|
||||
- `matrix` is your Matrix user ID,
|
||||
- `github` is your GitHub handle (as it appears in the URL of your profile page, `https://github.com/<userhandle>`),
|
||||
- `githubId` is your GitHub user ID, which can be found at `https://api.github.com/users/<userhandle>`,
|
||||
- `email` is your maintainer email address,
|
||||
- `matrix` is your Matrix user ID,
|
||||
- `keys` is a list of your PGP/GPG key fingerprints.
|
||||
|
||||
Specifying a GitHub account ensures that you automatically:
|
||||
- get invited to the @NixOS/nixpkgs-maintainers team ;
|
||||
- once you are part of the @NixOS org, OfBorg will request you review
|
||||
pull requests that modify a package for which you are a maintainer.
|
||||
Specifying a GitHub account is required, because:
|
||||
- you will get invited to the @NixOS/nixpkgs-maintainers team;
|
||||
- once you are part of the @NixOS org, you can be requested for review;
|
||||
- once you can be requested for review, CI will request you review pull requests that modify a package for which you are a maintainer.
|
||||
|
||||
`handle == github` is strongly preferred whenever `github` is an acceptable attribute name and is short and convenient.
|
||||
|
||||
@@ -11527,6 +11526,12 @@
|
||||
githubId = 2588851;
|
||||
name = "Jan Solanti";
|
||||
};
|
||||
janTatesa = {
|
||||
email = "taduradnik@gmail.com";
|
||||
github = "janTatesa";
|
||||
githubId = 100917739;
|
||||
name = "Tatesa Uradnik";
|
||||
};
|
||||
jappie = {
|
||||
email = "jappieklooster@hotmail.com";
|
||||
github = "jappeace";
|
||||
@@ -13892,6 +13897,12 @@
|
||||
github = "KSJ2000";
|
||||
githubId = 184105270;
|
||||
};
|
||||
ktechmidas = {
|
||||
email = "daniel@ktechmidas.net";
|
||||
github = "ktechmidas";
|
||||
githubId = 9920871;
|
||||
name = "Monotoko";
|
||||
};
|
||||
ktf = {
|
||||
email = "giulio.eulisse@cern.ch";
|
||||
github = "ktf";
|
||||
|
||||
@@ -51,6 +51,10 @@ A [`_class`](https://nixos.org/manual/nixpkgs/unstable/#module-system-lib-evalMo
|
||||
Provide it as the first attribute in the module:
|
||||
|
||||
```nix
|
||||
# Non-module dependencies (`importApply`)
|
||||
{ writeScript, runtimeShell }:
|
||||
|
||||
# Service module
|
||||
{ lib, config, ... }:
|
||||
{
|
||||
_class = "service";
|
||||
@@ -87,7 +91,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
passthru = {
|
||||
services = {
|
||||
default = {
|
||||
imports = [ ./service.nix ];
|
||||
imports = [ (lib.modules.importApply ./service.nix { inherit pkgs; }) ];
|
||||
example.package = finalAttrs.finalPackage;
|
||||
# ...
|
||||
};
|
||||
|
||||
@@ -25,6 +25,7 @@ let
|
||||
escapeShellArg
|
||||
concatMapStringsSep
|
||||
sourceFilesBySuffices
|
||||
modules
|
||||
;
|
||||
|
||||
common = import ./common.nix;
|
||||
@@ -129,7 +130,16 @@ let
|
||||
'';
|
||||
|
||||
portableServiceOptions = buildPackages.nixosOptionsDoc {
|
||||
inherit (evalModules { modules = [ ../../modules/system/service/portable/service.nix ]; }) options;
|
||||
inherit
|
||||
(evalModules {
|
||||
modules = [
|
||||
(modules.importApply ../../modules/system/service/portable/service.nix {
|
||||
pkgs = throw "nixos docs / portableServiceOptions: Do not reference pkgs in docs";
|
||||
})
|
||||
];
|
||||
})
|
||||
options
|
||||
;
|
||||
inherit revision warningsAreErrors;
|
||||
transformOptions =
|
||||
opt:
|
||||
|
||||
@@ -85,7 +85,9 @@ Moving their logic into separate Nix files may still be beneficial for the effic
|
||||
|
||||
## Writing and Reviewing a Modular Service {#modular-service-review}
|
||||
|
||||
Refer to the contributor documentation in [`nixos/README-modular-services.md`](https://github.com/NixOS/nixpkgs/blob/master/nixos/README-modular-services.md).
|
||||
A typical service module consists of the following:
|
||||
|
||||
For more details, refer to the contributor documentation in [`nixos/README-modular-services.md`](https://github.com/NixOS/nixpkgs/blob/master/nixos/README-modular-services.md).
|
||||
|
||||
## Portable Service Options {#modular-service-options-portable}
|
||||
|
||||
|
||||
@@ -638,6 +638,7 @@
|
||||
./services/hardware/brltty.nix
|
||||
./services/hardware/buffyboard.nix
|
||||
./services/hardware/ddccontrol.nix
|
||||
./services/hardware/deepcool-digital-linux.nix
|
||||
./services/hardware/display.nix
|
||||
./services/hardware/fancontrol.nix
|
||||
./services/hardware/freefall.nix
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.hardware.deepcool-digital-linux;
|
||||
in
|
||||
{
|
||||
meta.maintainers = [ lib.maintainers.NotAShelf ];
|
||||
|
||||
options.services.hardware.deepcool-digital-linux = {
|
||||
enable = lib.mkEnableOption "DeepCool Digital monitoring daemon";
|
||||
package = lib.mkPackageOption pkgs "deepcool-digital-linux" { };
|
||||
|
||||
extraArgs = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [ ];
|
||||
example = lib.literalExpression ''
|
||||
[
|
||||
# Change the update interval
|
||||
"--update 750"
|
||||
# Enable the alarm
|
||||
"--alarm"
|
||||
]
|
||||
'';
|
||||
description = ''
|
||||
Extra command line arguments to be passed to the deepcool-digital-linux daemon.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
systemd.services.deepcool-digital-linux = {
|
||||
description = "DeepCool Digital";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
StateDirectory = "deepcool-digital-linux";
|
||||
WorkingDirectory = "/var/lib/deepcool-digital-linux";
|
||||
ExecStart = "${lib.getExe cfg.package} ${lib.escapeShellArgs cfg.extraArgs}";
|
||||
Restart = "always";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -115,7 +115,7 @@ in
|
||||
autoStart = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Automatically start chromium when Gotenberg starts. If false, Chromium will start on the first conversion request that uses it.";
|
||||
description = "Automatically start Chromium when Gotenberg starts. If false, Chromium will start on the first conversion request that uses it.";
|
||||
};
|
||||
|
||||
disableJavascript = mkOption {
|
||||
@@ -172,7 +172,7 @@ in
|
||||
autoStart = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Automatically start LibreOffice when Gotenberg starts. If false, Chromium will start on the first conversion request that uses it.";
|
||||
description = "Automatically start LibreOffice when Gotenberg starts. If false, LibreOffice will start on the first conversion request that uses it.";
|
||||
};
|
||||
|
||||
disableRoutes = mkOption {
|
||||
@@ -303,6 +303,7 @@ in
|
||||
};
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
# NOTE: disable to debug chromium crashes or otherwise no coredump is created and forbidden syscalls are not being logged
|
||||
DynamicUser = true;
|
||||
ExecStart = "${lib.getExe cfg.package} ${lib.escapeShellArgs args}";
|
||||
|
||||
@@ -340,6 +341,8 @@ in
|
||||
"@sandbox"
|
||||
"@system-service"
|
||||
"@chown"
|
||||
"@pkey" # required by chromium or it crashes
|
||||
"mincore"
|
||||
];
|
||||
SystemCallArchitectures = "native";
|
||||
|
||||
|
||||
@@ -598,7 +598,7 @@ in
|
||||
|
||||
services.gotenberg = lib.mkIf cfg.configureTika {
|
||||
enable = true;
|
||||
# https://github.com/paperless-ngx/paperless-ngx/blob/v2.15.3/docker/compose/docker-compose.sqlite-tika.yml#L64-L69
|
||||
# https://github.com/paperless-ngx/paperless-ngx/blob/v2.18.2/docker/compose/docker-compose.sqlite-tika.yml#L60-L65
|
||||
chromium.disableJavascript = true;
|
||||
extraArgs = [ "--chromium-allow-list=file:///tmp/.*" ];
|
||||
};
|
||||
|
||||
@@ -53,3 +53,93 @@ Many services implement automatic reloading or reloading on e.g. `SIGUSR1`, but
|
||||
|
||||
- **Simple attribute structure**: Unlike `environment.etc`, `configData` uses a simpler structure with just `enable`, `name`, `text`, `source`, and `path` attributes. Complex ownership options were omitted for simplicity and portability.
|
||||
Per-service user creation is still TBD.
|
||||
|
||||
## No `pkgs` module argument
|
||||
|
||||
The modular service infrastructure avoids exposing `pkgs` as a module argument to service modules. Instead, derivations and builder functions are provided through lexical closure, making dependency relationships explicit and avoiding uncertainty about where dependencies come from.
|
||||
|
||||
### Benefits
|
||||
|
||||
- **Explicit dependencies**: Services declare what they need rather than implicitly depending on `pkgs`
|
||||
- **No interference**: Service modules can be reused in different contexts without assuming a specific `pkgs` instance. An unexpected `pkgs` version is not a failure mode anymore.
|
||||
- **Clarity**: With fewer ways to do things, there's no ambiguity about where dependencies come from (from the module, not the OS or service manager)
|
||||
|
||||
### Implementation
|
||||
|
||||
- **Portable layer**: Service modules in `portable/` do not receive `pkgs` as a module argument. Any required derivations must be provided by the caller.
|
||||
|
||||
- **Systemd integration**: The `systemd/system.nix` module imports `config-data.nix` as a function, providing `pkgs` in lexical closure:
|
||||
```nix
|
||||
(import ../portable/config-data.nix { inherit pkgs; })
|
||||
```
|
||||
|
||||
- **Service modules**:
|
||||
1. Should explicitly declare their package dependencies as options rather than using `pkgs` defaults:
|
||||
```nix
|
||||
{
|
||||
# Bad: uses pkgs module argument
|
||||
foo.package = mkOption {
|
||||
default = pkgs.python3;
|
||||
# ...
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
```nix
|
||||
{
|
||||
# Good: caller provides the package
|
||||
foo.package = mkOption {
|
||||
type = types.package;
|
||||
description = "Python package to use";
|
||||
defaultText = lib.literalMD "The package that provided this module.";
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
2. `passthru.services` can still provide a complete module using the package's lexical scope, making the module truly self-contained:
|
||||
|
||||
**Package (`package.nix`):**
|
||||
```nix
|
||||
{
|
||||
lib,
|
||||
writeScript,
|
||||
runtimeShell,
|
||||
# ... other dependencies
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
# ... package definition
|
||||
|
||||
passthru.services.default = {
|
||||
imports = [
|
||||
(lib.modules.importApply ./service.nix {
|
||||
inherit writeScript runtimeShell;
|
||||
})
|
||||
];
|
||||
someService.package = finalAttrs.finalPackage;
|
||||
};
|
||||
})
|
||||
```
|
||||
|
||||
**Service module (`service.nix`):**
|
||||
```nix
|
||||
# Non-module dependencies (importApply)
|
||||
{ writeScript, runtimeShell }:
|
||||
|
||||
# Service module
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
options,
|
||||
...
|
||||
}:
|
||||
{
|
||||
# Service definition using writeScript, runtimeShell from lexical scope
|
||||
process.argv = [
|
||||
(writeScript "wrapper" ''
|
||||
#!${runtimeShell}
|
||||
# ... wrapper logic
|
||||
'')
|
||||
# ... other args
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
# Tests in: ../../../../tests/modular-service-etc/test.nix
|
||||
|
||||
# Non-modular context provided by the modular services integration.
|
||||
{ pkgs }:
|
||||
|
||||
# Configuration data support for portable services
|
||||
# This module provides configData for services, enabling configuration reloading
|
||||
# without terminating and restarting the service process.
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
{ lib, ... }:
|
||||
let
|
||||
inherit (lib) concatLists mapAttrsToList showOption;
|
||||
inherit (lib)
|
||||
concatLists
|
||||
mapAttrsToList
|
||||
showOption
|
||||
types
|
||||
;
|
||||
in
|
||||
rec {
|
||||
flattenMapServicesConfigToList =
|
||||
@@ -30,4 +35,43 @@ rec {
|
||||
assertion = ass.assertion;
|
||||
}) config.assertions
|
||||
);
|
||||
|
||||
/**
|
||||
This is the entrypoint for the portable part of modular services.
|
||||
|
||||
It provides the various options that are consumed by service manager implementations.
|
||||
|
||||
# Inputs
|
||||
|
||||
`serviceManagerPkgs`: A Nixpkgs instance which will be used for built-in logic such as converting `configData.<path>.text` to a store path.
|
||||
|
||||
`extraRootModules`: Modules to be loaded into the "root" service submodule, but not into its sub-`services`. That's the modules' own responsibility.
|
||||
|
||||
`extraRootSpecialArgs`: Fixed module arguments that are provided in a similar manner to `extraRootModules`.
|
||||
|
||||
# Output
|
||||
|
||||
An attribute set.
|
||||
|
||||
`serviceSubmodule`: a Module System option type which is a `submodule` with the portable modules and this function's inputs loaded into it.
|
||||
*/
|
||||
configure =
|
||||
{
|
||||
serviceManagerPkgs,
|
||||
extraRootModules ? [ ],
|
||||
extraRootSpecialArgs ? { },
|
||||
}:
|
||||
let
|
||||
modules = [
|
||||
(lib.modules.importApply ./service.nix { pkgs = serviceManagerPkgs; })
|
||||
];
|
||||
serviceSubmodule = types.submoduleWith {
|
||||
class = "service";
|
||||
modules = modules ++ extraRootModules;
|
||||
specialArgs = extraRootSpecialArgs;
|
||||
};
|
||||
in
|
||||
{
|
||||
inherit serviceSubmodule;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
# Non-module arguments
|
||||
# These are separate from the module arguments to avoid implicit dependencies.
|
||||
# This makes service modules self-contains, allowing mixing of Nixpkgs versions.
|
||||
{ pkgs }:
|
||||
|
||||
# The module
|
||||
{
|
||||
lib,
|
||||
...
|
||||
@@ -12,14 +18,14 @@ in
|
||||
imports = [
|
||||
../../../../../modules/generic/meta-maintainers.nix
|
||||
../../../misc/assertions.nix
|
||||
./config-data.nix
|
||||
(lib.modules.importApply ./config-data.nix { inherit pkgs; })
|
||||
];
|
||||
options = {
|
||||
services = mkOption {
|
||||
type = types.attrsOf (
|
||||
types.submoduleWith {
|
||||
modules = [
|
||||
./service.nix
|
||||
(lib.modules.importApply ./service.nix { inherit pkgs; })
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
@@ -7,6 +7,12 @@ let
|
||||
|
||||
portable-lib = import ./lib.nix { inherit lib; };
|
||||
|
||||
configured = portable-lib.configure {
|
||||
serviceManagerPkgs = throw "do not use pkgs in this test";
|
||||
extraRootModules = [ ];
|
||||
extraRootSpecialArgs = { };
|
||||
};
|
||||
|
||||
dummyPkg =
|
||||
name:
|
||||
derivation {
|
||||
@@ -79,23 +85,25 @@ let
|
||||
modules = [
|
||||
{
|
||||
options.services = mkOption {
|
||||
type = types.attrsOf (
|
||||
types.submoduleWith {
|
||||
class = "service";
|
||||
modules = [
|
||||
./service.nix
|
||||
];
|
||||
}
|
||||
);
|
||||
type = types.attrsOf configured.serviceSubmodule;
|
||||
};
|
||||
}
|
||||
exampleConfig
|
||||
];
|
||||
};
|
||||
|
||||
filterEval =
|
||||
config:
|
||||
lib.optionalAttrs (config ? process) {
|
||||
inherit (config) assertions warnings process;
|
||||
}
|
||||
// {
|
||||
services = lib.mapAttrs (k: filterEval) config.services;
|
||||
};
|
||||
|
||||
test =
|
||||
assert
|
||||
exampleEval.config == {
|
||||
filterEval exampleEval.config == {
|
||||
services = {
|
||||
service1 = {
|
||||
process = {
|
||||
|
||||
@@ -52,8 +52,8 @@ let
|
||||
|
||||
in
|
||||
{
|
||||
_class = "service";
|
||||
imports = [
|
||||
../portable/service.nix
|
||||
(lib.mkAliasOptionModule [ "systemd" "service" ] [ "systemd" "services" "" ])
|
||||
(lib.mkAliasOptionModule [ "systemd" "socket" ] [ "systemd" "sockets" "" ])
|
||||
];
|
||||
@@ -101,6 +101,8 @@ in
|
||||
};
|
||||
}
|
||||
);
|
||||
# Rendered by the portable docs instead.
|
||||
visible = false;
|
||||
};
|
||||
};
|
||||
config = {
|
||||
|
||||
@@ -59,44 +59,28 @@ let
|
||||
// concatMapAttrs (
|
||||
subServiceName: subService: makeUnits unitType (dash prefix subServiceName) subService
|
||||
) service.services;
|
||||
|
||||
modularServiceConfiguration = portable-lib.configure {
|
||||
serviceManagerPkgs = pkgs;
|
||||
extraRootModules = [
|
||||
./service.nix
|
||||
./config-data-path.nix
|
||||
];
|
||||
extraRootSpecialArgs = {
|
||||
systemdPackage = config.systemd.package;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
_class = "nixos";
|
||||
|
||||
# First half of the magic: mix systemd logic into the otherwise abstract services
|
||||
options = {
|
||||
system.services = mkOption {
|
||||
description = ''
|
||||
A collection of NixOS [modular services](https://nixos.org/manual/nixos/unstable/#modular-services) that are configured as systemd services.
|
||||
'';
|
||||
type = types.attrsOf (
|
||||
types.submoduleWith {
|
||||
class = "service";
|
||||
modules = [
|
||||
./service.nix
|
||||
./config-data-path.nix
|
||||
|
||||
# TODO: Consider removing pkgs. Service modules can provide their own
|
||||
# dependencies.
|
||||
{
|
||||
# Extend portable services option
|
||||
options.services = lib.mkOption {
|
||||
type = types.attrsOf (
|
||||
types.submoduleWith {
|
||||
specialArgs.pkgs = pkgs;
|
||||
modules = [ ];
|
||||
}
|
||||
);
|
||||
};
|
||||
}
|
||||
];
|
||||
specialArgs = {
|
||||
# perhaps: features."systemd" = { };
|
||||
# TODO: Consider removing pkgs. Service modules can provide their own
|
||||
# dependencies.
|
||||
inherit pkgs;
|
||||
systemdPackage = config.systemd.package;
|
||||
};
|
||||
}
|
||||
);
|
||||
type = types.attrsOf modularServiceConfiguration.serviceSubmodule;
|
||||
default = { };
|
||||
visible = "shallow";
|
||||
};
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
nodes.machine = {
|
||||
services.gotenberg = {
|
||||
enable = true;
|
||||
# fail the service if any of those does not come up
|
||||
chromium.autoStart = true;
|
||||
libreoffice.autoStart = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
@@ -16,7 +15,6 @@ in
|
||||
python-http-server = {
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.python3;
|
||||
description = "Python package to use for the web server";
|
||||
};
|
||||
|
||||
@@ -46,21 +44,9 @@ in
|
||||
];
|
||||
|
||||
configData = {
|
||||
# This should probably just be {} if we were to put this module in production.
|
||||
"webroot" = lib.mkDefault {
|
||||
source = pkgs.runCommand "default-webroot" { } ''
|
||||
mkdir -p $out
|
||||
cat > $out/index.html << 'EOF'
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head><title>Python Web Server</title></head>
|
||||
<body>
|
||||
<h1>Welcome to the Python Web Server</h1>
|
||||
<p>Serving from port ${toString config.python-http-server.port}</p>
|
||||
</body>
|
||||
</html>
|
||||
EOF
|
||||
'';
|
||||
"webroot" = {
|
||||
# Enable only if directory is set to use this path
|
||||
enable = lib.mkDefault (config.python-http-server.directory == config.configData."webroot".path);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -12,18 +12,44 @@
|
||||
nodes = {
|
||||
server =
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
# Normally the package services.default attribute combines this, but we
|
||||
# don't have that, because this is not a production service. Should it be?
|
||||
python-http-server = {
|
||||
imports = [ ./python-http-server.nix ];
|
||||
python-http-server.package = pkgs.python3;
|
||||
};
|
||||
in
|
||||
{
|
||||
system.services.webserver = {
|
||||
# The python web server is simple enough that it doesn't need a reload signal.
|
||||
# Other services may need to receive a signal in order to re-read what's in `configData`.
|
||||
imports = [ ./python-http-server.nix ];
|
||||
imports = [ python-http-server ];
|
||||
python-http-server = {
|
||||
port = 8080;
|
||||
};
|
||||
|
||||
configData = {
|
||||
"webroot" = {
|
||||
source = pkgs.runCommand "webroot" { } ''
|
||||
mkdir -p $out
|
||||
cat > $out/index.html << 'EOF'
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head><title>Python Web Server</title></head>
|
||||
<body>
|
||||
<h1>Welcome to the Python Web Server</h1>
|
||||
<p>Serving from port 8080</p>
|
||||
</body>
|
||||
</html>
|
||||
EOF
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
# Add a sub-service
|
||||
services.api = {
|
||||
imports = [ ./python-http-server.nix ];
|
||||
imports = [ python-http-server ];
|
||||
python-http-server = {
|
||||
port = 8081;
|
||||
};
|
||||
@@ -147,8 +173,9 @@
|
||||
print(f"Before switch - webserver PID: {webserver_pid}, api PID: {api_pid}")
|
||||
|
||||
# Switch to the specialisation with updated content
|
||||
switch_output = server.succeed("/run/current-system/specialisation/updated/bin/switch-to-configuration test")
|
||||
print(f"Switch output: {switch_output}")
|
||||
# Capture both stdout and stderr, and show stderr in real-time for debugging
|
||||
switch_output = server.succeed("/run/current-system/specialisation/updated/bin/switch-to-configuration test 2>&1 | tee /dev/stderr")
|
||||
print(f"Switch output (stdout+stderr): {switch_output}")
|
||||
|
||||
# Verify services are not mentioned in the switch output (indicating they weren't touched)
|
||||
assert "webserver.service" not in switch_output, f"webserver.service was mentioned in switch output: {switch_output}"
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# Run with:
|
||||
# nix-build -A nixosTests.php.fpm-modular
|
||||
{ lib, php, ... }:
|
||||
{
|
||||
name = "php-${php.version}-fpm-modular-nginx-test";
|
||||
|
||||
@@ -10,7 +10,7 @@ let
|
||||
mkTestName =
|
||||
pkg: "${pkg.pname}_${builtins.replaceStrings [ "." ] [ "" ] (lib.versions.majorMinor pkg.version)}";
|
||||
redisPackages = {
|
||||
inherit (pkgs) redis keydb;
|
||||
inherit (pkgs) redis keydb valkey;
|
||||
};
|
||||
makeRedisTest =
|
||||
{
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
lv2,
|
||||
pkg-config,
|
||||
libGLU,
|
||||
libGL,
|
||||
cairo,
|
||||
pango,
|
||||
libjack2,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.7.0";
|
||||
|
||||
robtkVersion = "80a2585253a861c81f0bfb7e4579c75f5c73af89";
|
||||
robtkName = "robtk-${robtkVersion}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "x42";
|
||||
repo = "sisco.lv2";
|
||||
rev = "v${version}";
|
||||
sha256 = "1r6g29yqbdqgkh01x6d3nvmvc58rk2dp94fd0qyyizq37a1qplj1";
|
||||
};
|
||||
|
||||
robtkSrc = fetchFromGitHub {
|
||||
owner = "x42";
|
||||
repo = "robtk";
|
||||
rev = robtkVersion;
|
||||
sha256 = "0gk16nrvnrffqqw0yd015kja9wkgbzvb648bl1pagriabhznhfxl";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sisco.lv2";
|
||||
inherit version;
|
||||
|
||||
srcs = [
|
||||
src
|
||||
robtkSrc
|
||||
];
|
||||
sourceRoot = src.name;
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [
|
||||
lv2
|
||||
pango
|
||||
cairo
|
||||
libjack2
|
||||
libGLU
|
||||
libGL
|
||||
];
|
||||
|
||||
postUnpack = "chmod u+w -R ${robtkName}-src; mv ${robtkName}-src/* ${sourceRoot}/robtk";
|
||||
sisco_VERSION = version;
|
||||
preConfigure = "makeFlagsArray=(PREFIX=$out)";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple audio oscilloscope with variable time scale, triggering, cursors and numeric readout in LV2 plugin format";
|
||||
homepage = "http://x42.github.io/sisco.lv2/";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
@@ -7496,6 +7496,19 @@ final: prev: {
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
live-preview-nvim = buildVimPlugin {
|
||||
pname = "live-preview.nvim";
|
||||
version = "2025-08-17";
|
||||
src = fetchFromGitHub {
|
||||
owner = "brianhuster";
|
||||
repo = "live-preview.nvim";
|
||||
rev = "5890c4f7cb81a432fd5f3b960167757f1b4d4702";
|
||||
sha256 = "0gr68xmx9ph74pqnlpbfx9kj5bh7yg3qh0jni98z2nmkzfvg4qcx";
|
||||
};
|
||||
meta.homepage = "https://github.com/brianhuster/live-preview.nvim/";
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
live-rename-nvim = buildVimPlugin {
|
||||
pname = "live-rename.nvim";
|
||||
version = "2025-06-23";
|
||||
|
||||
@@ -1794,6 +1794,22 @@ in
|
||||
dependencies = [ self.litee-nvim ];
|
||||
};
|
||||
|
||||
live-preview-nvim = super.live-preview-nvim.overrideAttrs {
|
||||
checkInputs = with self; [
|
||||
fzf-lua
|
||||
mini-pick
|
||||
snacks-nvim
|
||||
telescope-nvim
|
||||
];
|
||||
|
||||
nvimSkipModules = [
|
||||
# Ignore livepreview._spec as it fails nvimRequireCheck.
|
||||
# This file runs tests on require which unfortunately fails as it attempts to require the base plugin. See https://github.com/brianhuster/live-preview.nvim/blob/5890c4f7cb81a432fd5f3b960167757f1b4d4702/lua/livepreview/_spec.lua#L25
|
||||
"livepreview._spec"
|
||||
];
|
||||
meta.license = lib.licenses.gpl3Only;
|
||||
};
|
||||
|
||||
lspcontainers-nvim = super.lspcontainers-nvim.overrideAttrs {
|
||||
dependencies = [ self.nvim-lspconfig ];
|
||||
};
|
||||
|
||||
@@ -575,6 +575,7 @@ https://github.com/ldelossa/litee-filetree.nvim/,,
|
||||
https://github.com/ldelossa/litee-symboltree.nvim/,,
|
||||
https://github.com/ldelossa/litee.nvim/,,
|
||||
https://github.com/smjonas/live-command.nvim/,HEAD,
|
||||
https://github.com/brianhuster/live-preview.nvim/,HEAD,
|
||||
https://github.com/saecki/live-rename.nvim/,HEAD,
|
||||
https://github.com/azratul/live-share.nvim/,HEAD,
|
||||
https://github.com/ggml-org/llama.vim/,HEAD,
|
||||
|
||||
@@ -5072,8 +5072,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "vstuc";
|
||||
publisher = "VisualStudioToolsForUnity";
|
||||
version = "1.1.2";
|
||||
hash = "sha256-Haai7sTGAreO7cUvSIc12bQl7WwQl+waJumYOvpVJ7M=";
|
||||
version = "1.1.3";
|
||||
hash = "sha256-MQ7XW45NFhpx0kH3+O3nWXGKUzE9z+axYYQs7rER9ns=";
|
||||
};
|
||||
meta = {
|
||||
description = "Integrates Visual Studio Code for Unity";
|
||||
|
||||
@@ -10,8 +10,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "wgsl-analyzer";
|
||||
publisher = "wgsl-analyzer";
|
||||
version = "0.10.178";
|
||||
hash = "sha256-ZYhvCZ/ww6GbFF5ythVSgI41dZsbC4Y77s6+KEeEkCY=";
|
||||
version = "0.11.39";
|
||||
hash = "sha256-r2epJdgXn+2oUcgix+eDXeezslr5akxfCkj4uGDadqI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "mupen64plus-next";
|
||||
version = "0-unstable-2025-07-29";
|
||||
version = "0-unstable-2025-08-20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "mupen64plus-libretro-nx";
|
||||
rev = "2d923939db32aad01e633010fac71f860c943a6d";
|
||||
hash = "sha256-HNhGVXTeCECqOdyluPq6aYWuA612H+PCJ65XoN9WJXU=";
|
||||
rev = "222acbd3f98391458a047874d0372fe78e14fe94";
|
||||
hash = "sha256-esssh/0nxNUDW/eMDQbWEdcSPuqLjnKLkK4mKN17HjQ=";
|
||||
};
|
||||
|
||||
# Fix for GCC 14
|
||||
|
||||
@@ -82,14 +82,14 @@ let
|
||||
];
|
||||
in
|
||||
mkDerivation rec {
|
||||
version = "3.44.1";
|
||||
version = "3.44.2";
|
||||
pname = "qgis-unwrapped";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qgis";
|
||||
repo = "QGIS";
|
||||
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
|
||||
hash = "sha256-WUXYjMCq95S5GHcn3pR45kpP3Us1HG4sS+EmjCBYOrM=";
|
||||
hash = "sha256-ERaox5jqB7E/W0W6NnipHx1qfY2+FTHYf3r2l1KRkC0=";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchgit,
|
||||
autoreconfHook,
|
||||
glib,
|
||||
pkg-config,
|
||||
libxml2,
|
||||
exiv2,
|
||||
imagemagick6,
|
||||
version,
|
||||
sha256,
|
||||
rev,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
inherit version;
|
||||
pname = "cataract";
|
||||
|
||||
src = fetchgit {
|
||||
url = "git://git.bzatek.net/cataract";
|
||||
inherit sha256 rev;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
];
|
||||
buildInputs = [
|
||||
glib
|
||||
libxml2
|
||||
exiv2
|
||||
imagemagick6
|
||||
];
|
||||
|
||||
prePatch = ''
|
||||
sed -i 's|#include <exiv2/exif.hpp>|#include <exiv2/exiv2.hpp>|' src/jpeg-utils.cpp
|
||||
'';
|
||||
|
||||
# Add workaround for -fno-common toolchains like upstream gcc-10 to
|
||||
# avoid build failures like:
|
||||
# ld: stats.o:/build/cataract-675e647/src/stats.h:24: multiple definition of
|
||||
# `stats_images'; cgg.o:/build/cataract-675e647/src/stats.h:24: first defined here
|
||||
env.NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out/{bin,share} -p
|
||||
cp src/cgg{,-dirgen} $out/bin/
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://cgg.bzatek.net/";
|
||||
description = "Simple static web photo gallery, designed to be clean and easily usable";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.matthiasbeyer ];
|
||||
platforms = with platforms; linux ++ darwin;
|
||||
};
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{ callPackage }:
|
||||
|
||||
callPackage ./build.nix {
|
||||
version = "1.1.0";
|
||||
rev = "675e647dc8ae918d29f520a29be9201ae85a94dd";
|
||||
sha256 = "13b9rvcy9k2ay8w36j28kc7f4lnxp4jc0494ck3xsmwgqsawmzdj";
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{ callPackage }:
|
||||
|
||||
callPackage ./build.nix {
|
||||
version = "unstable-2016-10-18";
|
||||
rev = "db3d992febbe703931840e9bdad95c43081694a5";
|
||||
sha256 = "04f85piy675lq36w1mw6mw66n8911mmn4ifj8h9x47z8z806h3rf";
|
||||
}
|
||||
@@ -7,7 +7,6 @@
|
||||
qttools,
|
||||
qtwayland,
|
||||
wrapQtAppsHook,
|
||||
...
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
@@ -51,14 +51,14 @@
|
||||
}:
|
||||
buildPythonApplication rec {
|
||||
pname = "visidata";
|
||||
version = "3.1.1";
|
||||
version = "3.2";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "saulpw";
|
||||
repo = "visidata";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ICEYC9QjYrB+oTzakfjgyg4DigzDOtYnqHRTaqF7Gw0=";
|
||||
hash = "sha256-kOg9OypWNGStNYFctPIwzVa1CsZBySY2IpA3eDrS7eY=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -803,7 +803,7 @@
|
||||
}
|
||||
},
|
||||
"ungoogled-chromium": {
|
||||
"version": "139.0.7258.138",
|
||||
"version": "139.0.7258.154",
|
||||
"deps": {
|
||||
"depot_tools": {
|
||||
"rev": "ea7a0baff0d8554cf6d38f525b4e7882c2b4ec18",
|
||||
@@ -815,16 +815,16 @@
|
||||
"hash": "sha256-gwptzuirIdPAV9XCaAT09aM/fY7d6xgBU7oSu9C4tmE="
|
||||
},
|
||||
"ungoogled-patches": {
|
||||
"rev": "139.0.7258.138-1",
|
||||
"hash": "sha256-dmkUQHG9E0owKBIZi/e0mC5lc07rmU1muzP63PLdtTs="
|
||||
"rev": "139.0.7258.154-1",
|
||||
"hash": "sha256-GGuHEkqcTEvy1m1m8n4hReo8DmLQMDd5J6P1iTnG4Ys="
|
||||
},
|
||||
"npmHash": "sha256-R2gOpfPOUAmnsnUTIvzDPHuHNzL/b2fwlyyfTrywEcI="
|
||||
},
|
||||
"DEPS": {
|
||||
"src": {
|
||||
"url": "https://chromium.googlesource.com/chromium/src.git",
|
||||
"rev": "884e54ea8d42947ed636779015c5b4815e069838",
|
||||
"hash": "sha256-MCBHB1ms3H8AXqiIDHH7C+8/NDcgsn3pDx7mKtGdfbc=",
|
||||
"rev": "9e0d6b2b47ffb17007b713429c9a302f9e43847f",
|
||||
"hash": "sha256-L3cq3kx7hOv8bzwkQ+nyDM9VDzsvHaRzrSwrqwyCdHA=",
|
||||
"recompress": true
|
||||
},
|
||||
"src/third_party/clang-format/script": {
|
||||
@@ -899,8 +899,8 @@
|
||||
},
|
||||
"src/third_party/angle": {
|
||||
"url": "https://chromium.googlesource.com/angle/angle.git",
|
||||
"rev": "96492b317e27ba4106ed00f5faa4534cfeaa0b8f",
|
||||
"hash": "sha256-TE8vYLNnAzVkGQZ2ZYuNHnu8fwp2Qv4ANP0btgrKYSQ="
|
||||
"rev": "d9fc4a372074b1079c193c422fc4a180e79b6636",
|
||||
"hash": "sha256-owMOjZEXhjXkEwzKdNVUk6Uzqdfp8UQq4JLDSvbvyeA="
|
||||
},
|
||||
"src/third_party/angle/third_party/glmark2/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2",
|
||||
@@ -1384,8 +1384,8 @@
|
||||
},
|
||||
"src/third_party/pdfium": {
|
||||
"url": "https://pdfium.googlesource.com/pdfium.git",
|
||||
"rev": "849572b5c41e5bf59dc88bf54c41067faa9b5b00",
|
||||
"hash": "sha256-lTUkzpzIskbEL7b2xBWT8s9YNyu1AZ235SBo5AfQtpg="
|
||||
"rev": "bbdc38bc2d1693f56154f78eb5d4ff296d8ca3da",
|
||||
"hash": "sha256-LYo73KuSVBEcRN1PqG0EBFeKaLy66UPtZ3DMHP5YVXM="
|
||||
},
|
||||
"src/third_party/perfetto": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/google/perfetto.git",
|
||||
@@ -1599,8 +1599,8 @@
|
||||
},
|
||||
"src/v8": {
|
||||
"url": "https://chromium.googlesource.com/v8/v8.git",
|
||||
"rev": "4d36678284f92d381f411c7947588d7a09989ca4",
|
||||
"hash": "sha256-X5k2R7/sS3/C2S5hC1ILSquWjnPol3Pk+xe1suzgnFs="
|
||||
"rev": "a0a7886d6b3707be8d4b403e463fa82fdb3f216c",
|
||||
"hash": "sha256-KjIBJw40hiBkcHNn96dD5iZs2n2HMWIkAJ6ND2+5JJQ="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -866,6 +866,15 @@
|
||||
"spdx": "Apache-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
"neon": {
|
||||
"hash": "sha256-D1KWC2D4OLMUSWKzQmiZaDrATCv4SEUWwk6SK/o1U5M=",
|
||||
"homepage": "https://registry.terraform.io/providers/kislerdm/neon",
|
||||
"owner": "kislerdm",
|
||||
"repo": "terraform-provider-neon",
|
||||
"rev": "v0.9.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-8WY2iEOFOwx7zDMps5cctxzv1stRseS/OUaHkMDuBYs="
|
||||
},
|
||||
"netlify": {
|
||||
"hash": "sha256-7U+hHN/6GqcbI1gX7L01YqVjlUgvdfhgpXvLF2lwbkA=",
|
||||
"homepage": "https://registry.terraform.io/providers/AegirHealth/netlify",
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
{
|
||||
fetchFromGitHub,
|
||||
buildPythonPackage,
|
||||
lib,
|
||||
isPy27,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "nitpick";
|
||||
version = "1.1";
|
||||
|
||||
format = "other";
|
||||
disabled = !isPy27;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "travisb-ca";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "11gn6nc6ypwivy20bx1r0rm2giblwx6jv485zk875a9pdbcwbrf6";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/src
|
||||
install -m 755 -t $out/share/src nitpick.py
|
||||
|
||||
mkdir -p $out/bin
|
||||
ln -s $out/share/src/nitpick.py $out/bin/nitpick
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Distributed issue tracker";
|
||||
longDescription = ''
|
||||
Nitpick is a distributed issue tracker. It helps keep track of which nits you
|
||||
should pick. It's intended to be used with source code such that the issues can
|
||||
follow the code via whatever VCS or distribution mechanism.
|
||||
'';
|
||||
homepage = "http://travisbrown.ca/projects/nitpick/docs/nitpick.html";
|
||||
license = with lib.licenses; gpl2;
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
@@ -21,13 +21,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "obs-vkcapture";
|
||||
version = "1.5.2";
|
||||
version = "1.5.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nowrep";
|
||||
repo = "obs-vkcapture";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-ghfRST7J3bipQnOZnYMtmDggET+Etq/ngHs+zQ0bm1w=";
|
||||
hash = "sha256-zra7fwYnUfPKS4AA6Z9FIPP3p/uR5O1wB6Z76aivtZI=";
|
||||
};
|
||||
|
||||
cmakeFlags = lib.optionals stdenv.hostPlatform.isi686 [
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "docker-buildx";
|
||||
version = "0.26.1";
|
||||
version = "0.27.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "docker";
|
||||
repo = "buildx";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-+ubv/8UdejxY7u3RdgS7L18hZHohlqGu9E3L0bTAmLY=";
|
||||
hash = "sha256-SY7pf6bHvX6tezTYpOu/pqda3IsIqaR5g7JZS+eEEZw=";
|
||||
};
|
||||
|
||||
doCheck = false;
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
gccStdenv,
|
||||
fetchFromGitHub,
|
||||
autoreconfHook,
|
||||
xorgproto,
|
||||
libX11,
|
||||
libXpm,
|
||||
}:
|
||||
|
||||
gccStdenv.mkDerivation {
|
||||
pname = "0verkill";
|
||||
version = "0-unstable-2011-01-13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hackndev";
|
||||
repo = "0verkill";
|
||||
rev = "522f11a3e40670bbf85e0fada285141448167968";
|
||||
sha256 = "WO7PN192HhcDl6iHIbVbH7MVMi1Tl2KyQbDa9DWRO6M=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
buildInputs = [
|
||||
libX11
|
||||
xorgproto
|
||||
libXpm
|
||||
];
|
||||
|
||||
configureFlags = [ "--with-x" ];
|
||||
|
||||
# The code needs an update for gcc-10:
|
||||
# https://github.com/hackndev/0verkill/issues/7
|
||||
env.NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
hardeningDisable = [ "all" ]; # Someday the upstream will update the code...
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/hackndev/0verkill";
|
||||
description = "ASCII-ART bloody 2D action deathmatch-like game";
|
||||
license = lib.licenses.gpl2Only;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
@@ -1,43 +1,43 @@
|
||||
{
|
||||
"stable": {
|
||||
"linux": {
|
||||
"version": "8.11.6",
|
||||
"version": "8.11.8",
|
||||
"sources": {
|
||||
"x86_64": {
|
||||
"url": "https://downloads.1password.com/linux/tar/stable/x86_64/1password-8.11.6.x64.tar.gz",
|
||||
"hash": "sha256-OjyJDesweUhLHuBeLCEvNOloDZO8/D6Z1FquLyapQ4Q="
|
||||
"url": "https://downloads.1password.com/linux/tar/stable/x86_64/1password-8.11.8.x64.tar.gz",
|
||||
"hash": "sha256-gidi2lnKFxcSxi6lekWODp9TJNGofWFp72Bp30KoRfY="
|
||||
},
|
||||
"aarch64": {
|
||||
"url": "https://downloads.1password.com/linux/tar/stable/aarch64/1password-8.11.6.arm64.tar.gz",
|
||||
"hash": "sha256-sspmxX6xeVHvEww4D41PZTM2YftbILx06aMuDbAay74="
|
||||
"url": "https://downloads.1password.com/linux/tar/stable/aarch64/1password-8.11.8.arm64.tar.gz",
|
||||
"hash": "sha256-pZqhWd2K+5+B3eK52OZNSPh3Jx4MKBy+hAnC5tihzhM="
|
||||
}
|
||||
}
|
||||
},
|
||||
"darwin": {
|
||||
"version": "8.11.6",
|
||||
"version": "8.11.8",
|
||||
"sources": {
|
||||
"x86_64": {
|
||||
"url": "https://downloads.1password.com/mac/1Password-8.11.6-x86_64.zip",
|
||||
"hash": "sha256-HMwb22/4Dw3M3B1nrdURSQzMGAZxsVG6t8E+MUmRmjg="
|
||||
"url": "https://downloads.1password.com/mac/1Password-8.11.8-x86_64.zip",
|
||||
"hash": "sha256-MYyWof17KLVRtnPqSICnny24f8YoXJWeGwErWFrb6C4="
|
||||
},
|
||||
"aarch64": {
|
||||
"url": "https://downloads.1password.com/mac/1Password-8.11.6-aarch64.zip",
|
||||
"hash": "sha256-SrB4tUk2GroUOptdQlJsC9tFssYXduyLR1TqH7aU2N4="
|
||||
"url": "https://downloads.1password.com/mac/1Password-8.11.8-aarch64.zip",
|
||||
"hash": "sha256-wii983COooBCXyiV2a2MC7SKnFJLp1JashsOzT3+ZRA="
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"beta": {
|
||||
"linux": {
|
||||
"version": "8.11.8-32.BETA",
|
||||
"version": "8.11.8-39.BETA",
|
||||
"sources": {
|
||||
"x86_64": {
|
||||
"url": "https://downloads.1password.com/linux/tar/beta/x86_64/1password-8.11.8-32.BETA.x64.tar.gz",
|
||||
"hash": "sha256-FlJ7uXtqavcOUs/DRGCMR0ImX9mlQBYGxFzM45DByBg="
|
||||
"url": "https://downloads.1password.com/linux/tar/beta/x86_64/1password-8.11.8-39.BETA.x64.tar.gz",
|
||||
"hash": "sha256-8KokDe9Vnr2lL5NileTcs+ncpqOcoRs5/N8hmrVv33U="
|
||||
},
|
||||
"aarch64": {
|
||||
"url": "https://downloads.1password.com/linux/tar/beta/aarch64/1password-8.11.8-32.BETA.arm64.tar.gz",
|
||||
"hash": "sha256-Dqy9keq6aRrFp2zKGOpV9kmI4CZQFZpf8ey9n9OKy8A="
|
||||
"url": "https://downloads.1password.com/linux/tar/beta/aarch64/1password-8.11.8-39.BETA.arm64.tar.gz",
|
||||
"hash": "sha256-fWLFshduzdbYgoSIeMKPd3SsbLh62O2lPFXqwqk/DTQ="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
libvorbis,
|
||||
libopus,
|
||||
libmpg123,
|
||||
libgcrypt,
|
||||
|
||||
enableDynarec ? with stdenv.hostPlatform; isx86 || isAarch,
|
||||
enableNewDynarec ? enableDynarec && stdenv.hostPlatform.isAarch,
|
||||
@@ -87,7 +88,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
]
|
||||
++ lib.optional stdenv.hostPlatform.isLinux alsa-lib
|
||||
++ lib.optional enableWayland wayland
|
||||
++ lib.optional enableVncRenderer libvncserver;
|
||||
++ lib.optionals enableVncRenderer [
|
||||
libvncserver
|
||||
libgcrypt
|
||||
];
|
||||
|
||||
cmakeFlags =
|
||||
lib.optional stdenv.hostPlatform.isDarwin "-DCMAKE_MACOSX_BUNDLE=OFF"
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
perl,
|
||||
trackma,
|
||||
ueberzug,
|
||||
...
|
||||
}:
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "adl";
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
fetchFromGitHub,
|
||||
unstableGitUpdater,
|
||||
stdenvNoCC,
|
||||
...
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation (self: {
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "ansible-lint";
|
||||
version = "25.8.1";
|
||||
version = "25.8.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "ansible_lint";
|
||||
hash = "sha256-BAWePPW2ROeW4h1EUARiHR4kVOOuto0e6gpJ9lDvMhk=";
|
||||
hash = "sha256-Nd093RLYBjh2kVvy8GuaG4D9J6fLHKTOUcjOu4RpCSI=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -17,16 +17,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "anyrun";
|
||||
version = "0-unstable-2025-08-18";
|
||||
version = "25.9.0.pre-release.1-unstable-2025-08-19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kirottu";
|
||||
owner = "anyrun-org";
|
||||
repo = "anyrun";
|
||||
rev = "bed987ed5dec0b29865b973ad4fce04c5da2ea21";
|
||||
hash = "sha256-2iAIrSC4ubTCEM5BeC+R7dywkj9CAV0K6vHbqxCcCtA=";
|
||||
rev = "af1ffe4f17921825ff2a773995604dce2b2df3cd";
|
||||
hash = "sha256-PKxVhfjd2AlzTopuVEx5DJMC4R7LnM5NIoMmirKMsKI=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-n+UJzx80JAQ4hqdk7OjyvSsCYql9I6yKLA5ab9iS9vQ=";
|
||||
cargoHash = "sha256-KpAnfytTtCJunhpk9exv8LYtF8mKDGFUUbsPP47M+Kk=";
|
||||
|
||||
strictDeps = true;
|
||||
enableParallelBuilding = true;
|
||||
@@ -62,7 +62,7 @@ rustPlatform.buildRustPackage {
|
||||
|
||||
meta = {
|
||||
description = "Wayland-native, highly customizable runner";
|
||||
homepage = "https://github.com/kirottu/anyrun";
|
||||
homepage = "https://github.com/anyrun-org/anyrun";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [
|
||||
khaneliman
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
lib,
|
||||
stdenv,
|
||||
callPackage,
|
||||
...
|
||||
}:
|
||||
let
|
||||
pname = "aptakube";
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
...
|
||||
}:
|
||||
let
|
||||
version = "0.6.2";
|
||||
|
||||
@@ -11,11 +11,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "armadillo";
|
||||
version = "14.6.3";
|
||||
version = "15.0.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
|
||||
hash = "sha256-rR4qpbkKOJq3FOLQCXLOZNpCWCsX3YnBiTU1hVHm4gU=";
|
||||
hash = "sha256-9SCg1Qu6/M17nnkzIc1//tN0aVwuOLvf1CiEF0XgTDc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
jdk,
|
||||
findutils,
|
||||
sleuthkit,
|
||||
...
|
||||
}:
|
||||
let
|
||||
jdkWithJfx = jdk.override (
|
||||
|
||||
@@ -115,12 +115,12 @@ in
|
||||
|
||||
stdenv'.mkDerivation (finalAttrs: {
|
||||
pname = "blender";
|
||||
version = "4.5.1";
|
||||
version = "4.5.2";
|
||||
|
||||
src = fetchzip {
|
||||
name = "source";
|
||||
url = "https://download.blender.org/source/blender-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-x1zeBQ0aTBFUpB7c4XfP6b2p+ENRFEnTGa4m/7Pl24k=";
|
||||
hash = "sha256-6blXwp3DeWNM5Q6M5gWj4O+K/gFxEOj41lzlc5biEYQ=";
|
||||
};
|
||||
|
||||
postPatch =
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
lib,
|
||||
libusb-compat-0_1,
|
||||
stdenv,
|
||||
...
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
|
||||
@@ -2,19 +2,22 @@
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "bootspec";
|
||||
version = "1.0.1";
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "DeterminateSystems";
|
||||
repo = "bootspec";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-0MO+SqG7Gjq+fmMJkIFvaKsfTmC7z3lGfi7bbBv7iBE=";
|
||||
hash = "sha256-WDEaTxj5iT8tvasd6gnMhRgNoEdDi9Wi4ke8sVtNpt8=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-fKbF5SyI0UlZTWsygdE8BGWuOoNSU4jx+CGdJoJFhZs=";
|
||||
cargoHash = "sha256-ZJKoL1vYfAG1rpCcE1jRm7Yj2dhooJ6iQ91c6EGF83E=";
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = with lib; {
|
||||
description = "Implementation of RFC-0125's datatype and synthesis tooling";
|
||||
|
||||
@@ -3,37 +3,39 @@
|
||||
stdenv,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
llvmPackages_20,
|
||||
btfdump,
|
||||
rustc,
|
||||
zlib,
|
||||
ncurses,
|
||||
libxml2,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "bpf-linker";
|
||||
version = "0.9.14";
|
||||
version = "0.9.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aya-rs";
|
||||
repo = "bpf-linker";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-accW1w0Mn9Mo9r2LrupQdgx+3850Dth8EfnnuzO+ZzM=";
|
||||
hash = "sha256-5HXYtAn6KaFXsiA3Nt0IwmFLOXBhZWYrD8cMZ8rZ1fk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-D1N4zQjpllQg6Nn92+HWWsSmGsOon0mygErWg3X8Gx8=";
|
||||
cargoHash = "sha256-coIcd6WjVQM/b51jwkG8It/wubXx6wuuPlzzelPFE38=";
|
||||
|
||||
buildNoDefaultFeatures = true;
|
||||
buildFeatures = [ "llvm-${lib.versions.major rustc.llvm.version}" ];
|
||||
|
||||
nativeBuildInputs = [ rustc.llvm ];
|
||||
|
||||
nativeBuildInputs = [ llvmPackages_20.llvm ];
|
||||
buildInputs = [
|
||||
zlib
|
||||
ncurses
|
||||
libxml2
|
||||
];
|
||||
|
||||
# fails with: couldn't find crate `core` with expected target triple bpfel-unknown-none
|
||||
# rust-src and `-Z build-std=core` are required to properly run the tests
|
||||
doCheck = false;
|
||||
nativeCheckInputs = [
|
||||
btfdump
|
||||
rustc.llvmPackages.clang.cc
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Simple BPF static linker";
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
rustPlatform,
|
||||
fetchCrate,
|
||||
cargo-hack,
|
||||
rustc,
|
||||
zlib,
|
||||
libxml2,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "btfdump";
|
||||
version = "0.0.4";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
hash = "sha256-iLYGFXB4goiY7eJXXBhX9Y1TOltsW40ogeBhvTV2NvU=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-uGp9XaqepceUmaEKBVEcu8oorfMAOk8BCPIHtun8Sto=";
|
||||
|
||||
meta = {
|
||||
description = "BTF introspection tool";
|
||||
mainProgram = "btf";
|
||||
homepage = "https://github.com/anakryiko/btfdump";
|
||||
license = with lib.licenses; [ bsd2 ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
@@ -14,13 +14,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bulky";
|
||||
version = "3.8";
|
||||
version = "3.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "bulky";
|
||||
rev = version;
|
||||
hash = "sha256-LVrVgfYCcfaIFDPQu8cFr2+KkzXboDSjPwM5UIP4G9c=";
|
||||
hash = "sha256-LrArLx0AOEaeAvLBVhV9ho5H+qeiaBfjs8+iV5W9u+w=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
sqlite,
|
||||
stdenv,
|
||||
util-linuxMinimal,
|
||||
webkitgtk_4_0,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -82,7 +81,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
python3
|
||||
sqlite
|
||||
util-linuxMinimal
|
||||
webkitgtk_4_0
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
python3,
|
||||
sqlite,
|
||||
stdenv,
|
||||
webkitgtk_4_0,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "chow-tape-model";
|
||||
@@ -87,7 +86,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
pcre2
|
||||
python3
|
||||
sqlite
|
||||
webkitgtk_4_0
|
||||
];
|
||||
|
||||
# Link-time-optimization fails without these
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
ninja,
|
||||
sphinx,
|
||||
python3Packages,
|
||||
...
|
||||
}:
|
||||
|
||||
pkgs.stdenv.mkDerivation {
|
||||
|
||||
+4
-4
@@ -6,13 +6,13 @@
|
||||
"packages": {
|
||||
"": {
|
||||
"dependencies": {
|
||||
"@anthropic-ai/claude-code": "^1.0.92"
|
||||
"@anthropic-ai/claude-code": "^1.0.93"
|
||||
}
|
||||
},
|
||||
"node_modules/@anthropic-ai/claude-code": {
|
||||
"version": "1.0.92",
|
||||
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.92.tgz",
|
||||
"integrity": "sha512-/XuwJqAvXwIGf9WeZOxHI6qQsAGzxhrRc3hyQdvwW6cU5iviTmrxWasksPbJMvFt6KQoAUU6XHs78XyYmBpOXQ==",
|
||||
"version": "1.0.93",
|
||||
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.93.tgz",
|
||||
"integrity": "sha512-HSrbuYVu4k1dwoj/IYsXEVSoMWDPujy2D4zl9BMt4Zt0kwUwZch0nHpTyQ0C+YeHMN7hHbViz0bw6spg0a5GgQ==",
|
||||
"license": "SEE LICENSE IN README.md",
|
||||
"bin": {
|
||||
"claude": "cli.js"
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "claude-code";
|
||||
version = "1.0.92";
|
||||
version = "1.0.93";
|
||||
|
||||
nodejs = nodejs_20; # required for sandboxed Nix builds on Darwin
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${version}.tgz";
|
||||
hash = "sha256-xW+oI91wL+DFaOHw5M84QJktuE9HXb031pGbrNcrpPQ=";
|
||||
hash = "sha256-vEUty4HRPSkFpT94bxMWcLj0nFe34AeQEZ0WsCXuy10=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-rrMskQkWKz+B5dqJ8gHgBxO20OdgE3d53TJWDxeJGbo=";
|
||||
npmDepsHash = "sha256-JL0GPIhpyTQonKsyMR5zN8LaPfX3KkEfQbMR1Z7gTFE=";
|
||||
|
||||
postPatch = ''
|
||||
cp ${./package-lock.json} package-lock.json
|
||||
|
||||
@@ -1,37 +1,86 @@
|
||||
{
|
||||
comet-gog_kind ? "latest",
|
||||
|
||||
lib,
|
||||
stdenv,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
protobuf,
|
||||
buildPackages,
|
||||
|
||||
meson,
|
||||
ninja,
|
||||
pkgsCross,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
let
|
||||
versionInfoTable = {
|
||||
"latest" = {
|
||||
version = "0.3.1";
|
||||
srcHash = "sha256-asg2xp9A5abmsF+CgOa+ScK2sQwSNFQXD5Qnm76Iyhg=";
|
||||
cargoHash = "sha256-K0lQuk2PBwnVlkRpYNo4Z7to/Lx2fY6RIlkgmMjvEtc=";
|
||||
};
|
||||
# version pin that is compatible with heroic
|
||||
"heroic" = {
|
||||
version = "0.2.0";
|
||||
srcHash = "sha256-LAEt2i/SRABrz+y2CTMudrugifLgHNxkMSdC8PXYF0E=";
|
||||
cargoHash = "sha256-SvDE+QqaSK0+4XgB3bdmqOtwxBDTlf7yckTR8XjmMXc=";
|
||||
};
|
||||
};
|
||||
|
||||
versionInfo = versionInfoTable.${comet-gog_kind};
|
||||
in
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "comet-gog";
|
||||
version = "0.3.1";
|
||||
inherit (versionInfo) version cargoHash;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "imLinguin";
|
||||
repo = "comet";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-asg2xp9A5abmsF+CgOa+ScK2sQwSNFQXD5Qnm76Iyhg=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = versionInfo.srcHash;
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
cargoHash = "sha256-K0lQuk2PBwnVlkRpYNo4Z7to/Lx2fY6RIlkgmMjvEtc=";
|
||||
|
||||
# error: linker `aarch64-linux-gnu-gcc` not found
|
||||
postPatch = ''
|
||||
rm .cargo/config.toml
|
||||
'';
|
||||
|
||||
env.PROTOC = lib.getExe' protobuf "protoc";
|
||||
# TECHNICALLY, we could remove this, but then we'd be using the vendored precompiled protoc binary...
|
||||
env.PROTOC = lib.getExe' buildPackages.protobuf "protoc";
|
||||
|
||||
passthru.dummy-service = stdenv.mkDerivation {
|
||||
pname = "galaxy-dummy-service";
|
||||
inherit (finalAttrs) version src;
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/dummy-service";
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkgsCross.mingwW64.buildPackages.gcc
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"--cross-file meson/x86_64-w64-mingw32.ini"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -D GalaxyCommunication.exe -t "$out"/
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/imLinguin/comet/releases/tag/v${version}";
|
||||
changelog = "https://github.com/imLinguin/comet/releases/tag/${finalAttrs.src.tag}";
|
||||
description = "Open Source implementation of GOG Galaxy's Communication Service";
|
||||
homepage = "https://github.com/imLinguin/comet";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
mainProgram = "comet";
|
||||
maintainers = with lib.maintainers; [ tomasajt ];
|
||||
maintainers = with lib.maintainers; [
|
||||
tomasajt
|
||||
aidalgol
|
||||
];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cppcheck";
|
||||
version = "2.18.0";
|
||||
version = "2.18.1";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "danmar";
|
||||
repo = "cppcheck";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-trbL2Me1VWmVMfL45H50xbR36izifFmoLHKQvte6oZQ=";
|
||||
hash = "sha256-SWMjxMtdISAOxMWteouOzr8DeRpqn16OlPDhR0Yb3QQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
lib,
|
||||
fetchurl,
|
||||
cups,
|
||||
...
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
@@ -9,26 +9,26 @@ let
|
||||
inherit (stdenv) hostPlatform;
|
||||
sources = {
|
||||
x86_64-linux = fetchurl {
|
||||
url = "https://downloads.cursor.com/lab/2025.08.22-82fb571/linux/x64/agent-cli-package.tar.gz";
|
||||
hash = "sha256-jfjYWM9Vuq9sYZcnqiap3TKuVWHHKt/aF7XaVilJjsE=";
|
||||
url = "https://downloads.cursor.com/lab/2025.08.27-24c29c1/linux/x64/agent-cli-package.tar.gz";
|
||||
hash = "sha256-046NAHLckWOvIG5WJ8p3SNiUTbelEw2eTZ+/1DvTpNY=";
|
||||
};
|
||||
aarch64-linux = fetchurl {
|
||||
url = "https://downloads.cursor.com/lab/2025.08.22-82fb571/linux/arm64/agent-cli-package.tar.gz";
|
||||
hash = "sha256-uMK5jO77TQntsrR450WWBj9q5VBowNUhO6UkZ/z1ys4=";
|
||||
url = "https://downloads.cursor.com/lab/2025.08.27-24c29c1/linux/arm64/agent-cli-package.tar.gz";
|
||||
hash = "sha256-Ft/7AivBm3VWsgtYAE0a9SqDLzuiFnGUTdEjsBZjUDA=";
|
||||
};
|
||||
x86_64-darwin = fetchurl {
|
||||
url = "https://downloads.cursor.com/lab/2025.08.22-82fb571/darwin/x64/agent-cli-package.tar.gz";
|
||||
hash = "sha256-gFM+igXGdLLJXVHAou6pRTIVqsg6iPagaghBAzRcPXw=";
|
||||
url = "https://downloads.cursor.com/lab/2025.08.27-24c29c1/darwin/x64/agent-cli-package.tar.gz";
|
||||
hash = "sha256-lgn7gaiItLzvhh7ePtUcDCqPuZFUWE3WDSzn5TY3Taw=";
|
||||
};
|
||||
aarch64-darwin = fetchurl {
|
||||
url = "https://downloads.cursor.com/lab/2025.08.22-82fb571/darwin/arm64/agent-cli-package.tar.gz";
|
||||
hash = "sha256-XN2QaFt/lbVHfFfdZaznRvUlMWIHq7nUbe3uptrGjN0=";
|
||||
url = "https://downloads.cursor.com/lab/2025.08.27-24c29c1/darwin/arm64/agent-cli-package.tar.gz";
|
||||
hash = "sha256-+zC4rTzTCj1MSCYA///6Br82SffTRdICHuhnhaXsAWg=";
|
||||
};
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "cursor-cli";
|
||||
version = "0-unstable-2025-08-22";
|
||||
version = "0-unstable-2025-08-27";
|
||||
|
||||
src = sources.${hostPlatform.system};
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
...
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "ddh";
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
libudev-zero,
|
||||
versionCheckHook,
|
||||
nix-update-script,
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "deepcool-digital-linux";
|
||||
version = "0.8.3-alpha";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Nortank12";
|
||||
repo = "deepcool-digital-linux";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Whmjd6NCOUkE7hM3FaN7grMwcC/suL7AJDVSgnZSKzM=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-K1pEbUyENPUS4QK0lztWmw8ov1fGrx8KHdODmSByfek=";
|
||||
|
||||
buildInputs = [ libudev-zero ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
doInstallCheck = false; # FIXME: version cmd returns 0.8.3, set to true when we switch to a stable version
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
versionCheckProgramArg = "--version";
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/Nortank12/deepcool-digital-linux/releases/tag/v${finalAttrs.version}";
|
||||
description = "Linux version for the DeepCool Digital Windows software";
|
||||
homepage = "https://github.com/Nortank12/deepcool-digital-linux";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ NotAShelf ];
|
||||
mainProgram = "deepcool-digital-linux";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
@@ -1,11 +1,11 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
buildGo125Module,
|
||||
fetchFromGitHub,
|
||||
stdenv,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
buildGo125Module rec {
|
||||
pname = "delve";
|
||||
version = "1.25.1";
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
coreutils,
|
||||
fetchFromGitHub,
|
||||
makeWrapper,
|
||||
...
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
@@ -18,13 +18,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ed-odyssey-materials-helper";
|
||||
version = "2.240";
|
||||
version = "2.243";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jixxed";
|
||||
repo = "ed-odyssey-materials-helper";
|
||||
tag = version;
|
||||
hash = "sha256-KRWOfLFrczOON6HiddM8g2qi2hzGfZbUsk02VvW2VyA=";
|
||||
hash = "sha256-aeoU34U8DMdtSiNqnAPuzmRoDhgf9CIJRwB4A3Qw/EU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "eigenlayer";
|
||||
version = "0.13.2";
|
||||
version = "0.13.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Layr-Labs";
|
||||
repo = "eigenlayer-cli";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-08Fu2PiYNBJr7vRX4LaxMiR4ke86rqTFHfi0k+A8t6c=";
|
||||
hash = "sha256-8HCoUZHRma4dIIZvIFRkXJl7r73j2stn6fuUj/cQ16g=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-gFWUxC2pTMx3QVbIkqpCrsA2ZTQpal89pEJv11uCMJ8=";
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
--- a/entc/gen/graph.go 2025-08-26 12:42:17.548313631 +0100
|
||||
+++ b/entc/gen/graph.go 2025-08-26 12:43:32.398186157 +0100
|
||||
@@ -1008,22 +1008,10 @@
|
||||
|
||||
// ModuleInfo returns the entgo.io/ent version.
|
||||
func (Config) ModuleInfo() (m debug.Module) {
|
||||
- const pkg = "entgo.io/ent"
|
||||
- info, ok := debug.ReadBuildInfo()
|
||||
- if !ok {
|
||||
- return
|
||||
- }
|
||||
- // Was running as a CLI (ent/cmd/ent).
|
||||
- if info.Main.Path == pkg {
|
||||
- return info.Main
|
||||
- }
|
||||
- // Or, as a main package (ent/entc).
|
||||
- for _, dep := range info.Deps {
|
||||
- if dep.Path == pkg {
|
||||
- return *dep
|
||||
- }
|
||||
+ return debug.Module{
|
||||
+ Version: "@version@",
|
||||
+ Sum: "@sum@",
|
||||
}
|
||||
- return
|
||||
}
|
||||
|
||||
// FeatureEnabled reports if the given feature name is enabled.
|
||||
@@ -3,6 +3,7 @@
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
replaceVars,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
@@ -18,6 +19,14 @@ buildGoModule rec {
|
||||
|
||||
vendorHash = "sha256-ec5tA9TsDKGnHVZWilLj7bdHrd46uQcNQ8YCK/s6UAY=";
|
||||
|
||||
patches = [
|
||||
# patch in version information so we don't get "version = "(devel)";"
|
||||
(replaceVars ./ent_version.patch {
|
||||
inherit version;
|
||||
sum = src.outputHash;
|
||||
})
|
||||
];
|
||||
|
||||
subPackages = [ "cmd/ent" ];
|
||||
|
||||
ldflags = [
|
||||
|
||||
Generated
+653
-743
File diff suppressed because it is too large
Load Diff
@@ -8,6 +8,7 @@
|
||||
bintools,
|
||||
stdenv,
|
||||
mono,
|
||||
nix-update-script,
|
||||
}:
|
||||
let
|
||||
mainProgram = "EventStore.ClusterNode";
|
||||
@@ -15,21 +16,21 @@ in
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "EventStore";
|
||||
version = "23.6.0";
|
||||
version = "24.10.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "EventStore";
|
||||
repo = "EventStore";
|
||||
rev = "oss-v${version}";
|
||||
hash = "sha256-+Wxm6yusaCoqXIbsi0ZoALAviKUyNMQwbzsQtBK/PCo=";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-8/sagvMyJ1/onGMuJ28QLWI5M8dBDWyGOcZKUv3PJsQ=";
|
||||
leaveDotGit = true;
|
||||
};
|
||||
|
||||
# Fixes application reporting 0.0.0.0 as its version.
|
||||
MINVERVERSIONOVERRIDE = version;
|
||||
|
||||
dotnet-sdk = dotnetCorePackages.sdk_6_0-bin;
|
||||
dotnet-runtime = dotnetCorePackages.aspnetcore_6_0-bin;
|
||||
dotnet-sdk = dotnetCorePackages.sdk_8_0;
|
||||
dotnet-runtime = dotnetCorePackages.aspnetcore_8_0;
|
||||
|
||||
nativeBuildInputs = [
|
||||
git
|
||||
@@ -69,7 +70,7 @@ buildDotnetModule rec {
|
||||
kill "$PID";
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./updater.sh;
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://geteventstore.com/";
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -I nixpkgs=./. -i bash -p curl jq common-updater-scripts
|
||||
# shellcheck shell=bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||
|
||||
new_version="$(curl -s "https://api.github.com/repos/EventStore/EventStore/releases/latest" | jq -r '.name')"
|
||||
new_version="${new_version#oss-v}"
|
||||
old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
|
||||
|
||||
if [[ "$new_version" == "$old_version" ]]; then
|
||||
echo "Already up to date!"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
cd ../../../..
|
||||
update-source-version eventstore "${new_version//v}"
|
||||
|
||||
$(nix-build -A eventstore.fetch-deps --no-out-link)
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "evtest";
|
||||
version = "1.35";
|
||||
version = "1.36";
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
||||
src = fetchgit {
|
||||
url = "git://anongit.freedesktop.org/${pname}";
|
||||
rev = "refs/tags/${pname}-${version}";
|
||||
sha256 = "sha256-xF2dwjTmTOyZ/kmASYWqKfnvqCjw0OmdNKrNMrjNl5g=";
|
||||
sha256 = "sha256-M7AGcHklErfRIOu64+OU397OFuqkAn4dqZxx7sDfklc=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
darwin,
|
||||
copyDesktopItems,
|
||||
makeDesktopItem,
|
||||
...
|
||||
}:
|
||||
let
|
||||
pname = "feishin";
|
||||
|
||||
@@ -1,31 +1,36 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
fetchFromGitLab,
|
||||
testers,
|
||||
writeScript,
|
||||
gitUpdater,
|
||||
autoreconfHook,
|
||||
util-macros,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "font-util";
|
||||
version = "1.4.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://xorg/individual/font/font-util-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-XJ9kEjwZSxUP7okEmZFoc4bm/zbvKve4C6U++vNozJU=";
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
group = "xorg";
|
||||
owner = "font";
|
||||
repo = "util";
|
||||
tag = "font-util-${finalAttrs.version}";
|
||||
hash = "sha256-cv6Whex1s4+J7Ue4IOHdO9WtrarTgSpLEghWpbUl+0o=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
util-macros
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = writeScript "update-${finalAttrs.pname}" ''
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p common-updater-scripts
|
||||
|
||||
version="$(list-directory-versions --pname ${finalAttrs.pname} \
|
||||
--url https://xorg.freedesktop.org/releases/individual/font/ \
|
||||
| sort -V | tail -n1)"
|
||||
|
||||
update-source-version ${finalAttrs.pname} "$version"
|
||||
'';
|
||||
updateScript = gitUpdater {
|
||||
rev-prefix = "font-util-";
|
||||
ignoredVersions = "1_0_1";
|
||||
};
|
||||
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
};
|
||||
|
||||
|
||||
@@ -28,13 +28,13 @@ in
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "pangolin";
|
||||
version = "1.9.0";
|
||||
version = "1.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fosrl";
|
||||
repo = "pangolin";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-X8Jvk/1gDj4cqXP3vlsrhWEM5lR42FsQ0HaSNeNxTXg=";
|
||||
hash = "sha256-r0/HtRWdlDV749yT2pMnKqQKKYm6FPpcy3eul6M8iDQ=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-OygskQhveT9CiymOOd5gx+aR9v3nMUZj72k/om3IF/c=";
|
||||
|
||||
@@ -63,13 +63,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "freerdp";
|
||||
version = "3.16.0";
|
||||
version = "3.17.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FreeRDP";
|
||||
repo = "FreeRDP";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-HF4Is3ak2nYD2Fq6HGHwyM5OTBVqYqbB22otOprzfiQ=";
|
||||
hash = "sha256-86RbzRgC93ZOt3MHRKJIRklEuyCQs6tHff5jk++yFok=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
lib,
|
||||
stdenv,
|
||||
callPackage,
|
||||
...
|
||||
}:
|
||||
let
|
||||
version = "5.5.239";
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
ghostunnel,
|
||||
apple-sdk_12,
|
||||
darwinMinVersionHook,
|
||||
writeScript,
|
||||
runtimeShell,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
@@ -41,7 +43,11 @@ buildGoModule rec {
|
||||
};
|
||||
|
||||
passthru.services.default = {
|
||||
imports = [ ./service.nix ];
|
||||
imports = [
|
||||
(lib.modules.importApply ./service.nix {
|
||||
inherit writeScript runtimeShell;
|
||||
})
|
||||
];
|
||||
ghostunnel.package = ghostunnel; # FIXME: finalAttrs.finalPackage
|
||||
};
|
||||
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
# Non-module dependencies (`importApply`)
|
||||
{ writeScript, runtimeShell }:
|
||||
|
||||
# Service module
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
options,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
@@ -25,6 +28,7 @@ in
|
||||
ghostunnel = {
|
||||
package = mkOption {
|
||||
description = "Package to use for ghostunnel";
|
||||
defaultText = "The ghostunnel package that provided this module.";
|
||||
type = types.package;
|
||||
};
|
||||
|
||||
@@ -191,8 +195,8 @@ in
|
||||
cfg.cacert
|
||||
])
|
||||
(
|
||||
pkgs.writeScript "load-credentials" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
writeScript "load-credentials" ''
|
||||
#!${runtimeShell}
|
||||
exec $@ ${
|
||||
concatStringsSep " " (
|
||||
optional (cfg.keystore != null) "--keystore=$CREDENTIALS_DIRECTORY/keystore"
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
cmake,
|
||||
xclip,
|
||||
nix-update-script,
|
||||
fetchpatch,
|
||||
}:
|
||||
let
|
||||
pname = "gitui";
|
||||
@@ -39,6 +40,16 @@ rustPlatform.buildRustPackage {
|
||||
libiconv
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Fixes the build for rust 1.89
|
||||
# Upstream PR: https://github.com/gitui-org/gitui/pull/2663
|
||||
# TOREMOVE for gitui > 0.27.0
|
||||
(fetchpatch {
|
||||
url = "https://github.com/gitui-org/gitui/commit/950e703cab1dd37e3d02e7316ec99cc0dc70513c.patch";
|
||||
sha256 = "sha256-KDgOPLKGuJaF0Nc6rw9FPFmcI07I8Gyp/KNX8x6+2xw=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# The cargo config overrides linkers for some targets, breaking the build
|
||||
# on e.g. `aarch64-linux`. These overrides are not required in the Nix
|
||||
|
||||
@@ -170,11 +170,11 @@ let
|
||||
|
||||
linux = stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
inherit pname meta passthru;
|
||||
version = "139.0.7258.127";
|
||||
version = "139.0.7258.154";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${finalAttrs.version}-1_amd64.deb";
|
||||
hash = "sha256-84T/yRj7KBPybttKSRLN7sP1Ki8C8qfo3OKfZI/vAP8=";
|
||||
hash = "sha256-6uEk4a5bVlsVNwW+ZHHBgTGmw/ArgrRQwKfLcSITt8o=";
|
||||
};
|
||||
|
||||
# With strictDeps on, some shebangs were not being patched correctly
|
||||
@@ -275,11 +275,11 @@ let
|
||||
|
||||
darwin = stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
inherit pname meta passthru;
|
||||
version = "139.0.7258.128";
|
||||
version = "139.0.7258.155";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://dl.google.com/release2/chrome/kg4v265dmolyd75txmmp4a5np4_139.0.7258.128/GoogleChrome-139.0.7258.128.dmg";
|
||||
hash = "sha256-UzCkawKshzXoi2FK34QxwHXyHIsjDeu8BxL2+p7t9W8=";
|
||||
url = "http://dl.google.com/release2/chrome/gzhmrqghx4b6bwhn7ck3vb2h5y_139.0.7258.155/GoogleChrome-139.0.7258.155.dmg";
|
||||
hash = "sha256-k8kbSLD7K4AuuZlPYavjEyL+4Cbx3geYCghLfaf5o2E=";
|
||||
};
|
||||
|
||||
dontPatch = true;
|
||||
@@ -318,7 +318,6 @@ let
|
||||
homepage = "https://www.google.com/chrome/browser/";
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = with lib.maintainers; [
|
||||
jnsgruk
|
||||
johnrtitor
|
||||
];
|
||||
platforms = lib.platforms.darwin ++ [ "x86_64-linux" ];
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
buildGo125Module,
|
||||
chromium,
|
||||
fetchFromGitHub,
|
||||
libreoffice,
|
||||
@@ -22,18 +22,23 @@ let
|
||||
libreoffice' = "${libreoffice}/lib/libreoffice/program/soffice.bin";
|
||||
inherit (lib) getExe;
|
||||
in
|
||||
buildGoModule rec {
|
||||
buildGo125Module rec {
|
||||
pname = "gotenberg";
|
||||
version = "8.21.1";
|
||||
version = "8.22.0";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"hyphen"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gotenberg";
|
||||
repo = "gotenberg";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-2uILOK5u+HrdjqN+ZQjGv48QxSCrzSvnF+Ae6iCKCbU=";
|
||||
hash = "sha256-LrkJlUkcvW8ky9e2Ltj13wxcL0rvaE4NfVJrcrgPHL4=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-sTcP/tyrCtvgYeOnsbqRFdBC1bbMAbA978t6LOTKFio=";
|
||||
vendorHash = "sha256-JHsuCYx9Ec/w8LBT2R4LxlrfjYyYve0+4/Xq0U1sq5I=";
|
||||
|
||||
postPatch = ''
|
||||
find ./pkg -name '*_test.go' -exec sed -i -e 's#/tests#${src}#g' {} \;
|
||||
@@ -82,14 +87,20 @@ buildGoModule rec {
|
||||
in
|
||||
[ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
|
||||
|
||||
postInstall = ''
|
||||
mkdir $hyphen
|
||||
cp -r build/chromium-hyphen-data/*/* $hyphen/
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
wrapProgram $out/bin/gotenberg \
|
||||
--set CHROMIUM_HYPHEN_DATA_DIR_PATH "$hyphen" \
|
||||
--set EXIFTOOL_BIN_PATH "${getExe exiftool}" \
|
||||
--set JAVA_HOME "${jre'}" \
|
||||
--set PDFCPU_BIN_PATH "${getExe pdfcpu}" \
|
||||
--set PDFTK_BIN_PATH "${getExe pdftk}" \
|
||||
--set QPDF_BIN_PATH "${getExe qpdf}" \
|
||||
--set UNOCONVERTER_BIN_PATH "${getExe unoconv}" \
|
||||
--set EXIFTOOL_BIN_PATH "${getExe exiftool}" \
|
||||
--set PDFCPU_BIN_PATH "${getExe pdfcpu}" \
|
||||
--set JAVA_HOME "${jre'}"
|
||||
--set UNOCONVERTER_BIN_PATH "${getExe unoconv}"
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
...
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
gitUpdater,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
pkgsCross,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "heroic-epic-integration";
|
||||
version = "0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Etaash-mathamsetty";
|
||||
repo = "heroic-epic-integration";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Zn0MsaQd8Ro6eu8IQkMcLNGLVTUukwajkn8PRLfB+Yw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkgsCross.mingwW64.buildPackages.gcc
|
||||
];
|
||||
|
||||
cmakeFlags = [ (lib.cmakeFeature "CMAKE_TOOLCHAIN_FILE" "../windows.cmake") ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir $out
|
||||
cp heroic-epic-integration.exe $out/EpicGamesLauncher.exe
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Wrapper process for games launched through Heroic Games Launcher";
|
||||
longDescription = ''
|
||||
This is a Windows executable that pretends to be EpicGamesLauncher.exe for
|
||||
games that expect it to be their parent process.
|
||||
'';
|
||||
homepage = "https://github.com/Etaash-mathamsetty/heroic-epic-integration";
|
||||
changelog = "https://github.com/Etaash-mathamsetty/heroic-epic-integration/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ aidalgol ];
|
||||
};
|
||||
|
||||
passthru.updateScript = gitUpdater { };
|
||||
})
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
lib,
|
||||
callPackage,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
# Pinned, because our FODs are not guaranteed to be stable between major versions.
|
||||
pnpm_10,
|
||||
nodejs,
|
||||
@@ -12,13 +12,15 @@
|
||||
electron_36,
|
||||
vulkan-helper,
|
||||
gogdl,
|
||||
legendary-heroic,
|
||||
nile,
|
||||
comet-gog,
|
||||
comet-gog_heroic,
|
||||
umu-launcher,
|
||||
}:
|
||||
|
||||
let
|
||||
legendary = callPackage ./legendary.nix { };
|
||||
epic-integration = callPackage ./epic-integration.nix { };
|
||||
comet-gog = comet-gog_heroic;
|
||||
electron = electron_36;
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -48,6 +50,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
patches = [
|
||||
# Make Heroic create Steam shortcuts (to non-steam games) with the correct path to heroic.
|
||||
./fix-non-steam-shortcuts.patch
|
||||
# Fixes incorrect path to GalaxyCommunication.exe
|
||||
./pr-4885.patch
|
||||
];
|
||||
|
||||
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
|
||||
@@ -79,14 +83,21 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
cp -r public "$out/opt/heroic/resources/app.asar.unpacked/build"
|
||||
rm -rf "$out/opt/heroic/resources/app.asar.unpacked/build/bin"
|
||||
mkdir -p "$out/opt/heroic/resources/app.asar.unpacked/build/bin/x64/linux"
|
||||
mkdir -p \
|
||||
"$out/opt/heroic/resources/app.asar.unpacked/build/bin/x64/linux" \
|
||||
"$out/opt/heroic/resources/app.asar.unpacked/build/bin/x64/win32"
|
||||
ln -s \
|
||||
"${lib.getExe gogdl}" \
|
||||
"${lib.getExe legendary-heroic}" \
|
||||
"${lib.getExe legendary}" \
|
||||
"${lib.getExe nile}" \
|
||||
"${lib.getExe comet-gog}" \
|
||||
"${lib.getExe vulkan-helper}" \
|
||||
"$out/opt/heroic/resources/app.asar.unpacked/build/bin/x64/linux"
|
||||
# Don't symlink these so we don't confuse Windows applications under Wine/Proton.
|
||||
cp \
|
||||
"${comet-gog.dummy-service}/GalaxyCommunication.exe" \
|
||||
"${epic-integration}/EpicGamesLauncher.exe" \
|
||||
"$out/opt/heroic/resources/app.asar.unpacked/build/bin/x64/win32"
|
||||
|
||||
makeWrapper "${electron}/bin/electron" "$out/bin/heroic" \
|
||||
--inherit-argv0 \
|
||||
@@ -105,14 +116,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit (finalAttrs) pnpmDeps;
|
||||
updateScript = nix-update-script { };
|
||||
inherit epic-integration legendary;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac";
|
||||
homepage = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher";
|
||||
changelog = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases";
|
||||
changelog = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/tag/v${finalAttrs.version}";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ aidalgol ];
|
||||
# Heroic may work on nix-darwin, but it needs a dedicated maintainer for the platform.
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
From a98cc23b288e13665c8698eec56e0653613946d7 Mon Sep 17 00:00:00 2001
|
||||
From: Aidan Gauland <aidalgol@fastmail.net>
|
||||
Date: Tue, 19 Aug 2025 09:45:55 +1200
|
||||
Subject: [PATCH] [Fix] Run GalaxyComm executable path through fixAsarPath
|
||||
|
||||
---
|
||||
src/backend/constants/paths.ts | 4 ++++
|
||||
src/backend/launcher.ts | 15 +++++----------
|
||||
2 files changed, 9 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/backend/constants/paths.ts b/src/backend/constants/paths.ts
|
||||
index 1d05ce5b58..2e9cff1197 100644
|
||||
--- a/src/backend/constants/paths.ts
|
||||
+++ b/src/backend/constants/paths.ts
|
||||
@@ -44,6 +44,10 @@ export const fakeEpicExePath = fixAsarPath(
|
||||
join(publicDir, 'bin', 'x64', 'win32', 'EpicGamesLauncher.exe')
|
||||
)
|
||||
|
||||
+export const galaxyCommunicationExePath = fixAsarPath(
|
||||
+ join(publicDir, 'bin', 'x64', 'win32', 'GalaxyCommunication.exe')
|
||||
+)
|
||||
+
|
||||
export const webviewPreloadPath = fixAsarPath(
|
||||
join('file://', publicDir, 'webviewPreload.js')
|
||||
)
|
||||
diff --git a/src/backend/launcher.ts b/src/backend/launcher.ts
|
||||
index a239cff927..2262dc35b2 100644
|
||||
--- a/src/backend/launcher.ts
|
||||
+++ b/src/backend/launcher.ts
|
||||
@@ -80,7 +80,7 @@ import {
|
||||
defaultWinePrefix,
|
||||
fixesPath,
|
||||
flatpakHome,
|
||||
- publicDir,
|
||||
+ galaxyCommunicationExePath,
|
||||
runtimePath,
|
||||
userHome
|
||||
} from './constants/paths'
|
||||
@@ -888,28 +888,23 @@ async function prepareWineLaunch(
|
||||
|
||||
try {
|
||||
if (runner === 'gog' && experimentalFeatures?.cometSupport !== false) {
|
||||
- const communicationSource = join(
|
||||
- publicDir,
|
||||
- 'bin/x64/win32/GalaxyCommunication.exe'
|
||||
- )
|
||||
-
|
||||
- const galaxyCommPath =
|
||||
+ const galaxyCommWinePath =
|
||||
'C:\\ProgramData\\GOG.com\\Galaxy\\redists\\GalaxyCommunication.exe'
|
||||
const communicationDest = await getWinePath({
|
||||
- path: galaxyCommPath,
|
||||
+ path: galaxyCommWinePath,
|
||||
gameSettings,
|
||||
variant: 'unix'
|
||||
})
|
||||
|
||||
if (!existsSync(communicationDest)) {
|
||||
mkdirSync(dirname(communicationDest), { recursive: true })
|
||||
- await copyFile(communicationSource, communicationDest)
|
||||
+ await copyFile(galaxyCommunicationExePath, communicationDest)
|
||||
await runWineCommand({
|
||||
commandParts: [
|
||||
'sc',
|
||||
'create',
|
||||
'GalaxyCommunication',
|
||||
- `binpath=${galaxyCommPath}`
|
||||
+ `binpath=${galaxyCommWinePath}`
|
||||
],
|
||||
gameSettings,
|
||||
protonVerb: 'runinprefix'
|
||||
@@ -4,7 +4,7 @@
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
stdenv,
|
||||
makeBinaryWrapper,
|
||||
makeWrapper,
|
||||
pciutils,
|
||||
versionCheckHook,
|
||||
nix-update-script,
|
||||
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
makeBinaryWrapper
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
# NOTE: The HyFetch project maintains an updated version of neofetch renamed
|
||||
|
||||
@@ -18,13 +18,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hypridle";
|
||||
version = "0.1.6";
|
||||
version = "0.1.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hyprwm";
|
||||
repo = "hypridle";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-uChAGmceKS9F9jqs1xb58BLTVZLF+sFU00MWDEVfYLg=";
|
||||
hash = "sha256-YzRWE3rCnsY0WDRJcn4KvyWUoe+5zdkUYNIaHGP9BZ4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
}:
|
||||
ags.bundle {
|
||||
pname = "hyprpanel";
|
||||
version = "0-unstable-2025-07-24";
|
||||
version = "0-unstable-2025-08-19";
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
@@ -45,8 +45,8 @@ ags.bundle {
|
||||
src = fetchFromGitHub {
|
||||
owner = "Jas-SinghFSU";
|
||||
repo = "HyprPanel";
|
||||
rev = "d24afbec746ed16db9637085b2f6047a2ac491b5";
|
||||
hash = "sha256-pTDsWVppLaWMTRAGTPonz0UZlh/Xa8iJCtCB+qk5o1g=";
|
||||
rev = "6385f2e15df908e0c13bed800f4b091300e5b981";
|
||||
hash = "sha256-ukXfV1cAsxoar0IVEO2/s3qnVEZpZf0wvqE3PIESobw=";
|
||||
};
|
||||
|
||||
# keep in sync with https://github.com/Jas-SinghFSU/HyprPanel/blob/master/flake.nix#L42
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
fetchFromGitHub,
|
||||
nixosTests,
|
||||
fetchYarnDeps,
|
||||
nodejs,
|
||||
applyPatches,
|
||||
php,
|
||||
yarnConfigHook,
|
||||
yarnBuildHook,
|
||||
@@ -24,23 +24,26 @@ php.buildComposerProject2 (finalAttrs: {
|
||||
pname = "invoiceplane";
|
||||
inherit version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "InvoicePlane";
|
||||
repo = "InvoicePlane";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-XNjdFWP5AEulbPZcMDXYSdDhaLWlgu3nnCSFnjUjGpk=";
|
||||
src = applyPatches {
|
||||
src = fetchFromGitHub {
|
||||
owner = "InvoicePlane";
|
||||
repo = "InvoicePlane";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-XNjdFWP5AEulbPZcMDXYSdDhaLWlgu3nnCSFnjUjGpk=";
|
||||
};
|
||||
patches = [
|
||||
# Fix composer.json validation
|
||||
# See https://github.com/InvoicePlane/InvoicePlane/pull/1306
|
||||
./fix_composer_validation.patch
|
||||
];
|
||||
};
|
||||
|
||||
patches = [
|
||||
# yarn.lock missing some resolved attributes and fails
|
||||
./fix-yarn-lock.patch
|
||||
|
||||
# Fix composer.json validation
|
||||
# See https://github.com/InvoicePlane/InvoicePlane/pull/1306
|
||||
./fix_composer_validation.patch
|
||||
];
|
||||
|
||||
vendorHash = "sha256-qnWLcEabQpu0Yp4Q2NWQm4XFV4YW679cvXo6p/dDECI=";
|
||||
vendorHash = "sha256-UCYAnECuIbIYg1T4I8I9maXVKXJc1zkyauBuIy5frTY=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
yarnConfigHook
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user