mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-06 17:13:24 -05:00
Merge 19a053f28c into haskell-updates
This commit is contained in:
commit
85b5c86354
349 changed files with 8491 additions and 6314 deletions
79
ci/OWNERS
79
ci/OWNERS
|
|
@ -25,27 +25,27 @@
|
|||
/shell.nix @infinisil @NixOS/Security
|
||||
|
||||
# Libraries
|
||||
/lib @infinisil @hsjobeki
|
||||
/lib/generators.nix @infinisil @hsjobeki
|
||||
/lib/cli.nix @infinisil @hsjobeki
|
||||
/lib/debug.nix @infinisil @hsjobeki
|
||||
/lib/asserts.nix @infinisil @hsjobeki
|
||||
/lib/path/* @infinisil @hsjobeki
|
||||
/lib/fileset @infinisil @hsjobeki
|
||||
/maintainers/github-teams.json @infinisil
|
||||
/maintainers/computed-team-list.nix @infinisil
|
||||
/lib @infinisil @hsjobeki @llakala
|
||||
/lib/generators.nix @infinisil @hsjobeki @llakala
|
||||
/lib/cli.nix @infinisil @hsjobeki @llakala
|
||||
/lib/debug.nix @infinisil @hsjobeki @llakala
|
||||
/lib/asserts.nix @infinisil @hsjobeki @llakala
|
||||
/lib/path/* @infinisil @hsjobeki @llakala
|
||||
/lib/fileset @infinisil @hsjobeki @llakala
|
||||
/maintainers/github-teams.json @infinisil @llakala
|
||||
/maintainers/computed-team-list.nix @infinisil @llakala
|
||||
## Standard environment–related libraries
|
||||
/lib/customisation.nix @alyssais @NixOS/stdenv
|
||||
/lib/derivations.nix @NixOS/stdenv
|
||||
/lib/fetchers.nix @alyssais @NixOS/stdenv
|
||||
/lib/meta.nix @alyssais @NixOS/stdenv
|
||||
/lib/meta-types.nix @infinisil @adisbladis @NixOS/stdenv
|
||||
/lib/source-types.nix @alyssais @NixOS/stdenv
|
||||
/lib/systems @alyssais @NixOS/stdenv
|
||||
/lib/customisation.nix @alyssais @NixOS/stdenv @llakala
|
||||
/lib/derivations.nix @NixOS/stdenv @llakala
|
||||
/lib/fetchers.nix @alyssais @NixOS/stdenv @llakala
|
||||
/lib/meta.nix @alyssais @NixOS/stdenv @llakala
|
||||
/lib/meta-types.nix @infinisil @adisbladis @NixOS/stdenv @llakala
|
||||
/lib/source-types.nix @alyssais @NixOS/stdenv @llakala
|
||||
/lib/systems @alyssais @NixOS/stdenv @llakala
|
||||
## Libraries / Module system
|
||||
/lib/modules.nix @infinisil @roberth @hsjobeki
|
||||
/lib/types.nix @infinisil @roberth @hsjobeki
|
||||
/lib/options.nix @infinisil @roberth @hsjobeki
|
||||
/lib/modules.nix @infinisil @roberth @hsjobeki @llakala
|
||||
/lib/types.nix @infinisil @roberth @hsjobeki @llakala
|
||||
/lib/options.nix @infinisil @roberth @hsjobeki @llakala
|
||||
/lib/tests/modules.sh @infinisil @roberth @hsjobeki
|
||||
/lib/tests/modules @infinisil @roberth @hsjobeki
|
||||
|
||||
|
|
@ -63,11 +63,11 @@
|
|||
/pkgs/top-level/packages-info.nix @jopejoe1
|
||||
/pkgs/top-level/release-lib.nix @jopejoe1
|
||||
/pkgs/top-level/release.nix @jopejoe1
|
||||
/pkgs/stdenv @philiptaron @NixOS/stdenv
|
||||
/pkgs/stdenv/generic @Ericson2314 @NixOS/stdenv
|
||||
/pkgs/stdenv/generic/problems.nix @infinisil
|
||||
/pkgs/stdenv @philiptaron @NixOS/stdenv @llakala
|
||||
/pkgs/stdenv/generic @Ericson2314 @NixOS/stdenv @llakala
|
||||
/pkgs/stdenv/generic/problems.nix @infinisil @llakala
|
||||
/pkgs/test/problems @infinisil
|
||||
/pkgs/stdenv/generic/check-meta.nix @infinisil @Ericson2314 @adisbladis @NixOS/stdenv
|
||||
/pkgs/stdenv/generic/check-meta.nix @infinisil @Ericson2314 @adisbladis @NixOS/stdenv @llakala
|
||||
/pkgs/stdenv/cross @Ericson2314 @NixOS/stdenv
|
||||
/pkgs/build-support @philiptaron
|
||||
/pkgs/build-support/cc-wrapper @Ericson2314
|
||||
|
|
@ -82,10 +82,6 @@
|
|||
# Nixpkgs build-support
|
||||
/pkgs/build-support/writers @lassulus
|
||||
|
||||
# Nixpkgs make-disk-image
|
||||
/doc/build-helpers/images/makediskimage.section.md @raitobezarius
|
||||
/nixos/lib/make-disk-image.nix @raitobezarius
|
||||
|
||||
# Nix, the package manager
|
||||
# @raitobezarius is not "code owner", but is listed here to be notified of changes
|
||||
# pertaining to the Nix package manager.
|
||||
|
|
@ -99,16 +95,16 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @Artturin @Ericson2314 @lo
|
|||
/maintainers/scripts/doc @jtojnar @ryantm
|
||||
|
||||
# Contributor documentation
|
||||
/CONTRIBUTING.md @infinisil
|
||||
/.github/PULL_REQUEST_TEMPLATE.md @infinisil
|
||||
/doc/contributing/ @infinisil
|
||||
/doc/contributing/contributing-to-documentation.chapter.md @jtojnar @infinisil
|
||||
/lib/README.md @infinisil
|
||||
/doc/README.md @infinisil
|
||||
/nixos/README.md @infinisil
|
||||
/pkgs/README.md @infinisil
|
||||
/pkgs/by-name/README.md @infinisil
|
||||
/maintainers/README.md @infinisil
|
||||
/CONTRIBUTING.md
|
||||
/.github/PULL_REQUEST_TEMPLATE.md
|
||||
/doc/contributing/
|
||||
/doc/contributing/contributing-to-documentation.chapter.md @jtojnar
|
||||
/lib/README.md
|
||||
/doc/README.md
|
||||
/nixos/README.md
|
||||
/pkgs/README.md
|
||||
/pkgs/by-name/README.md
|
||||
/maintainers/README.md
|
||||
|
||||
# User-facing development documentation
|
||||
/doc/development.md @infinisil
|
||||
|
|
@ -238,9 +234,7 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @Artturin @Ericson2314 @lo
|
|||
# C compilers
|
||||
/pkgs/development/compilers/gcc
|
||||
/pkgs/development/compilers/llvm @NixOS/llvm
|
||||
/pkgs/development/compilers/emscripten @raitobezarius
|
||||
/doc/toolchains/llvm.chapter.md @NixOS/llvm
|
||||
/doc/languages-frameworks/emscripten.section.md @raitobezarius
|
||||
|
||||
# Audio
|
||||
/nixos/modules/services/audio/botamusique.nix @mweinelt
|
||||
|
|
@ -272,7 +266,7 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
|
|||
/pkgs/applications/editors/jetbrains @leona-ya @theCapypara
|
||||
|
||||
# Licenses
|
||||
/lib/licenses @alyssais @emilazy @jopejoe1
|
||||
/lib/licenses @alyssais @emilazy @jopejoe1 @llakala
|
||||
|
||||
# Qt
|
||||
/pkgs/development/libraries/qt-5 @K900 @NickCao @SuperSandro2000
|
||||
|
|
@ -333,11 +327,6 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
|
|||
/nixos/tests/kea.nix @mweinelt
|
||||
/nixos/tests/knot.nix @mweinelt
|
||||
|
||||
# Web servers
|
||||
/doc/packages/nginx.section.md @raitobezarius
|
||||
/pkgs/servers/http/nginx/ @raitobezarius
|
||||
/nixos/modules/services/web-servers/nginx/ @raitobezarius
|
||||
|
||||
# D
|
||||
/pkgs/build-support/dlang @jtbx @TomaSajt
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
- Paths under `/etc/xdg/` from packages in `environment.systemPackages` are no longer linked into the global `/etc/` by default. Modules depending on such directories must declare them explicitly using `environment.pathsToLink`.
|
||||
- `databricks-cli` has been updated from `0.290.2` to `1.x.x`, the first major release. OAuth tokens for interactive logins (`auth_type = databricks-cli`) are now stored in the OS-native secure store by default (Secret Service on Linux) instead of `~/.databricks/token-cache.json`; cached tokens from older versions are not migrated, so run `databricks auth login` once per profile after upgrading. To keep the previous file-backed storage, set `DATABRICKS_AUTH_STORAGE=plaintext` or add `auth_storage = plaintext` under `[__settings__]` in `~/.databrickscfg`. Additionally, the `vector_search_endpoints` DABs resource renamed `min_qps` to `target_qps` (and the `vector-search-endpoints` command renamed `--min-qps` to `--target-qps`). See the [upstream changelog](https://github.com/databricks/cli/blob/main/CHANGELOG.md) for details.
|
||||
|
||||
- `hurl` has been updated to `8.x.x` which has some breaking changes. See [upstream changelog](https://github.com/Orange-OpenSource/hurl/releases/tag/8.0.0) for details.
|
||||
|
|
@ -38,6 +37,8 @@
|
|||
`lib.systems.{examples,platforms}.{sheevaplug,pogoplug4}` have been unified into `lib.systems.examples.armv5tel-multiplatform`.
|
||||
Note that there is no official support for ARMv5 and it is not possible to build even a simple NixOS configuration out of the box.
|
||||
|
||||
- `pdns` has been updated from `5.0.x` to `5.1.x`. Please be sure to review the [Upgrade Notes](https://doc.powerdns.com/authoritative/upgrading.html#to-5-1-0) before upgrading. Namely LUA record updates are no longer allowed by default, and the embedded webserver no longer includes a `access-control-allow-origin: *` header by default.
|
||||
|
||||
- Support for the legacy U‐Boot image format has been removed from the Linux kernel builders, as it is deprecated upstream and no longer used by any platform in Nixpkgs.
|
||||
|
||||
- `rke2` retires ingress-nginx and transitions to Traefik starting in `rke2_1_36`. Because ingress-nginx was retired upstream as of March 2026, Traefik is now the default
|
||||
|
|
|
|||
102
lib/lists.nix
102
lib/lists.nix
|
|
@ -6,12 +6,12 @@ let
|
|||
inherit (lib.strings) toInt;
|
||||
inherit (lib.trivial)
|
||||
compare
|
||||
min
|
||||
id
|
||||
min
|
||||
seq
|
||||
warn
|
||||
;
|
||||
inherit (lib.attrsets) mapAttrs attrNames attrValues;
|
||||
inherit (lib) max;
|
||||
in
|
||||
rec {
|
||||
|
||||
|
|
@ -276,11 +276,14 @@ rec {
|
|||
:::
|
||||
*/
|
||||
foldl' =
|
||||
let
|
||||
inherit (builtins) foldl';
|
||||
in
|
||||
op: acc:
|
||||
# The builtin `foldl'` is a bit lazier than one might expect.
|
||||
# See https://github.com/NixOS/nix/pull/7158.
|
||||
# In particular, the initial accumulator value is not forced before the first iteration starts.
|
||||
builtins.seq acc (builtins.foldl' op acc);
|
||||
seq acc (foldl' op acc);
|
||||
|
||||
/**
|
||||
Map with index starting from 0
|
||||
|
|
@ -442,7 +445,7 @@ rec {
|
|||
|
||||
:::
|
||||
*/
|
||||
flatten = x: if isList x then concatMap (y: flatten y) x else [ x ];
|
||||
flatten = x: if isList x then concatMap flatten x else [ x ];
|
||||
|
||||
/**
|
||||
Remove elements equal to `e` from a list. Useful for `buildInputs`.
|
||||
|
|
@ -1122,9 +1125,10 @@ rec {
|
|||
reverseList =
|
||||
xs:
|
||||
let
|
||||
l = length xs;
|
||||
# subtract one to save an __sub call on every element
|
||||
lastIndex = length xs - 1;
|
||||
in
|
||||
genList (n: elemAt xs (l - n - 1)) l;
|
||||
genList (n: elemAt xs (lastIndex - n)) (lastIndex + 1);
|
||||
|
||||
/**
|
||||
Depth-First Search (DFS) for lists `list != []`.
|
||||
|
|
@ -1181,13 +1185,13 @@ rec {
|
|||
c = filter (x: before x us) visited;
|
||||
b = partition (x: before x us) rest;
|
||||
in
|
||||
if stopOnCycles && (length c > 0) then
|
||||
if stopOnCycles && c != [ ] then
|
||||
{
|
||||
cycle = us;
|
||||
loops = c;
|
||||
inherit visited rest;
|
||||
}
|
||||
else if length b.right == 0 then
|
||||
else if b.right == [ ] then
|
||||
# nothing is before us
|
||||
{
|
||||
minimal = us;
|
||||
|
|
@ -1244,27 +1248,33 @@ rec {
|
|||
:::
|
||||
*/
|
||||
toposort =
|
||||
before: list:
|
||||
before:
|
||||
let
|
||||
dfsthis = listDfs true before list;
|
||||
toporest = toposort before (dfsthis.visited ++ dfsthis.rest);
|
||||
dfs = listDfs true before;
|
||||
recurse =
|
||||
list:
|
||||
let
|
||||
dfsthis = dfs list;
|
||||
toporest = recurse (dfsthis.visited ++ dfsthis.rest);
|
||||
in
|
||||
if length list < 2 then
|
||||
# finish
|
||||
{ result = list; }
|
||||
else if dfsthis ? cycle then
|
||||
# there's a cycle, starting from the current vertex, return it
|
||||
{
|
||||
cycle = reverseList dfsthis.visited ++ [ dfsthis.cycle ];
|
||||
inherit (dfsthis) loops;
|
||||
}
|
||||
else if toporest ? cycle then
|
||||
# there's a cycle somewhere else in the graph, return it
|
||||
toporest
|
||||
# Slow, but short. Can be made a bit faster with an explicit stack.
|
||||
else
|
||||
# there are no cycles
|
||||
{ result = [ dfsthis.minimal ] ++ toporest.result; };
|
||||
in
|
||||
if length list < 2 then
|
||||
# finish
|
||||
{ result = list; }
|
||||
else if dfsthis ? cycle then
|
||||
# there's a cycle, starting from the current vertex, return it
|
||||
{
|
||||
cycle = reverseList ([ dfsthis.cycle ] ++ dfsthis.visited);
|
||||
inherit (dfsthis) loops;
|
||||
}
|
||||
else if toporest ? cycle then
|
||||
# there's a cycle somewhere else in the graph, return it
|
||||
toporest
|
||||
# Slow, but short. Can be made a bit faster with an explicit stack.
|
||||
else
|
||||
# there are no cycles
|
||||
{ result = [ dfsthis.minimal ] ++ toporest.result; };
|
||||
recurse;
|
||||
|
||||
/**
|
||||
Sort a list based on a comparator function which compares two
|
||||
|
|
@ -1504,7 +1514,12 @@ rec {
|
|||
|
||||
:::
|
||||
*/
|
||||
take = count: sublist 0 count;
|
||||
take =
|
||||
count: list:
|
||||
let
|
||||
len = length list;
|
||||
in
|
||||
genList (elemAt list) (if count > len then len else count);
|
||||
|
||||
/**
|
||||
Returns the last (at most) N elements of a list.
|
||||
|
|
@ -1538,7 +1553,13 @@ rec {
|
|||
|
||||
:::
|
||||
*/
|
||||
takeEnd = n: xs: drop (max 0 (length xs - n)) xs;
|
||||
takeEnd =
|
||||
count: list:
|
||||
let
|
||||
len = length list;
|
||||
start = if count > len then 0 else len - count;
|
||||
in
|
||||
genList (i: elemAt list (start + i)) (if start > len then 0 else len - start);
|
||||
|
||||
/**
|
||||
Remove the first (at most) N elements of a list.
|
||||
|
|
@ -1572,7 +1593,12 @@ rec {
|
|||
|
||||
:::
|
||||
*/
|
||||
drop = count: list: sublist count (length list) list;
|
||||
drop =
|
||||
count: list:
|
||||
let
|
||||
len = length list;
|
||||
in
|
||||
genList (n: elemAt list (n + count)) (if count > len then 0 else len - count);
|
||||
|
||||
/**
|
||||
Remove the last (at most) N elements of a list.
|
||||
|
|
@ -1606,7 +1632,19 @@ rec {
|
|||
```
|
||||
:::
|
||||
*/
|
||||
dropEnd = n: xs: take (max 0 (length xs - n)) xs;
|
||||
dropEnd =
|
||||
n: list:
|
||||
let
|
||||
len = length list;
|
||||
in
|
||||
genList (elemAt list) (
|
||||
if n > len then
|
||||
0
|
||||
else if n < 0 then
|
||||
len
|
||||
else
|
||||
len - n
|
||||
);
|
||||
|
||||
/**
|
||||
Whether the first list is a prefix of the second list.
|
||||
|
|
@ -1844,7 +1882,7 @@ rec {
|
|||
init =
|
||||
list:
|
||||
assert lib.assertMsg (list != [ ]) "lists.init: list must not be empty!";
|
||||
take (length list - 1) list;
|
||||
genList (elemAt list) (length list - 1);
|
||||
|
||||
/**
|
||||
Returns the image of the cross product of some lists by a function.
|
||||
|
|
|
|||
217
lib/strings.nix
217
lib/strings.nix
|
|
@ -6,8 +6,6 @@ let
|
|||
|
||||
inherit (builtins) length;
|
||||
|
||||
inherit (lib.trivial) warnIf;
|
||||
|
||||
asciiTable = import ./ascii-table.nix;
|
||||
|
||||
in
|
||||
|
|
@ -16,6 +14,7 @@ rec {
|
|||
|
||||
inherit (builtins)
|
||||
compareVersions
|
||||
concatMap
|
||||
elem
|
||||
elemAt
|
||||
filter
|
||||
|
|
@ -564,7 +563,10 @@ rec {
|
|||
:::
|
||||
*/
|
||||
makeSearchPath =
|
||||
subDir: paths: concatStringsSep ":" (map (path: path + "/" + subDir) (filter (x: x != null) paths));
|
||||
subDir: paths:
|
||||
concatStringsSep ":" (
|
||||
concatMap (path: if path != null then [ (path + "/" + subDir) ] else [ ]) paths
|
||||
);
|
||||
|
||||
/**
|
||||
Construct a Unix-style search path by appending the given
|
||||
|
|
@ -602,8 +604,14 @@ rec {
|
|||
:::
|
||||
*/
|
||||
makeSearchPathOutput =
|
||||
output: subDir: pkgs:
|
||||
makeSearchPath subDir (map (lib.getOutput output) pkgs);
|
||||
output:
|
||||
let
|
||||
getOutput' = lib.getOutput output;
|
||||
in
|
||||
subDir: pkgs:
|
||||
concatStringsSep ":" (
|
||||
concatMap (path: if path != null then [ (getOutput' path + "/" + subDir) ] else [ ]) pkgs
|
||||
);
|
||||
|
||||
/**
|
||||
Construct a library search path (such as RPATH) containing the
|
||||
|
|
@ -721,15 +729,17 @@ rec {
|
|||
:::
|
||||
*/
|
||||
normalizePath =
|
||||
let
|
||||
startsWithSlash = hasSuffix "/";
|
||||
in
|
||||
s:
|
||||
warnIf (isPath s)
|
||||
''
|
||||
if isPath s then
|
||||
throw ''
|
||||
lib.strings.normalizePath: The argument (${toString s}) is a path value, but only strings are supported.
|
||||
Path values are always normalised in Nix, so there's no need to call this function on them.
|
||||
This function also copies the path to the Nix store and returns the store path, the same as "''${path}" will, which may not be what you want.
|
||||
This behavior is deprecated and will throw an error in the future.''
|
||||
(
|
||||
builtins.foldl' (x: y: if y == "/" && hasSuffix "/" x then x else x + y) "" (stringToCharacters s)
|
||||
Path values are always normalised in Nix, so there's no need to call this function on them.''
|
||||
else
|
||||
builtins.foldl' (x: y: if y == "/" && startsWithSlash x then x else x + y) "" (
|
||||
stringToCharacters s
|
||||
);
|
||||
|
||||
/**
|
||||
|
|
@ -796,17 +806,18 @@ rec {
|
|||
:::
|
||||
*/
|
||||
hasPrefix =
|
||||
pref: str:
|
||||
# Before 23.05, paths would be copied to the store before converting them
|
||||
# to strings and comparing. This was surprising and confusing.
|
||||
warnIf (isPath pref)
|
||||
''
|
||||
pref:
|
||||
let
|
||||
lenPrefix = stringLength pref;
|
||||
in
|
||||
if isPath pref then
|
||||
# Before 23.05, paths would be copied to the store before converting them
|
||||
# to strings and comparing. This was surprising and confusing.
|
||||
throw ''
|
||||
lib.strings.hasPrefix: The first argument (${toString pref}) is a path value, but only strings are supported.
|
||||
There is almost certainly a bug in the calling code, since this function always returns `false` in such a case.
|
||||
This function also copies the path to the Nix store, which may not be what you want.
|
||||
This behavior is deprecated and will throw an error in the future.
|
||||
You might want to use `lib.path.hasPrefix` instead, which correctly supports paths.''
|
||||
(substring 0 (stringLength pref) str == pref);
|
||||
else
|
||||
str: substring 0 lenPrefix str == pref;
|
||||
|
||||
/**
|
||||
Determine whether a string has given suffix.
|
||||
|
|
@ -839,20 +850,23 @@ rec {
|
|||
:::
|
||||
*/
|
||||
hasSuffix =
|
||||
suffix: content:
|
||||
suffix:
|
||||
let
|
||||
lenContent = stringLength content;
|
||||
lenSuffix = stringLength suffix;
|
||||
in
|
||||
# Before 23.05, paths would be copied to the store before converting them
|
||||
# to strings and comparing. This was surprising and confusing.
|
||||
warnIf (isPath suffix)
|
||||
''
|
||||
if isPath suffix then
|
||||
# Before 23.05, paths would be copied to the store before converting them
|
||||
# to strings and comparing. This was surprising and confusing.
|
||||
throw ''
|
||||
lib.strings.hasSuffix: The first argument (${toString suffix}) is a path value, but only strings are supported.
|
||||
There is almost certainly a bug in the calling code, since this function always returns `false` in such a case.
|
||||
This function also copies the path to the Nix store, which may not be what you want.
|
||||
This behavior is deprecated and will throw an error in the future.''
|
||||
(lenContent >= lenSuffix && substring (lenContent - lenSuffix) lenContent content == suffix);
|
||||
There is almost certainly a bug in the calling code, since this function always returns `false` in such a case.
|
||||
This function also copies the path to the Nix store, which may not be what you want.''
|
||||
else
|
||||
content:
|
||||
let
|
||||
lenContent = stringLength content;
|
||||
in
|
||||
lenContent >= lenSuffix && substring (lenContent - lenSuffix) lenContent content == suffix;
|
||||
|
||||
/**
|
||||
Determine whether a string contains the given infix
|
||||
|
|
@ -889,16 +903,19 @@ rec {
|
|||
:::
|
||||
*/
|
||||
hasInfix =
|
||||
infix: content:
|
||||
# Before 23.05, paths would be copied to the store before converting them
|
||||
# to strings and comparing. This was surprising and confusing.
|
||||
warnIf (isPath infix)
|
||||
''
|
||||
infix:
|
||||
let
|
||||
escapedInfix = escapeRegex infix;
|
||||
in
|
||||
if isPath infix then
|
||||
# Before 23.05, paths would be copied to the store before converting them
|
||||
# to strings and comparing. This was surprising and confusing.
|
||||
throw ''
|
||||
lib.strings.hasInfix: The first argument (${toString infix}) is a path value, but only strings are supported.
|
||||
There is almost certainly a bug in the calling code, since this function always returns `false` in such a case.
|
||||
This function also copies the path to the Nix store, which may not be what you want.
|
||||
This behavior is deprecated and will throw an error in the future.''
|
||||
(builtins.match ".*${escapeRegex infix}.*" "${content}" != null);
|
||||
This function also copies the path to the Nix store, which may not be what you want.''
|
||||
else
|
||||
content: builtins.match ".*${escapedInfix}.*" "${content}" != null;
|
||||
|
||||
/**
|
||||
Convert a string `s` to a list of characters (i.e. singleton strings).
|
||||
|
|
@ -1303,8 +1320,11 @@ rec {
|
|||
:::
|
||||
*/
|
||||
toShellVar =
|
||||
name: value:
|
||||
lib.throwIfNot (isValidPosixName name) "toShellVar: ${name} is not a valid shell variable name" (
|
||||
name:
|
||||
if (!isValidPosixName name) then
|
||||
throw "toShellVar: ${name} is not a valid shell variable name"
|
||||
else
|
||||
value:
|
||||
if isAttrs value && !isStringLike value then
|
||||
"declare -A ${name}=(${
|
||||
concatStringsSep " " (lib.mapAttrsToList (n: v: "[${escapeShellArg n}]=${escapeShellArg v}") value)
|
||||
|
|
@ -1312,8 +1332,7 @@ rec {
|
|||
else if isList value then
|
||||
"declare -a ${name}=(${escapeShellArgs value})"
|
||||
else
|
||||
"${name}=${escapeShellArg value}"
|
||||
);
|
||||
"${name}=${escapeShellArg value}";
|
||||
|
||||
/**
|
||||
Translate an attribute set `vars` into corresponding shell variable declarations
|
||||
|
|
@ -1575,9 +1594,9 @@ rec {
|
|||
(
|
||||
let
|
||||
firstChar = substring 0 1 str;
|
||||
rest = substring 1 (stringLength str) str;
|
||||
rest = substring 1 (-1) str; # -1 takes till the end of the string
|
||||
in
|
||||
addContextFrom str (toUpper firstChar + toLower rest)
|
||||
toUpper firstChar + toLower rest
|
||||
);
|
||||
|
||||
/**
|
||||
|
|
@ -1634,7 +1653,7 @@ rec {
|
|||
first = if length parts > 0 then toLower (head parts) else "";
|
||||
rest = if length parts > 1 then map toSentenceCase (tail parts) else [ ];
|
||||
in
|
||||
concatStrings (map (addContextFrom str) ([ first ] ++ rest))
|
||||
concatStrings ([ first ] ++ rest)
|
||||
);
|
||||
|
||||
/**
|
||||
|
|
@ -1721,13 +1740,11 @@ rec {
|
|||
:::
|
||||
*/
|
||||
splitString =
|
||||
sep: s:
|
||||
sep:
|
||||
let
|
||||
splits = builtins.filter builtins.isString (
|
||||
builtins.split (escapeRegex (toString sep)) (toString s)
|
||||
);
|
||||
escapedSep = escapeRegex (toString sep);
|
||||
in
|
||||
map (addContextFrom s) splits;
|
||||
s: map (addContextFrom s) (filter isString (split escapedSep (toString s)));
|
||||
|
||||
/**
|
||||
Splits a string into substrings based on a predicate that examines adjacent characters.
|
||||
|
|
@ -1794,31 +1811,27 @@ rec {
|
|||
predicate: keepSplit: str:
|
||||
let
|
||||
len = stringLength str;
|
||||
withContext = addContextFrom str;
|
||||
|
||||
# Helper function that processes the string character by character
|
||||
go =
|
||||
pos: currentPart: result:
|
||||
# Base case: reached end of string
|
||||
if pos == len then
|
||||
result ++ [ currentPart ]
|
||||
result ++ [ (withContext currentPart) ]
|
||||
else
|
||||
let
|
||||
currChar = substring pos 1 str;
|
||||
prevChar = if pos > 0 then substring (pos - 1) 1 str else "";
|
||||
isSplit = predicate prevChar currChar;
|
||||
in
|
||||
if isSplit then
|
||||
if predicate prevChar currChar then
|
||||
# Split here - add current part to results and start a new one
|
||||
let
|
||||
newResult = result ++ [ currentPart ];
|
||||
newCurrentPart = if keepSplit then currChar else "";
|
||||
in
|
||||
go (pos + 1) newCurrentPart newResult
|
||||
go (pos + 1) (if keepSplit then currChar else "") (result ++ [ (withContext currentPart) ])
|
||||
else
|
||||
# Keep building current part
|
||||
go (pos + 1) (currentPart + currChar) result;
|
||||
in
|
||||
if len == 0 then [ (addContextFrom str "") ] else map (addContextFrom str) (go 0 "" [ ]);
|
||||
if len == 0 then [ (withContext "") ] else go 0 "" [ ];
|
||||
|
||||
/**
|
||||
Returns a string without the specified prefix, if the prefix matches.
|
||||
|
|
@ -1851,25 +1864,24 @@ rec {
|
|||
:::
|
||||
*/
|
||||
removePrefix =
|
||||
prefix: str:
|
||||
# Before 23.05, paths would be copied to the store before converting them
|
||||
# to strings and comparing. This was surprising and confusing.
|
||||
warnIf (isPath prefix)
|
||||
''
|
||||
prefix:
|
||||
let
|
||||
preLen = stringLength prefix;
|
||||
in
|
||||
if isPath prefix then
|
||||
# Before 23.05, paths would be copied to the store before converting them
|
||||
# to strings and comparing. This was surprising and confusing.
|
||||
throw ''
|
||||
lib.strings.removePrefix: The first argument (${toString prefix}) is a path value, but only strings are supported.
|
||||
There is almost certainly a bug in the calling code, since this function never removes any prefix in such a case.
|
||||
This function also copies the path to the Nix store, which may not be what you want.
|
||||
This behavior is deprecated and will throw an error in the future.''
|
||||
(
|
||||
let
|
||||
preLen = stringLength prefix;
|
||||
in
|
||||
if substring 0 preLen str == prefix then
|
||||
# -1 will take the string until the end
|
||||
substring preLen (-1) str
|
||||
else
|
||||
str
|
||||
);
|
||||
This function also copies the path to the Nix store, which may not be what you want.''
|
||||
else
|
||||
str:
|
||||
if substring 0 preLen str == prefix then
|
||||
# -1 will take the string until the end
|
||||
substring preLen (-1) str
|
||||
else
|
||||
str;
|
||||
|
||||
/**
|
||||
Returns a string without the specified suffix, if the suffix matches.
|
||||
|
|
@ -1902,25 +1914,26 @@ rec {
|
|||
:::
|
||||
*/
|
||||
removeSuffix =
|
||||
suffix: str:
|
||||
# Before 23.05, paths would be copied to the store before converting them
|
||||
# to strings and comparing. This was surprising and confusing.
|
||||
warnIf (isPath suffix)
|
||||
''
|
||||
suffix:
|
||||
let
|
||||
sufLen = stringLength suffix;
|
||||
in
|
||||
if isPath suffix then
|
||||
# Before 23.05, paths would be copied to the store before converting them
|
||||
# to strings and comparing. This was surprising and confusing.
|
||||
throw ''
|
||||
lib.strings.removeSuffix: The first argument (${toString suffix}) is a path value, but only strings are supported.
|
||||
There is almost certainly a bug in the calling code, since this function never removes any suffix in such a case.
|
||||
This function also copies the path to the Nix store, which may not be what you want.
|
||||
This behavior is deprecated and will throw an error in the future.''
|
||||
(
|
||||
let
|
||||
sufLen = stringLength suffix;
|
||||
sLen = stringLength str;
|
||||
in
|
||||
if sufLen <= sLen && suffix == substring (sLen - sufLen) sufLen str then
|
||||
substring 0 (sLen - sufLen) str
|
||||
else
|
||||
str
|
||||
);
|
||||
This function also copies the path to the Nix store, which may not be what you want.''
|
||||
else
|
||||
str:
|
||||
let
|
||||
sLen = stringLength str;
|
||||
in
|
||||
if sufLen <= sLen && suffix == substring (sLen - sufLen) sufLen str then
|
||||
substring 0 (sLen - sufLen) str
|
||||
else
|
||||
str;
|
||||
|
||||
/**
|
||||
Returns true if string `v1` denotes a version older than `v2`.
|
||||
|
|
@ -1986,7 +1999,7 @@ rec {
|
|||
|
||||
:::
|
||||
*/
|
||||
versionAtLeast = v1: v2: !versionOlder v1 v2;
|
||||
versionAtLeast = v1: v2: compareVersions v2 v1 != 1;
|
||||
|
||||
/**
|
||||
This function takes an argument `x` that's either a derivation or a
|
||||
|
|
@ -2149,8 +2162,9 @@ rec {
|
|||
"LIST"
|
||||
];
|
||||
in
|
||||
type: feature: value:
|
||||
type:
|
||||
assert (elem (toUpper type) types);
|
||||
feature: value:
|
||||
assert (isString feature);
|
||||
assert (isString value);
|
||||
"-D${feature}:${toUpper type}=${value}";
|
||||
|
|
@ -2186,9 +2200,8 @@ rec {
|
|||
*/
|
||||
cmakeBool =
|
||||
condition: flag:
|
||||
assert (lib.isString condition);
|
||||
assert (lib.isBool flag);
|
||||
cmakeOptionType "bool" condition (lib.toUpper (lib.boolToString flag));
|
||||
cmakeOptionType "bool" condition (if flag then "TRUE" else "FALSE");
|
||||
|
||||
/**
|
||||
Create a `"-D<feature>:STRING=<value>"` string that can be passed to typical
|
||||
|
|
@ -2220,11 +2233,7 @@ rec {
|
|||
|
||||
:::
|
||||
*/
|
||||
cmakeFeature =
|
||||
feature: value:
|
||||
assert (lib.isString feature);
|
||||
assert (lib.isString value);
|
||||
cmakeOptionType "string" feature value;
|
||||
cmakeFeature = cmakeOptionType "string";
|
||||
|
||||
/**
|
||||
Create a `"-D<feature>=<value>"` string that can be passed to typical Meson
|
||||
|
|
@ -2294,7 +2303,6 @@ rec {
|
|||
*/
|
||||
mesonBool =
|
||||
condition: flag:
|
||||
assert (lib.isString condition);
|
||||
assert (lib.isBool flag);
|
||||
mesonOption condition (lib.boolToString flag);
|
||||
|
||||
|
|
@ -2331,7 +2339,6 @@ rec {
|
|||
*/
|
||||
mesonEnable =
|
||||
feature: flag:
|
||||
assert (lib.isString feature);
|
||||
assert (lib.isBool flag);
|
||||
mesonOption feature (if flag then "enabled" else "disabled");
|
||||
|
||||
|
|
|
|||
|
|
@ -4203,6 +4203,13 @@
|
|||
githubId = 18356186;
|
||||
name = "Gabriela Moreira";
|
||||
};
|
||||
buggymcbugfix = {
|
||||
email = "nix@vilem.net";
|
||||
github = "buggymcbugfix";
|
||||
matrix = "@buggymcbugfix:matrix.org";
|
||||
githubId = 17603372;
|
||||
name = "Vilem Liepelt";
|
||||
};
|
||||
bugworm = {
|
||||
email = "bugworm@zoho.com";
|
||||
github = "bugworm";
|
||||
|
|
@ -9881,6 +9888,12 @@
|
|||
githubId = 3217744;
|
||||
name = "Peter Ferenczy";
|
||||
};
|
||||
ghastrum = {
|
||||
name = "Dennis Malmin";
|
||||
email = "dennis.malmin@tuta.com";
|
||||
github = "Ghastrum";
|
||||
githubId = 276720856;
|
||||
};
|
||||
ghostbuster91 = {
|
||||
name = "Kasper Kondzielski";
|
||||
email = "kghost0@gmail.com";
|
||||
|
|
@ -24892,6 +24905,13 @@
|
|||
githubId = 149248;
|
||||
name = "Christian Rackerseder";
|
||||
};
|
||||
Scriptkiddi = {
|
||||
email = "nixos@scriptkiddi.de";
|
||||
matrix = "@fritz.otlinghaus:helsinki-systems.de";
|
||||
github = "Scriptkiddi";
|
||||
githubId = 3598650;
|
||||
name = "Fritz Otlinghaus";
|
||||
};
|
||||
Scrumplex = {
|
||||
name = "Sefa Eyeoglu";
|
||||
email = "contact@scrumplex.net";
|
||||
|
|
@ -26534,6 +26554,11 @@
|
|||
github = "StephenWithPH";
|
||||
githubId = 2990492;
|
||||
};
|
||||
stephsi = {
|
||||
name = "Stephan Siegl";
|
||||
github = "stephsi";
|
||||
githubId = 3120909;
|
||||
};
|
||||
sterfield = {
|
||||
email = "sterfield@gmail.com";
|
||||
github = "sterfield";
|
||||
|
|
|
|||
|
|
@ -506,12 +506,11 @@ with lib.maintainers;
|
|||
matrix = {
|
||||
members = [
|
||||
ma27
|
||||
mguentner
|
||||
dandellion
|
||||
nickcao
|
||||
teutat3s
|
||||
transcaffeine
|
||||
];
|
||||
scope = "Maintain the ecosystem around Matrix, a decentralized messenger.";
|
||||
scope = "Maintain the foundational packages of the Matrix ecosystem.";
|
||||
shortName = "Matrix";
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ in
|
|||
|
||||
environment.pathsToLink = [
|
||||
"/bin"
|
||||
"/etc/xdg"
|
||||
"/etc/gtk-2.0"
|
||||
"/etc/gtk-3.0"
|
||||
"/lib" # FIXME: remove and update debug-info.nix
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@
|
|||
};
|
||||
|
||||
config = {
|
||||
# FIXME this does not actually work because "/etc/xdg" is linked
|
||||
# unconditionally in `nixos/modules/config/system-path.nix`
|
||||
environment.pathsToLink = lib.mkIf config.xdg.autostart.install [
|
||||
"/etc/xdg/autostart"
|
||||
];
|
||||
|
|
|
|||
|
|
@ -387,6 +387,7 @@
|
|||
./programs/zsh/zsh-syntax-highlighting.nix
|
||||
./programs/zsh/zsh.nix
|
||||
./rename.nix
|
||||
./security/account-utils.nix
|
||||
./security/acme
|
||||
./security/agnos.nix
|
||||
./security/apparmor.nix
|
||||
|
|
|
|||
|
|
@ -262,22 +262,17 @@ in
|
|||
(lib.mkIf cfg.generateCompletions {
|
||||
etc."fish/generated_completions".source =
|
||||
let
|
||||
patchedGenerator = pkgs.stdenv.mkDerivation {
|
||||
name = "fish_patched-completion-generator";
|
||||
srcs = [
|
||||
"${cfg.package}/share/fish/tools/create_manpage_completions.py"
|
||||
];
|
||||
unpackCmd = "cp $curSrc $(basename $curSrc)";
|
||||
sourceRoot = ".";
|
||||
patches = [ ./fish_completion-generator.patch ]; # to prevent collisions of identical completion files
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp * $out/
|
||||
'';
|
||||
preferLocalBuild = true;
|
||||
allowSubstitutes = false;
|
||||
};
|
||||
# fish embeds the generator script in the binary, so extract it.
|
||||
generator =
|
||||
pkgs.runCommandLocal "fish_completion-generator"
|
||||
{
|
||||
nativeBuildInputs = [ cfg.package ];
|
||||
}
|
||||
''
|
||||
mkdir -p $out
|
||||
fish --no-config -c 'status get-file tools/create_manpage_completions.py' \
|
||||
> $out/create_manpage_completions.py
|
||||
'';
|
||||
generateCompletions =
|
||||
package:
|
||||
pkgs.runCommandLocal
|
||||
|
|
@ -298,8 +293,25 @@ in
|
|||
''
|
||||
mkdir -p $out
|
||||
if [ -d $package/share/man ]; then
|
||||
find -L $package/share/man -type f | xargs ${pkgs.python3.pythonOnBuildForHost.interpreter} ${patchedGenerator}/create_manpage_completions.py --directory $out >/dev/null
|
||||
find -L $package/share/man -type f \
|
||||
| xargs ${pkgs.python3.pythonOnBuildForHost.interpreter} \
|
||||
${generator}/create_manpage_completions.py --directory $out \
|
||||
>/dev/null
|
||||
fi
|
||||
|
||||
# The generator emits a header comment containing the man page store
|
||||
# path. Strip it so identical completions from different packages
|
||||
# don't collide and so we don't retain runtime references to the
|
||||
# inputs. Fail if generated files lack the expected header so that a
|
||||
# change in the upstream format gets noticed.
|
||||
shopt -s nullglob
|
||||
for f in $out/*.fish; do
|
||||
if ! grep -q '^# Autogenerated from ' "$f"; then
|
||||
echo "error: expected '# Autogenerated from' header not found in $f" >&2
|
||||
exit 1
|
||||
fi
|
||||
sed -i '/^# Autogenerated from /d' "$f"
|
||||
done
|
||||
'';
|
||||
packages =
|
||||
if
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
--- a/create_manpage_completions.py
|
||||
+++ b/create_manpage_completions.py
|
||||
@@ -879,10 +879,6 @@ def parse_manpage_at_path(manpage_path, output_directory):
|
||||
)
|
||||
return False
|
||||
|
||||
- # Output the magic word Autogenerated so we can tell if we can overwrite this
|
||||
- built_command_output.insert(
|
||||
- 0, "# " + CMDNAME + "\n# Autogenerated from man page " + manpage_path
|
||||
- )
|
||||
# built_command_output.insert(2, "# using " + parser.__class__.__name__) # XXX MISATTRIBUTES THE CULPABLE PARSER! Was really using Type2 but reporting TypeDeroffManParser
|
||||
|
||||
for line in built_command_output:
|
||||
|
||||
65
nixos/modules/security/account-utils.nix
Normal file
65
nixos/modules/security/account-utils.nix
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.security.account-utils;
|
||||
in
|
||||
{
|
||||
options.security.account-utils = {
|
||||
enable = lib.mkEnableOption "the account-utils implementation of Unix user authentication and management";
|
||||
package = lib.mkPackageOption pkgs "account-utils" { };
|
||||
extraArgs = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.nonEmptyStr;
|
||||
default = [ ];
|
||||
example = [
|
||||
"--debug"
|
||||
"-v"
|
||||
];
|
||||
description = ''
|
||||
List of arguments to pass to the socket activated service executables.
|
||||
::: {.note}
|
||||
This is passed to both pwupdd and pwaccessd, which support identical flags.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
# use account-utils reimplementation of pam_unix
|
||||
security.pam = {
|
||||
pam_unixModulePath = "${cfg.package}/lib/security/pam_unix_ng.so";
|
||||
enableLegacySettings = false;
|
||||
};
|
||||
|
||||
systemd = {
|
||||
packages = [ cfg.package ];
|
||||
sockets.pwaccessd.wantedBy = [ "sockets.target" ];
|
||||
sockets.pwupdd.wantedBy = lib.optional config.users.mutableUsers "sockets.target"; # immutable users do not need password updating
|
||||
sockets.newidmapd.wantedBy = [ "sockets.target" ];
|
||||
services."pwupdd@".environment.PWUPDD_OPTS = lib.escapeShellArgs cfg.extraArgs;
|
||||
services."pwaccessd".environment.PWACCESSD_OPTS = lib.escapeShellArgs cfg.extraArgs;
|
||||
};
|
||||
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
security.pam.services = {
|
||||
pwupd-passwd = { };
|
||||
pwupd-chsh = { };
|
||||
pwupd-chfn = { };
|
||||
};
|
||||
|
||||
# covered by account-utils via socket-activated service
|
||||
security.wrappers = {
|
||||
# shadow suid binaries are no longer necessary, but disabling the entire shadow module is too intrusive
|
||||
newuidmap.enable = false;
|
||||
newgidmap.enable = false;
|
||||
chsh.enable = false;
|
||||
passwd.enable = false;
|
||||
|
||||
unix_chkpwd.enable = false; # Not necessary when using pam_unix_ng.so
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -2,13 +2,11 @@
|
|||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
options,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
||||
cfg = config.security.acme;
|
||||
opt = options.security.acme;
|
||||
user = if cfg.useRoot then "root" else "acme";
|
||||
|
||||
# Used to calculate timer accuracy for coalescing
|
||||
|
|
@ -826,8 +824,8 @@ let
|
|||
type = lib.types.attrsOf (lib.types.path);
|
||||
inherit (defaultAndText "credentialFiles" { }) default defaultText;
|
||||
description = ''
|
||||
Environment variables suffixed by "_FILE" to set for the cert's service
|
||||
for your selected dnsProvider.
|
||||
Environment variables suffixed by "_FILE" or "_PATH" to set for the
|
||||
cert's service for your selected dnsProvider.
|
||||
To find out what values you need to set, consult the documentation at
|
||||
<https://go-acme.github.io/lego/dns/> for the corresponding dnsProvider.
|
||||
This allows to securely pass credential files to lego by leveraging systemd
|
||||
|
|
@ -1186,10 +1184,13 @@ in
|
|||
}
|
||||
)
|
||||
{
|
||||
assertion = lib.all (lib.hasSuffix "_FILE") (lib.attrNames data.credentialFiles);
|
||||
assertion = lib.all (n: lib.hasSuffix "_FILE" n || lib.hasSuffix "_PATH" n) (
|
||||
lib.attrNames data.credentialFiles
|
||||
);
|
||||
|
||||
message = ''
|
||||
Option `security.acme.certs.${cert}.credentialFiles` can only be
|
||||
used for variables suffixed by "_FILE".
|
||||
used for variables suffixed by "_FILE" or "_PATH".
|
||||
'';
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1008,7 +1008,7 @@ let
|
|||
{
|
||||
name = "unix";
|
||||
control = "required";
|
||||
modulePath = "${package}/lib/security/pam_unix.so";
|
||||
modulePath = config.security.pam.pam_unixModulePath;
|
||||
}
|
||||
# pam_slurm_adopt must be the last module in the account stack.
|
||||
{
|
||||
|
|
@ -1217,11 +1217,11 @@ let
|
|||
name = "unix-early";
|
||||
enable = cfg.unixAuth;
|
||||
control = "optional";
|
||||
modulePath = "${package}/lib/security/pam_unix.so";
|
||||
modulePath = config.security.pam.pam_unixModulePath;
|
||||
settings = {
|
||||
nullok = cfg.allowNullPassword;
|
||||
inherit (cfg) nodelay;
|
||||
likeauth = true;
|
||||
likeauth = lib.mkIf config.security.pam.enableLegacySettings true;
|
||||
};
|
||||
}
|
||||
{
|
||||
|
|
@ -1315,11 +1315,11 @@ let
|
|||
name = "unix";
|
||||
enable = cfg.unixAuth;
|
||||
control = "sufficient";
|
||||
modulePath = "${package}/lib/security/pam_unix.so";
|
||||
modulePath = config.security.pam.pam_unixModulePath;
|
||||
settings = {
|
||||
nullok = cfg.allowNullPassword;
|
||||
inherit (cfg) nodelay;
|
||||
likeauth = true;
|
||||
likeauth = lib.mkIf config.security.pam.enableLegacySettings true;
|
||||
try_first_pass = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1404,10 +1404,10 @@ let
|
|||
{
|
||||
name = "unix";
|
||||
control = "sufficient";
|
||||
modulePath = "${package}/lib/security/pam_unix.so";
|
||||
modulePath = config.security.pam.pam_unixModulePath;
|
||||
settings = {
|
||||
nullok = true;
|
||||
yescrypt = true;
|
||||
yescrypt = lib.mkIf config.security.pam.enableLegacySettings true;
|
||||
};
|
||||
}
|
||||
{
|
||||
|
|
@ -1493,7 +1493,7 @@ let
|
|||
{
|
||||
name = "unix";
|
||||
control = "required";
|
||||
modulePath = "${package}/lib/security/pam_unix.so";
|
||||
modulePath = config.security.pam.pam_unixModulePath;
|
||||
}
|
||||
{
|
||||
name = "loginuid";
|
||||
|
|
@ -1858,8 +1858,27 @@ in
|
|||
|
||||
options = {
|
||||
|
||||
security.pam.enable = lib.mkOption {
|
||||
default = true;
|
||||
type = lib.types.bool;
|
||||
|
||||
description = ''
|
||||
Whether to enable PAM, or entirely disable it.
|
||||
|
||||
Unless you're building a container image, you probably don't want to disable PAM.
|
||||
'';
|
||||
};
|
||||
|
||||
security.pam.package = lib.mkPackageOption pkgs "pam" { };
|
||||
|
||||
security.pam.pam_unixModulePath = lib.mkOption {
|
||||
type = lib.types.pathInStore;
|
||||
default = "${package}/lib/security/pam_unix.so";
|
||||
defaultText = "\${config.security.pam.package}/lib/security/pam_unix.so";
|
||||
description = "The pam_unix module to use in all the default pam services.";
|
||||
internal = true;
|
||||
};
|
||||
|
||||
security.pam.loginLimits = lib.mkOption {
|
||||
default = [ ];
|
||||
type = limitsType;
|
||||
|
|
@ -1904,6 +1923,19 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
security.pam.enableLegacySettings = lib.mkOption {
|
||||
default = true;
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Alternative implementations of pam_unix may not support all legacy arguments.
|
||||
This option will disable all known legacy settings.
|
||||
::: {.note}
|
||||
Setting this option to false will omit arguments, such as `yescrypt`.
|
||||
Doing so is only safe if the defaults used by pam_unix are sensible.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
security.pam.makeHomeDir.skelDirectory = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "/var/empty";
|
||||
|
|
@ -2479,7 +2511,7 @@ in
|
|||
|
||||
###### implementation
|
||||
|
||||
config = {
|
||||
config = lib.mkIf config.security.pam.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = config.users.motd == "" || config.users.motdFile == null;
|
||||
|
|
|
|||
|
|
@ -662,11 +662,6 @@ in
|
|||
) | ${cfg.package}/bin/mysql -u ${superUser} -N
|
||||
''}
|
||||
|
||||
# Secure root@localhost for MySQL/Percona on first initialization
|
||||
${lib.optionalString (cfg.secureSuperUserByDefault && !isMariaDB) ''
|
||||
echo "ALTER USER root@localhost IDENTIFIED WITH auth_socket;" | ${cfg.package}/bin/mysql -u ${superUser} -N
|
||||
''}
|
||||
|
||||
${lib.optionalString (cfg.initialScript != null) ''
|
||||
# Execute initial script
|
||||
# using toString to avoid copying the file to nix store if given as path instead of string,
|
||||
|
|
@ -674,6 +669,11 @@ in
|
|||
cat ${toString cfg.initialScript} | ${cfg.package}/bin/mysql -u ${superUser} -N
|
||||
''}
|
||||
|
||||
# Secure root@localhost for MySQL/Percona on first initialization
|
||||
${lib.optionalString (cfg.secureSuperUserByDefault && !isMariaDB) ''
|
||||
echo "ALTER USER root@localhost IDENTIFIED WITH auth_socket;" | ${cfg.package}/bin/mysql -u ${superUser} -N
|
||||
''}
|
||||
|
||||
rm ${cfg.dataDir}/mysql_init
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -124,16 +124,7 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
systemd = {
|
||||
packages = [ pkgs.cosmic-session ];
|
||||
user.targets = {
|
||||
# TODO: remove when upstream has XDG autostart support
|
||||
cosmic-session = {
|
||||
wants = [ "xdg-desktop-autostart.target" ];
|
||||
before = [ "xdg-desktop-autostart.target" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
systemd.packages = [ pkgs.cosmic-session ];
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
fira
|
||||
|
|
|
|||
|
|
@ -341,5 +341,4 @@ in
|
|||
};
|
||||
};
|
||||
};
|
||||
meta.teams = [ lib.teams.matrix ];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ let
|
|||
};
|
||||
in
|
||||
{
|
||||
meta.maintainers = [ lib.maintainers.raitobezarius ];
|
||||
meta.maintainers = [ ];
|
||||
options.services.hebbot = {
|
||||
enable = mkEnableOption "hebbot";
|
||||
package = lib.mkPackageOption pkgs "hebbot" { };
|
||||
|
|
|
|||
|
|
@ -763,7 +763,6 @@ in
|
|||
];
|
||||
};
|
||||
serviceConfig.Type = "oneshot";
|
||||
serviceConfig.EnvironmentFile = "-/etc/switch-root.conf";
|
||||
description = "NixOS Activation";
|
||||
|
||||
script = # bash
|
||||
|
|
@ -771,14 +770,6 @@ in
|
|||
set -uo pipefail
|
||||
export PATH="/bin:${cfg.package.util-linux}/bin"
|
||||
|
||||
# A non-NixOS closure (e.g. init=/bin/sh) has no prepare-root;
|
||||
# initrd-find-nixos-closure records this as a non-empty NEW_INIT.
|
||||
# Skip activation and let initrd-switch-root hand over to it directly.
|
||||
if [ -n "''${NEW_INIT:-}" ]; then
|
||||
echo "$NEW_INIT is not a NixOS system - not activating"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
closure="$(realpath /nixos-closure)"
|
||||
|
||||
# Initialize the system
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ in
|
|||
)
|
||||
];
|
||||
|
||||
meta.maintainers = [ lib.maintainers.raitobezarius ];
|
||||
meta.maintainers = [ ];
|
||||
options.services.journald.gateway = {
|
||||
enable = lib.mkEnableOption "the HTTP gateway to the journal";
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ let
|
|||
};
|
||||
in
|
||||
{
|
||||
meta.maintainers = [ lib.maintainers.raitobezarius ];
|
||||
meta.maintainers = [ ];
|
||||
options.services.journald.remote = {
|
||||
enable = lib.mkEnableOption "receiving systemd journals from the network";
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ let
|
|||
format = pkgs.formats.systemd { };
|
||||
in
|
||||
{
|
||||
meta.maintainers = [ lib.maintainers.raitobezarius ];
|
||||
meta.maintainers = [ ];
|
||||
options.services.journald.upload = {
|
||||
enable = lib.mkEnableOption "uploading the systemd journal to a remote server";
|
||||
|
||||
|
|
|
|||
|
|
@ -71,10 +71,6 @@
|
|||
RequiresMountsFor = [
|
||||
"/sysroot/nix/store"
|
||||
];
|
||||
# find-etc only creates this symlink for a NixOS init. For a
|
||||
# non-NixOS init= (e.g. init=/bin/sh) it is absent, so skip the
|
||||
# mount instead of failing the whole initrd.
|
||||
ConditionPathExists = "/etc-metadata-image";
|
||||
};
|
||||
requires = [
|
||||
config.boot.initrd.systemd.services.initrd-find-etc.name
|
||||
|
|
@ -127,8 +123,6 @@
|
|||
"/run/nixos-etc-metadata"
|
||||
];
|
||||
DefaultDependencies = false;
|
||||
# Skip for a non-NixOS init=, see the metadata mount above.
|
||||
ConditionPathExists = "/etc-basedir";
|
||||
};
|
||||
}
|
||||
];
|
||||
|
|
@ -146,8 +140,6 @@
|
|||
# before the overlay is mounted.
|
||||
"/run/nixos-etc-metadata"
|
||||
];
|
||||
# Skip for a non-NixOS init=, see the metadata mount above.
|
||||
ConditionPathExists = "/etc-metadata-image";
|
||||
};
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
|
|
|
|||
|
|
@ -940,6 +940,7 @@ in
|
|||
localsend = runTest ./localsend.nix;
|
||||
locate = runTest ./locate.nix;
|
||||
login = runTest ./login.nix;
|
||||
login-nosuid = runTest ./login-nosuid.nix;
|
||||
logkeys = runTest ./logkeys.nix;
|
||||
logrotate = runTest ./logrotate.nix;
|
||||
loki = runTest ./loki.nix;
|
||||
|
|
@ -1645,7 +1646,6 @@ in
|
|||
"i686-linux"
|
||||
] ./initrd-network-openvpn { systemdStage1 = true; };
|
||||
systemd-initrd-networkd-ssh = runTest ./systemd-initrd-networkd-ssh.nix;
|
||||
systemd-initrd-non-nixos = runTest ./systemd-initrd-non-nixos.nix;
|
||||
systemd-initrd-shutdown = runTest {
|
||||
imports = [ ./systemd-shutdown.nix ];
|
||||
_module.args.systemdStage1 = true;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import ./make-test-python.nix (
|
|||
{ lib, ... }:
|
||||
{
|
||||
name = "listmonk";
|
||||
meta.maintainers = with lib.maintainers; [ raitobezarius ];
|
||||
meta.maintainers = [ ];
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
|
|
|
|||
105
nixos/tests/login-nosuid.nix
Normal file
105
nixos/tests/login-nosuid.nix
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
{
|
||||
name = "login-nosuid";
|
||||
meta = {
|
||||
maintainers = [ ];
|
||||
};
|
||||
|
||||
# node.pkgsReadOnly = false; # needed when overriding pam to debug mode
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
security.enableWrappers = false;
|
||||
systemd.settings.Manager.NoNewPrivileges = true;
|
||||
security.account-utils.enable = true;
|
||||
users.mutableUsers = true;
|
||||
security.account-utils.extraArgs = [
|
||||
"-v"
|
||||
"--debug"
|
||||
];
|
||||
security.loginDefs.chfnRestrict = "f"; # allow allice to change name
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.which
|
||||
pkgs.fish # environment.shells does not actually link fish to /run/current-system/sw/bin, causing chsh to fail unexpectedly
|
||||
];
|
||||
environment.shells = [ pkgs.fish ];
|
||||
|
||||
# pam debug without giant rebuild
|
||||
# system.replaceDependencies.replacements = [
|
||||
# {
|
||||
# oldDependency = pkgs.linux-pam;
|
||||
# newDependency = pkgs.linux-pam.override { debugMode = true; };
|
||||
# }
|
||||
# ];
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.start(allow_reboot = True)
|
||||
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.wait_until_succeeds("pgrep -f 'agetty.*tty1'")
|
||||
machine.screenshot("postboot")
|
||||
|
||||
with subtest("account-utils passwd has priority"):
|
||||
passwd_path = machine.succeed("realpath $(which passwd)")
|
||||
print(f"passwd path is: {passwd_path}")
|
||||
assert "account-utils" in passwd_path
|
||||
|
||||
with subtest("create user"):
|
||||
machine.succeed("useradd -m alice")
|
||||
machine.succeed("(echo foobar; echo foobar) | passwd alice")
|
||||
|
||||
with subtest("Check whether switching VTs works"):
|
||||
machine.fail("pgrep -f 'agetty.*tty2'")
|
||||
machine.send_key("alt-f2")
|
||||
machine.wait_until_succeeds("[ $(fgconsole) = 2 ]")
|
||||
machine.wait_for_unit("getty@tty2.service")
|
||||
machine.wait_until_succeeds("pgrep -f 'agetty.*tty2'")
|
||||
|
||||
with subtest("Log in as alice on a virtual console"):
|
||||
machine.wait_until_tty_matches("2", "login: ")
|
||||
machine.send_chars("alice\n")
|
||||
machine.wait_until_tty_matches("2", "login: alice")
|
||||
machine.wait_until_succeeds("pgrep login")
|
||||
machine.wait_until_tty_matches("2", "Password: ")
|
||||
machine.sleep(1) # something is racy here, so lets just sleep a bit... Not great, but seems to work
|
||||
machine.send_chars("foobar\n")
|
||||
machine.wait_until_succeeds("pgrep -u alice bash")
|
||||
machine.send_chars("touch done\n")
|
||||
machine.wait_for_file("/home/alice/done")
|
||||
|
||||
with subtest("Systemd gives and removes device ownership as needed"):
|
||||
machine.succeed("getfacl /dev/snd/timer | grep -q alice")
|
||||
machine.send_key("alt-f1")
|
||||
machine.wait_until_succeeds("[ $(fgconsole) = 1 ]")
|
||||
machine.fail("getfacl /dev/snd/timer | grep -q alice")
|
||||
machine.succeed("chvt 2")
|
||||
machine.wait_until_succeeds("getfacl /dev/snd/timer | grep -q alice")
|
||||
|
||||
with subtest("User can change their login shell"):
|
||||
machine.send_chars("clear\n") # remove previous password prompts
|
||||
machine.send_chars("chsh -s /run/current-system/sw/bin/fish\n")
|
||||
machine.wait_until_tty_matches("2", "Password: ")
|
||||
machine.send_chars("foobar\n")
|
||||
machine.wait_until_fails("pgrep pwupdd")
|
||||
login_shell = machine.succeed("getent passwd alice | cut -d: -f7").strip()
|
||||
print(f"login shell of user alice: {login_shell}")
|
||||
assert "/run/current-system/sw/bin/fish" == login_shell
|
||||
|
||||
with subtest("User can change their name"):
|
||||
machine.send_chars("clear\n") # remove previous password prompts
|
||||
machine.send_chars("chfn -f 'Alice in Wonderland'\n")
|
||||
machine.wait_until_tty_matches("2", "Password: ")
|
||||
machine.send_chars("foobar\n")
|
||||
machine.wait_until_fails("pgrep pwupdd")
|
||||
full_name = machine.succeed("getent passwd alice | cut -d: -f5").strip()
|
||||
print(f"full name of user alice: {full_name}")
|
||||
assert "Alice in Wonderland" == full_name
|
||||
|
||||
with subtest("Virtual console logout"):
|
||||
machine.send_chars("exit\n")
|
||||
machine.wait_until_fails("pgrep -u alice bash")
|
||||
machine.screenshot("getty")
|
||||
'';
|
||||
}
|
||||
|
|
@ -31,9 +31,6 @@ let
|
|||
in
|
||||
{
|
||||
name = "pantalaimon";
|
||||
meta = {
|
||||
maintainers = pkgs.lib.teams.matrix.members;
|
||||
};
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [
|
||||
cransom
|
||||
raitobezarius
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,68 +0,0 @@
|
|||
{ lib, pkgs, ... }:
|
||||
let
|
||||
marker = "REACHED NON-NIXOS INIT AS PID 1";
|
||||
|
||||
# A non-NixOS init (no prepare-root). We use a store path, not literal
|
||||
# /bin/sh: a fresh disk has no /bin/sh yet (it is created by the activation a
|
||||
# non-NixOS init skips), while the store is always mounted; init=/bin/sh works
|
||||
# the same on a real system. Writes a marker, then stays alive so PID 1 lives.
|
||||
nonNixosInit = pkgs.writeShellScriptBin "non-nixos" ''
|
||||
echo "${marker}" > /dev/console
|
||||
exec ${pkgs.coreutils}/bin/sleep infinity
|
||||
'';
|
||||
|
||||
common = {
|
||||
boot.initrd.systemd.enable = true;
|
||||
|
||||
virtualisation = {
|
||||
# tmpfs root, like real non-NixOS closure init= microvm consumers.
|
||||
diskImage = null;
|
||||
|
||||
graphics = false;
|
||||
};
|
||||
|
||||
# Speed up wait_for_console.
|
||||
boot.consoleLogLevel = lib.mkForce 3;
|
||||
boot.initrd.systemd.managerEnvironment.SYSTEMD_LOG_LEVEL = "warning";
|
||||
|
||||
# switch-root needs an os-release on the target root. A real system has one
|
||||
# on disk; our fresh tmpfs does not, so create it.
|
||||
boot.initrd.systemd.tmpfiles.settings."10-os-release"."/sysroot/etc/os-release".f = {
|
||||
mode = "0644";
|
||||
argument = "ID=test-non-nixos";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
name = "systemd-initrd-non-nixos";
|
||||
|
||||
nodes = {
|
||||
bashActivation = common;
|
||||
|
||||
nixosInit = {
|
||||
imports = [ common ];
|
||||
system.nixos-init.enable = true;
|
||||
system.etc.overlay.enable = true;
|
||||
services.userborn.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
import os
|
||||
|
||||
# The last init= on the cmdline wins; QEMU_KERNEL_PARAMS is appended after
|
||||
# the default one, so this boots our non-NixOS init.
|
||||
os.environ["QEMU_KERNEL_PARAMS"] = "init=${lib.getExe nonNixosInit}"
|
||||
|
||||
start_all()
|
||||
|
||||
# If a code path does not skip the non-NixOS init, switch-root is blocked and
|
||||
# the machine drops to emergency mode: the marker never appears and the wait
|
||||
# times out.
|
||||
with subtest("bash initrd-nixos-activation skips a non-NixOS init"):
|
||||
bashActivation.wait_for_console_text("${marker}", timeout=300)
|
||||
|
||||
with subtest("nixos-init switches to a non-NixOS init directly"):
|
||||
nixosInit.wait_for_console_text("${marker}", timeout=300)
|
||||
'';
|
||||
}
|
||||
|
|
@ -4,7 +4,6 @@
|
|||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [
|
||||
minijackson
|
||||
raitobezarius
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [
|
||||
minijackson
|
||||
raitobezarius
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ in
|
|||
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
minijackson
|
||||
raitobezarius
|
||||
];
|
||||
|
||||
node.pkgsReadOnly = false;
|
||||
|
|
|
|||
|
|
@ -13,13 +13,13 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "deadbeef-vgmstream-plugin";
|
||||
version = "2026-05-24";
|
||||
version = "2026-06-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jchv";
|
||||
repo = "deadbeef-vgmstream";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-wuyqAAcNQZH7HeDve4ZXXK5q28lFfSYracCVuGjxfbw=";
|
||||
hash = "sha256-pX6uhrLgJ2sWwm2tR45YuYbICrP8fKgOD/TXV79bHn4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
|
|
|||
31
pkgs/applications/editors/jupyter-kernels/r-ark/default.nix
Normal file
31
pkgs/applications/editors/jupyter-kernels/r-ark/default.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ ark }:
|
||||
|
||||
# Jupyter notebook:
|
||||
# nix shell --impure --expr 'with import ./. {}; [ (jupyter.override { definitions.r = r-ark-kernel.definition; }) ]' -c jupyter-notebook
|
||||
|
||||
{
|
||||
definition = {
|
||||
displayName = "Ark R Kernel";
|
||||
argv = [
|
||||
"${ark}/bin/ark"
|
||||
"--connection_file"
|
||||
"{connection_file}"
|
||||
"--session-mode"
|
||||
"notebook"
|
||||
];
|
||||
language = "R";
|
||||
# Ark logs at INFO to stderr by default, which includes Jupyter messages.
|
||||
# The notebook forwards this to the cell output, so quiet it to warnings.
|
||||
#
|
||||
# The `ark::console::console_comm=error` directive additionally silences a
|
||||
# per-cell "UI comm is absent during dispatch" warning: after every execute,
|
||||
# ark unconditionally tries to push an environment-pane update over the
|
||||
# Positron-only `positron.ui` comm, which a plain Jupyter frontend never
|
||||
# opens.
|
||||
env = {
|
||||
RUST_LOG = "ark=warn,ark::console::console_comm=error";
|
||||
};
|
||||
logo32 = null;
|
||||
logo64 = null;
|
||||
};
|
||||
}
|
||||
|
|
@ -21,26 +21,26 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
|
|||
sources = {
|
||||
"x86_64-linux" = {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-TEEv8R6VXuOhcX2OgTKY7A8L2akisJLsx6I6bUdV3a0=";
|
||||
hash = "sha256-/ns84fHAyTY7sSvhUNzq1XQYq2Xy303zs2BxJY8DBVA=";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-wis4QqTuCiRAVpoGp+Ds83lWPsNUUPmXbZcYiWuY2zg=";
|
||||
hash = "sha256-U69X5lpeJaeNVL4WWzCUpI6IfbKSJXGpl30AYnx1fBQ=";
|
||||
};
|
||||
"x86_64-darwin" = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-2njmUMYxFAaKzCdwM//S5D0fqVZhIKG0JzbT1ye4Sr4=";
|
||||
hash = "sha256-DHE09NtGNOjB0HdBqTKRtDsZXpxb651kiVGhRwO1tBU=";
|
||||
};
|
||||
"aarch64-darwin" = {
|
||||
arch = "darwin-arm64";
|
||||
hash = "sha256-+cJhcXufpiNrpdL+HH3mW+rrzb7Si/4LGvoce1o0c/w=";
|
||||
hash = "sha256-5YIZVBMsoF0bWP27sVEVHAaAiqvmoSUgdbc8wsqUCLA=";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
name = "claude-code";
|
||||
publisher = "anthropic";
|
||||
version = "2.1.186";
|
||||
version = "2.1.187";
|
||||
}
|
||||
// sources.${stdenvNoCC.hostPlatform.system}
|
||||
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");
|
||||
|
|
|
|||
|
|
@ -38,6 +38,10 @@
|
|||
webkitgtk_4_1,
|
||||
ripgrep,
|
||||
which,
|
||||
libxtst,
|
||||
libjpeg8,
|
||||
pipewire,
|
||||
libei,
|
||||
|
||||
# needed to fix "Save as Root"
|
||||
asar,
|
||||
|
|
@ -257,6 +261,10 @@ stdenv.mkDerivation (
|
|||
systemdLibs
|
||||
webkitgtk_4_1
|
||||
libxkbfile
|
||||
libxtst
|
||||
libjpeg8.out
|
||||
pipewire
|
||||
libei
|
||||
];
|
||||
|
||||
runtimeDependencies = lib.optionals stdenv.hostPlatform.isLinux [
|
||||
|
|
|
|||
|
|
@ -35,17 +35,17 @@ let
|
|||
|
||||
hash =
|
||||
{
|
||||
x86_64-linux = "sha256-L0o9+vxfAkmtOHJvmf0G8WIbp3bXjAuuIAtTtFvbwjQ=";
|
||||
x86_64-darwin = "sha256-WYcRDrFLEjwyQhVdNASz3JUQlLuubDuPjBXa/ROs3h8=";
|
||||
aarch64-linux = "sha256-3CBrenqZs35gMWmVtI//4w0JGSKP8cbu3cJH14P4aEU=";
|
||||
aarch64-darwin = "sha256-0JVfgcYxgdaeWfeGFrfG3qxpWHilQte/dLiW33yxm8o=";
|
||||
armv7l-linux = "sha256-O8nDg1aJ0IbjbRS5kiNoFHzciyHErKK8PP+uujzJOxk=";
|
||||
x86_64-linux = "sha256-TTulHpCiT2eay2tb7e1ub164rgttBnB36Cc4JVoxf08=";
|
||||
x86_64-darwin = "sha256-fkJGd9dSX5OZ9peHbLha43mYBeEFsyd7rLprRajc60I=";
|
||||
aarch64-linux = "sha256-AOHmrVo5Q2iE6V/nHRniQVXfhDcL7bzBKdXfe8oZFP0=";
|
||||
aarch64-darwin = "sha256-dMSYvcryDd8Wqu8GHwnrp5pyRJwLzpV9BDLnpyWcxG0=";
|
||||
armv7l-linux = "sha256-L48bXLyX2dzHqcmJ752RLE8XUxrQRBLGhxdZwUO8mjw=";
|
||||
}
|
||||
.${system} or throwSystem;
|
||||
|
||||
# Please backport all compatible updates to the stable release.
|
||||
# This is important for the extension ecosystem.
|
||||
version = "1.124.2";
|
||||
version = "1.125.0";
|
||||
|
||||
# The update server (update.code.visualstudio.com) expects the version path
|
||||
# segment in X.Y.Z form, so we normalize X.Y to X.Y.0 (e.g. "1.110" → "1.110.0").
|
||||
|
|
@ -53,7 +53,7 @@ let
|
|||
downloadVersion = lib.versions.pad 3 version;
|
||||
|
||||
# This is used for VS Code - Remote SSH test
|
||||
rev = "6928394f91b684055b873eecb8bc281365131f1c";
|
||||
rev = "93cfdd489c3b228840d0f86ec77c3636277c93ea";
|
||||
in
|
||||
buildVscode {
|
||||
pname = "vscode" + lib.optionalString isInsiders "-insiders";
|
||||
|
|
@ -86,7 +86,7 @@ buildVscode {
|
|||
src = fetchurl {
|
||||
name = "vscode-server-${rev}.tar.gz";
|
||||
url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable";
|
||||
hash = "sha256-S4RcYGjK9vEtPp+vTNFV4SN+7osYzfuCiXmQC39PYhI=";
|
||||
hash = "sha256-IKTCVqR+SA2nAaIGHwde6dWbcDPgp2mlXKYi9DK5mCE=";
|
||||
};
|
||||
stdenv = stdenvNoCC;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -8,13 +8,13 @@
|
|||
}:
|
||||
mkLibretroCore {
|
||||
core = "flycast";
|
||||
version = "0-unstable-2026-06-12";
|
||||
version = "0-unstable-2026-06-23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "flyinghead";
|
||||
repo = "flycast";
|
||||
rev = "c0f2cf4319d6c77d577599906ca0a90627a3afc8";
|
||||
hash = "sha256-ie0mP7IcvWsFX/k0UhJ6eMkdyDq69W8aCcjwkAoL5II=";
|
||||
rev = "59ab660649d933f40cf281656ba949eb4c835d73";
|
||||
hash = "sha256-Hwav4vHppInUUbiSch3J84P7HIYkQ+DM431fFdq1qEg=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
"chromium": {
|
||||
"version": "149.0.7827.155",
|
||||
"version": "149.0.7827.196",
|
||||
"chromedriver": {
|
||||
"version": "149.0.7827.156",
|
||||
"hash_darwin": "sha256-V7ZBijHsPzyphJPipWlIcU5Mb9l1OWzLc6PzxFKFuR8=",
|
||||
"hash_darwin_aarch64": "sha256-sUG2Qg+nPIrYQC0iKNK78O1l92qTSDbRnJFfrqJMpts="
|
||||
"version": "149.0.7827.197",
|
||||
"hash_darwin": "sha256-tN7s6s/pbfAGRCMcoT3QWYHD8QRq2gcHfFSXoSG9V5Y=",
|
||||
"hash_darwin_aarch64": "sha256-DZ8CZ4Obp67Zo2m4iyqUnShyhTK8+/75cJ/WmZZqQhE="
|
||||
},
|
||||
"deps": {
|
||||
"depot_tools": {
|
||||
|
|
@ -21,8 +21,8 @@
|
|||
"DEPS": {
|
||||
"src": {
|
||||
"url": "https://chromium.googlesource.com/chromium/src.git",
|
||||
"rev": "07b52360cc15066f987c910ab34dfbcd4a8778d2",
|
||||
"hash": "sha256-D9RKH0kzEfaMsCDnFFIGCGLyfhghnGMOLA0XmOa9MtI=",
|
||||
"rev": "43eb30368c6ca3d14d540487954abb2780aeae3a",
|
||||
"hash": "sha256-pwSfASgR4SiQTJBERhOVyR8mANYJk67f+u2pmCCW6ko=",
|
||||
"recompress": true
|
||||
},
|
||||
"src/third_party/clang-format/script": {
|
||||
|
|
@ -92,8 +92,8 @@
|
|||
},
|
||||
"src/third_party/angle": {
|
||||
"url": "https://chromium.googlesource.com/angle/angle.git",
|
||||
"rev": "591ee1999d950f2bc54be89651eb62c8d7925314",
|
||||
"hash": "sha256-crooDCkJ6voJyDBIUvtjmXnA4xOx7YmGltuf2ulTLIk="
|
||||
"rev": "355cc61af2aadd8f0494800325b2bf9908138108",
|
||||
"hash": "sha256-fgaCyO0oaz90aTaWMHH8ocySA0hXDHsPEl6vtMj4BY0="
|
||||
},
|
||||
"src/third_party/angle/third_party/glmark2/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2",
|
||||
|
|
@ -132,8 +132,8 @@
|
|||
},
|
||||
"src/third_party/dawn": {
|
||||
"url": "https://dawn.googlesource.com/dawn.git",
|
||||
"rev": "5f4c5ef509c5ffa65822302341cf9b2ccad471f9",
|
||||
"hash": "sha256-h+0Gep+RWTTEVoRrXCRDCtHdbYlSYdNK1botahtqUX0="
|
||||
"rev": "54b4153cfef88e048f365f99b962478f0087dfe8",
|
||||
"hash": "sha256-Bv30zz/pCNVzUl+mKCpusWc94poytv9ZFelZIcs+2B8="
|
||||
},
|
||||
"src/third_party/dawn/third_party/glfw3/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
|
||||
|
|
@ -817,8 +817,8 @@
|
|||
},
|
||||
"src/v8": {
|
||||
"url": "https://chromium.googlesource.com/v8/v8.git",
|
||||
"rev": "6511f6cfab1f24c360d0fb737d205c27da48a623",
|
||||
"hash": "sha256-Dpe0Z/zjdPlOlqi85c9QSr7rLs7dww+a/BY68B2MTCw="
|
||||
"rev": "933ce636c562cd54d68e7f7c93ab5cdffd685fca",
|
||||
"hash": "sha256-zYArO6QS9nDIVWPINRVaDN1uX8X/wchBDeZHPZnwHYk="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -101,11 +101,11 @@
|
|||
"vendorHash": "sha256-quoFrJbB1vjz+MdV+jnr7FPACHuUe5Gx9POLubD2IaM="
|
||||
},
|
||||
"baidubce_baiducloud": {
|
||||
"hash": "sha256-kA2s+STTaax/PEevdHdbGzhQcFPJFRin6ALu1FkRzsg=",
|
||||
"hash": "sha256-vSEPf0r7R5anuaTsAJFIx0GPTtrSKbRqqZoQA67Q2C0=",
|
||||
"homepage": "https://registry.terraform.io/providers/baidubce/baiducloud",
|
||||
"owner": "baidubce",
|
||||
"repo": "terraform-provider-baiducloud",
|
||||
"rev": "v1.23.3",
|
||||
"rev": "v1.23.5",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
|
|
@ -1157,13 +1157,13 @@
|
|||
"vendorHash": null
|
||||
},
|
||||
"sacloud_sakuracloud": {
|
||||
"hash": "sha256-qeFN+JMs/TLV/oPFjMjpUmqv6fTiY+qREXQNYHMk8vY=",
|
||||
"hash": "sha256-mk5tmlx8UZXedRbSKmSg9YqX9MJFWsSrMea1dirL+HI=",
|
||||
"homepage": "https://registry.terraform.io/providers/sacloud/sakuracloud",
|
||||
"owner": "sacloud",
|
||||
"repo": "terraform-provider-sakuracloud",
|
||||
"rev": "v2.35.1",
|
||||
"rev": "v2.36.0",
|
||||
"spdx": "Apache-2.0",
|
||||
"vendorHash": "sha256-w2NSJv6BY7S5KHeBttxqY2cMR+yPvr2IsC5X4aJAo3A="
|
||||
"vendorHash": "sha256-vBcPWjugjqyuUdvxNQN1oC8V5D2SeW2WR0/c6OlgaXU="
|
||||
},
|
||||
"sap-cloud-infrastructure_sci": {
|
||||
"hash": "sha256-eQA4mY+Rx5PLbTgGqfefYFc5gZKIvt1w2eag8ipE0PI=",
|
||||
|
|
|
|||
|
|
@ -200,8 +200,8 @@ rec {
|
|||
mkTerraform = attrs: pluggable (generic attrs);
|
||||
|
||||
terraform_1 = mkTerraform {
|
||||
version = "1.15.6";
|
||||
hash = "sha256-FH5s0uyRESytv/1xloU3HXuH2ApjBC3FfEqFqIgBgFs=";
|
||||
version = "1.15.7";
|
||||
hash = "sha256-FF3LEovWjEDrKp6e6opRfCt8c4wghva3mjN97vCxq3E=";
|
||||
vendorHash = "sha256-3y9+KCmvskJ24X4F6gSLglmsl4hUlvzBb/ep4kcbS8A=";
|
||||
patches = [ ./provider-path-0_15.patch ];
|
||||
passthru = {
|
||||
|
|
|
|||
|
|
@ -64,7 +64,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
meta = {
|
||||
description = "Lightweight matrix client with legacy and mobile browser support";
|
||||
homepage = "https://github.com/element-hq/hydrogen-web";
|
||||
teams = [ lib.teams.matrix ];
|
||||
license = lib.licenses.asl20;
|
||||
platforms = lib.platforms.all;
|
||||
inherit (olm.meta) knownVulnerabilities;
|
||||
|
|
|
|||
|
|
@ -17,13 +17,13 @@ in
|
|||
buildKodiAddon rec {
|
||||
pname = "jellycon";
|
||||
namespace = "plugin.video.jellycon";
|
||||
version = "1.0.0";
|
||||
version = "1.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jellyfin";
|
||||
repo = "jellycon";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-1o9mkMjlLDIcokpTqDKmFlCOF1XjrVOxlFfy0bpZolc=";
|
||||
sha256 = "sha256-TLJalH3b1EYoIbnUhnHl8A9EF2Q6dDy0M2hl9je0K54=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
|||
|
|
@ -10,13 +10,13 @@
|
|||
buildKodiAddon rec {
|
||||
pname = "youtube";
|
||||
namespace = "plugin.video.youtube";
|
||||
version = "7.4.3";
|
||||
version = "7.4.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "anxdpanic";
|
||||
repo = "plugin.video.youtube";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-FUfDUyaYHIeu9thCx19huLFnDO7Yl3RKIbfUH2I+SQI=";
|
||||
hash = "sha256-epDKZhITQAv3bpS7CGN2Rj35/AamyZo5yzhkfu72ipw=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
|||
|
|
@ -270,7 +270,6 @@ edk2.mkDerivation projectDscPath (finalAttrs: {
|
|||
platforms = metaPlatforms;
|
||||
maintainers = with lib.maintainers; [
|
||||
adamcstephens
|
||||
raitobezarius
|
||||
mjoerg
|
||||
sigmasquadron
|
||||
];
|
||||
|
|
|
|||
77
pkgs/by-name/ac/account-utils/package.nix
Normal file
77
pkgs/by-name/ac/account-utils/package.nix
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
linux-pam,
|
||||
systemdLibs,
|
||||
libcap,
|
||||
libxcrypt,
|
||||
libeconf,
|
||||
libselinux,
|
||||
docbook-xsl-ns,
|
||||
libxslt,
|
||||
nixosTests,
|
||||
}:
|
||||
let
|
||||
selinuxSupport = lib.meta.availableOn stdenv.hostPlatform libselinux;
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "account-utils";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "thkukuk";
|
||||
repo = "account-utils";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-9l+y7FLb0IZXXp4RstlhNR6yA7b4b831obFuiVtO9+k=";
|
||||
};
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
libxslt
|
||||
docbook-xsl-ns
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
linux-pam
|
||||
systemdLibs
|
||||
libxcrypt
|
||||
libeconf
|
||||
libcap
|
||||
]
|
||||
++ lib.optional selinuxSupport libselinux;
|
||||
|
||||
mesonFlags = [
|
||||
(lib.mesonEnable "selinux" selinuxSupport)
|
||||
(lib.mesonOption "c_args" "-ffat-lto-objects")
|
||||
];
|
||||
|
||||
passthru.tests = {
|
||||
inherit (nixosTests) login-nosuid;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Services, utilities and PAM modules, which allow authentication and account management on systems with the NoNewPrivs flag set (no setuid/setgid binaries)";
|
||||
homepage = "https://github.com/thkukuk/account-utils";
|
||||
changelog = "https://github.com/thkukuk/account-utils/releases/tag/v${finalAttrs.version}";
|
||||
license =
|
||||
with lib.licenses;
|
||||
AND [
|
||||
gpl2Plus
|
||||
lgpl21Plus
|
||||
bsd2
|
||||
];
|
||||
maintainers = with lib.maintainers; [ grimmauld ];
|
||||
platforms = lib.platforms.linux;
|
||||
# take precedence over shadow
|
||||
priority = -1;
|
||||
};
|
||||
})
|
||||
|
|
@ -6,16 +6,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "adrs";
|
||||
version = "0.7.6";
|
||||
version = "0.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "joshrotenberg";
|
||||
repo = "adrs";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-PB/BuZP2pvYJCjaazEPs9d2ik8Fs7nuTnHdLREsu+wQ=";
|
||||
hash = "sha256-OXym/S88/y4UNp/BqV6RJb3EBV/TeqYCRHYlZJehur4=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-RzX3moZog5BIppvWtQcU4Yauk4hZQfc8ZuFkvRs5jXA=";
|
||||
cargoHash = "sha256-gv/A2t0BjDsDySLOkUY8YIRS2tciRU8sbmjXdgSBiwE=";
|
||||
|
||||
meta = {
|
||||
description = "Command-line tool for managing Architectural Decision Records";
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
];
|
||||
doInstallCheck = true;
|
||||
|
||||
cargoBuildFlags = [ "-p air" ];
|
||||
cargoBuildFlags = [ "--package=air" ];
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
|
|
|
|||
|
|
@ -11,16 +11,16 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "aks-mcp-server";
|
||||
version = "0.0.18";
|
||||
version = "0.0.19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Azure";
|
||||
repo = "aks-mcp";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-h/zLbnc2ffcQkx+KE6vglaSG6QAySZSg8EB4zyqH4sg=";
|
||||
hash = "sha256-Zu/caWrTuyzS4ejJ5LTOCyLTsmJOFrkX0kUGM0zDfFs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-HYIEGnQOVNNVJxzoOiLTXwRFOBvCwikAwqky18VqFSQ=";
|
||||
vendorHash = "sha256-eipcHVKKHBOey2fUGB4lf2pE/wdwGgsbYvCrvDG1JK8=";
|
||||
|
||||
subPackages = [ "cmd/aks-mcp" ];
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@
|
|||
let
|
||||
alsa-ucm-conf-asahi = stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "alsa-ucm-conf-asahi";
|
||||
version = "8";
|
||||
version = "9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AsahiLinux";
|
||||
repo = "alsa-ucm-conf-asahi";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-FPrAzscc1ICSCQSqULaGLqG4UCq8GZU9XLV7TUSBBRM=";
|
||||
hash = "sha256-F+NiEP4EKLUVV2oHSVY+fkXlzXcLyywNOolUy9DO8sI=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ buildGoModule (finalAttrs: {
|
|||
pname = "andcli";
|
||||
version = "2.7.0";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
subPackages = [ "cmd/andcli" ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
|
|
|
|||
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
anki-utils.buildAnkiAddon (finalAttrs: {
|
||||
pname = "fsrs4anki-helper";
|
||||
version = "24.06.3-unstable-2026-04-14";
|
||||
version = "26.06.12-unstable-2026-06-08";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "open-spaced-repetition";
|
||||
repo = "fsrs4anki-helper";
|
||||
rev = "703c99f009fa0465237df248e2c83e43851d95b4";
|
||||
hash = "sha256-yF0hTPdipFwhV1CcEmRRXezxc4754XCnX0HINrCgScQ=";
|
||||
rev = "29208f220f21ff994c199712a6aaac47636773bf";
|
||||
hash = "sha256-qoOV6cxA+oidHaKtBPVJpoc+/hitoihMRp15+IYcRnw=";
|
||||
};
|
||||
|
||||
postFixup = ''
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "apm-cli";
|
||||
version = "0.18.0";
|
||||
version = "0.21.0";
|
||||
pyproject = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
|
@ -15,7 +15,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
|||
owner = "microsoft";
|
||||
repo = "apm";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-mHu5r08y3OUTJjnl5Xvb23yhoJu9DupoZhkhL74K6UE=";
|
||||
hash = "sha256-Wotyqsg/1nbjttMk+4wpGK76+kaL7j6oMH61NwsTuNc=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
|||
80
pkgs/by-name/ar/archisteamfarm/deps.json
generated
80
pkgs/by-name/ar/archisteamfarm/deps.json
generated
|
|
@ -281,8 +281,8 @@
|
|||
},
|
||||
{
|
||||
"pname": "Markdig.Signed",
|
||||
"version": "1.1.3",
|
||||
"hash": "sha256-luLhgpC0d2ZTtvoSvaH/yaIc/IDppyf4P8M7sGbExJw="
|
||||
"version": "1.2.0",
|
||||
"hash": "sha256-dC75KeDfJOretrOkaH1Ai/uEYWvxjBosn4NMEhD+LCo="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.ApplicationInsights",
|
||||
|
|
@ -291,8 +291,8 @@
|
|||
},
|
||||
{
|
||||
"pname": "Microsoft.AspNetCore.OpenApi",
|
||||
"version": "10.0.7",
|
||||
"hash": "sha256-WlAW49otxYzgrmuqHewUoBsjDcAZwhNz5WVbCT4EiIA="
|
||||
"version": "10.0.8",
|
||||
"hash": "sha256-v2E7nwc4Nac8Ns5cQ2KmzLash9AEMbfQbMo2bFy7oZM="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.CodeAnalysis.ResxSourceGenerator",
|
||||
|
|
@ -431,23 +431,23 @@
|
|||
},
|
||||
{
|
||||
"pname": "Microsoft.Testing.Extensions.Telemetry",
|
||||
"version": "2.2.2",
|
||||
"hash": "sha256-4rXpgfroh8MnLWjYxUtYo/VcErYe9gpCaz80np3r1CI="
|
||||
"version": "2.2.3",
|
||||
"hash": "sha256-e70IRoXt5Aiwhxwd6nay0SBQD3ESXcAGh0lCucNtCAE="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.Testing.Extensions.TrxReport",
|
||||
"version": "2.2.2",
|
||||
"hash": "sha256-IOgroCb3Wvwas4z2Xxy4ils5AswZpKT/wvjQM5e95ig="
|
||||
"version": "2.2.3",
|
||||
"hash": "sha256-guXkeZ4AcbP9uu87/9IpSuZZdt03mFxShU/z2avv3oY="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.Testing.Extensions.TrxReport.Abstractions",
|
||||
"version": "2.2.2",
|
||||
"hash": "sha256-aP+mw/Q5U6lfNmMJCzLqVMpZ+TnBMTqXH0VGhR2FvbI="
|
||||
"version": "2.2.3",
|
||||
"hash": "sha256-eLb2Sm0lzQkgkdFdcZ76aIGShIf4lRPmpcMauUWN5QE="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.Testing.Extensions.VSTestBridge",
|
||||
"version": "2.2.2",
|
||||
"hash": "sha256-rtyA0w70swCKfz+ly6ev/BlNXH8WUHurfxsaWoo1LbA="
|
||||
"version": "2.2.3",
|
||||
"hash": "sha256-bSNPv1gAWEU7DVtqYS1qjbBN3lu9TTh6+/nDQCcIIHk="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.Testing.Platform",
|
||||
|
|
@ -456,13 +456,13 @@
|
|||
},
|
||||
{
|
||||
"pname": "Microsoft.Testing.Platform",
|
||||
"version": "2.2.2",
|
||||
"hash": "sha256-azYgL1c9oVE1JDYs0HUWTClaIumw1xvxgmNz4Mx0q30="
|
||||
"version": "2.2.3",
|
||||
"hash": "sha256-Mz///qqkbdQsgpIjjAiHf/ptvjeQIsO6S99+tg+F8Fw="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.Testing.Platform.MSBuild",
|
||||
"version": "2.2.2",
|
||||
"hash": "sha256-uuhiI0aGFpM+I2ASh99rsfsRhKf8b/JUNx4Hcd2Ac6Q="
|
||||
"version": "2.2.3",
|
||||
"hash": "sha256-mwt+i2y8UV30JrssGCx9kgjcZ+upWhAxEBs5fCXA/6k="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.TestPlatform.ObjectModel",
|
||||
|
|
@ -476,23 +476,23 @@
|
|||
},
|
||||
{
|
||||
"pname": "MSTest",
|
||||
"version": "4.2.2",
|
||||
"hash": "sha256-hTD140FHBWOoUxKmCkmL261gvwgJRXnzAwSl37sp6XI="
|
||||
"version": "4.2.3",
|
||||
"hash": "sha256-G6agMAoiK8oMPTpq25i7zsUXXCDxGMP/UBU72Wky9t0="
|
||||
},
|
||||
{
|
||||
"pname": "MSTest.Analyzers",
|
||||
"version": "4.2.2",
|
||||
"hash": "sha256-m6FRWUdYM9tuNnm7ehY+j1wIr2i12+0LeK5JcpJdp5M="
|
||||
"version": "4.2.3",
|
||||
"hash": "sha256-XlSqWrZVG1nC/qDjNuSs51pM90nQ9QlQtwDKJQVsMPg="
|
||||
},
|
||||
{
|
||||
"pname": "MSTest.TestAdapter",
|
||||
"version": "4.2.2",
|
||||
"hash": "sha256-QFjHNHVyijmuq29MuhUNMnaWEcJWPWGVp21BQj0Hb7M="
|
||||
"version": "4.2.3",
|
||||
"hash": "sha256-ckBpU7gg4LY2ZBPljRWz2yCj33vRf93Qm/JY7uGfeOs="
|
||||
},
|
||||
{
|
||||
"pname": "MSTest.TestFramework",
|
||||
"version": "4.2.2",
|
||||
"hash": "sha256-+yrzh3fmkvOMnqk+eYKQTC1267uKeUDcS3TV1+3Gnck="
|
||||
"version": "4.2.3",
|
||||
"hash": "sha256-og5IO5g/fXm1y9hSNkqZ+libfD9o0dRm/8I9CF0J2So="
|
||||
},
|
||||
{
|
||||
"pname": "Newtonsoft.Json",
|
||||
|
|
@ -586,8 +586,8 @@
|
|||
},
|
||||
{
|
||||
"pname": "Scalar.AspNetCore",
|
||||
"version": "2.14.11",
|
||||
"hash": "sha256-NOH8fyTW+uuvggup1581IwO1Gv1FyvpCQMsPWItBlwA="
|
||||
"version": "2.14.14",
|
||||
"hash": "sha256-/9lh1yFvp8/ROxdQcJEhEtFwrpOCdRNwFfz8B53epVk="
|
||||
},
|
||||
{
|
||||
"pname": "SteamKit2",
|
||||
|
|
@ -596,33 +596,33 @@
|
|||
},
|
||||
{
|
||||
"pname": "System.Composition",
|
||||
"version": "10.0.7",
|
||||
"hash": "sha256-+D0uPBsF3vIl1IU3DZ1aCWpdQompwSvyFLvxprUErAE="
|
||||
"version": "10.0.8",
|
||||
"hash": "sha256-sp1IzwdxzVZwEF3mOCkobc5SYUGm/u3FDZUPkekoxZs="
|
||||
},
|
||||
{
|
||||
"pname": "System.Composition.AttributedModel",
|
||||
"version": "10.0.7",
|
||||
"hash": "sha256-PxE1IuviKGncIzrCFNqhqFMNzEdnN5/A9kFHSyvg4P4="
|
||||
"version": "10.0.8",
|
||||
"hash": "sha256-6iUFdykgMj6yOG10qR3TOz6mrQnfDGsr4Q8WP65hBFU="
|
||||
},
|
||||
{
|
||||
"pname": "System.Composition.Convention",
|
||||
"version": "10.0.7",
|
||||
"hash": "sha256-oPAOsNnNF0tOXHZoxnQt7PC2R4f+iqmzYKg++zPCdaA="
|
||||
"version": "10.0.8",
|
||||
"hash": "sha256-MIQePJ3OkWpA07U+xH1PwiV88WtSGBaTxUrA1j4hD6Y="
|
||||
},
|
||||
{
|
||||
"pname": "System.Composition.Hosting",
|
||||
"version": "10.0.7",
|
||||
"hash": "sha256-bBoobvUuurRqog2nqchZKTwkIn7Weq7M3auboVgwALA="
|
||||
"version": "10.0.8",
|
||||
"hash": "sha256-SOAD0Yz8A/XJ8tEi7Q8DL9H7FzTcgg8HAbnZYKiyZNk="
|
||||
},
|
||||
{
|
||||
"pname": "System.Composition.Runtime",
|
||||
"version": "10.0.7",
|
||||
"hash": "sha256-sZTjqpSbbEy4KsRMDoEKvvfjHkl7IL9pcD2N8kFVWro="
|
||||
"version": "10.0.8",
|
||||
"hash": "sha256-hRkoJ8S1oD4FKjnaDYwfzX2Pys6QvGiiX6YxrdGgAyA="
|
||||
},
|
||||
{
|
||||
"pname": "System.Composition.TypedParts",
|
||||
"version": "10.0.7",
|
||||
"hash": "sha256-gqDp0guxUnnEJaB6I/9PSgxXWDbE5YhyrTa9Yu4s0OM="
|
||||
"version": "10.0.8",
|
||||
"hash": "sha256-NYo2dvMJ9WU0BKIGDkuIpFQHkbZE1sGJAtY8fINFpqo="
|
||||
},
|
||||
{
|
||||
"pname": "System.IO.Hashing",
|
||||
|
|
@ -631,8 +631,8 @@
|
|||
},
|
||||
{
|
||||
"pname": "System.Security.Cryptography.ProtectedData",
|
||||
"version": "10.0.7",
|
||||
"hash": "sha256-IhiXDRoBQil9KAVV97PiCOhiIQCSTIJuKQOOfBECSz0="
|
||||
"version": "10.0.8",
|
||||
"hash": "sha256-GYRQSkRnDWytMIQcoNrAVbJda5nzfbtg1HJuwRZVxH0="
|
||||
},
|
||||
{
|
||||
"pname": "Tmds.DBus.Protocol",
|
||||
|
|
|
|||
|
|
@ -21,13 +21,13 @@ in
|
|||
buildDotnetModule rec {
|
||||
pname = "archisteamfarm";
|
||||
# nixpkgs-update: no auto update
|
||||
version = "6.3.6.0";
|
||||
version = "6.3.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JustArchiNET";
|
||||
repo = "ArchiSteamFarm";
|
||||
rev = version;
|
||||
hash = "sha256-S2T741eOO0s8a3pikHz0hy/PBPpw5fmtpzGv0cmRk0I=";
|
||||
tag = version;
|
||||
hash = "sha256-C0n3e/t1Bq02vlrF/KyT7vlhtNDIbAsg9zAk9aKZ5/g=";
|
||||
};
|
||||
|
||||
dotnet-runtime = dotnetCorePackages.aspnetcore_10_0;
|
||||
|
|
@ -103,6 +103,7 @@ buildDotnetModule rec {
|
|||
|
||||
meta = {
|
||||
description = "Application with primary purpose of idling Steam cards from multiple accounts simultaneously";
|
||||
changelog = "https://github.com/JustArchiNET/ArchiSteamFarm/releases/tag/${src.tag}";
|
||||
homepage = "https://github.com/JustArchiNET/ArchiSteamFarm";
|
||||
license = lib.licenses.asl20;
|
||||
mainProgram = "ArchiSteamFarm";
|
||||
|
|
|
|||
55
pkgs/by-name/ar/ark/package.nix
Normal file
55
pkgs/by-name/ar/ark/package.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
makeBinaryWrapper,
|
||||
R,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "ark";
|
||||
version = "0.1.252";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "posit-dev";
|
||||
repo = "ark";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-AI8i15UMI+KSmweXkS/UYITZBOEDx/knjpK9SA2M+Ns=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-z9l0dgmZO6f63I/2pms4VMXMxO/9SAZSq1OFubGHIpw=";
|
||||
|
||||
# The amalthea crate bundles libzmq via the zeromq-src crate, which builds it
|
||||
# with CMake.
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
makeBinaryWrapper
|
||||
];
|
||||
|
||||
# Only build the `ark` binary, not the whole workspace's test/dev crates.
|
||||
cargoBuildFlags = [
|
||||
"--package"
|
||||
"ark"
|
||||
];
|
||||
|
||||
# Tests require a running R installation and network access.
|
||||
doCheck = false;
|
||||
|
||||
# Ark loads R dynamically at runtime, locating it via `R_HOME` or by running
|
||||
# `R RHOME`. Put R on PATH so the kernel works out of the box.
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/ark \
|
||||
--suffix PATH : ${lib.makeBinPath [ R ]}
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "R kernel for Jupyter applications, powering Positron's R support";
|
||||
homepage = "https://github.com/posit-dev/ark";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ thomasjm ];
|
||||
mainProgram = "ark";
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
})
|
||||
|
|
@ -9,13 +9,13 @@
|
|||
}:
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "asahi-audio";
|
||||
version = "3.4";
|
||||
version = "4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AsahiLinux";
|
||||
repo = "asahi-audio";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-7AuPkR/M1a4zB9+dJuOuv9uTp+kIqPlxVOXipsyGGz8=";
|
||||
hash = "sha256-Tp+yL7SbzowYcCrfI7UU+5GeIJtyBMuE7KhcYmA1+hw=";
|
||||
};
|
||||
|
||||
makeFlags = [
|
||||
|
|
|
|||
|
|
@ -8,16 +8,16 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "auth0-cli";
|
||||
version = "1.31.0";
|
||||
version = "1.32.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "auth0";
|
||||
repo = "auth0-cli";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-6+AMU77eHYy0AwPsHt/tgtzTQkyPfvZZw1yzvWXQX0s=";
|
||||
hash = "sha256-tRr0bCzijVG3+2n67jo7SNe4Oxxci0sRXhQct2645cI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-MzvoHXO8gDIzNqhQGgDEd8xXWF7971JLTKWt8TCldKI=";
|
||||
vendorHash = "sha256-ZwGIYjaCQikHMoy3bSnvNEk+REnKO6JdCiiSh8L0SDg=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
|
|
|||
|
|
@ -18,13 +18,13 @@
|
|||
|
||||
buildNpmPackage rec {
|
||||
pname = "basedpyright";
|
||||
version = "1.39.7";
|
||||
version = "1.39.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "detachhead";
|
||||
repo = "basedpyright";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-E4TR5deuPSf2YinrEzpP79Rq8zZHLJQUKiEsfUdMDOE=";
|
||||
hash = "sha256-8S83CTd/td7USKxfCI0cXd2gPBMivi4QMRQwVgxhs6w=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-humpJB+fv3+PITcPCz3uY2jNANb3P7sXy0lFP8Eg58I=";
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "blackfire";
|
||||
version = "2026.6.0";
|
||||
version = "2026.6.1";
|
||||
|
||||
src =
|
||||
passthru.sources.${stdenv.hostPlatform.system}
|
||||
|
|
@ -60,23 +60,23 @@ stdenv.mkDerivation rec {
|
|||
sources = {
|
||||
"x86_64-linux" = fetchurl {
|
||||
url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_amd64.deb";
|
||||
hash = "sha256-JPhh7LNiLZXLN5iycNobZ/uJQjOhKqqYSw9P78+/BKk=";
|
||||
hash = "sha256-doeqXoS0B7AyzyhkLB9wUC6iuD0c2KIhAIEPeYaDC5E=";
|
||||
};
|
||||
"i686-linux" = fetchurl {
|
||||
url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_i386.deb";
|
||||
hash = "sha256-uoqUDJ/bexqaRlf5Y692OGm91W1ErlS8Q8/l9MlsHwU=";
|
||||
hash = "sha256-bQWhiSw9/gGyGoLEyz6BHaRPNLxuqouiobBMfB5ytYk=";
|
||||
};
|
||||
"aarch64-linux" = fetchurl {
|
||||
url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_arm64.deb";
|
||||
hash = "sha256-kL9s17Bnt8UYj3IiX2b7e3OWSsRLq5TSzdK6OdByD40=";
|
||||
hash = "sha256-B+rhmnM2sVICVLDcYq2OEp402Wz6kywCRqeS95Vdzlw=";
|
||||
};
|
||||
"aarch64-darwin" = fetchurl {
|
||||
url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_arm64.pkg.tar.gz";
|
||||
hash = "sha256-p9D87uaDVu25SG4cclmzaq9oKaFDlIy8/XLx3rHuIQ4=";
|
||||
hash = "sha256-Ofs9raAtx/duS8dXWfvjKGzhJr3j9+gkH8lP/VLfnkE=";
|
||||
};
|
||||
"x86_64-darwin" = fetchurl {
|
||||
url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_amd64.pkg.tar.gz";
|
||||
hash = "sha256-ppCSvk259NNlujl9olyRlmwRdNbLu/uRs+gq71S79B8=";
|
||||
hash = "sha256-+rMiD/vFFIA8dR3quUnpr8uDNTdvnXyYjT8brgiOxBI=";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -10,14 +10,14 @@
|
|||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "blesh";
|
||||
version = "0.4.0-devel3-unstable-2026-05-28";
|
||||
version = "0.4.0-devel3-unstable-2026-06-21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "akinomyoga";
|
||||
repo = "ble.sh";
|
||||
rev = "f38850cb0add16f110341a517ff7c849adb43e57";
|
||||
rev = "6cffa910eccce252fa391875c7c03c94fb6f1b09";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-EtOCZvUkzstXaT7N9qe+oT7+7ExlREsobzY+ylNy/7Y=";
|
||||
hash = "sha256-CUIHfK1m00p6rBBNp/XqXifeRcG7BKpkdF7kl4+2tZY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
|||
|
|
@ -27,13 +27,13 @@ in
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "pds";
|
||||
version = "0.4.5001";
|
||||
version = "0.4.5006";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bluesky-social";
|
||||
repo = "pds";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-j7XNZYZHHj5HdtEuTAhNU9TD7S7eMILMflZJn0nDVaY=";
|
||||
hash = "sha256-Jb2qAB6P5KlRu4L99fcK/v0/Fspr8IFaFXuYg+PBxhM=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/service";
|
||||
|
|
@ -63,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
;
|
||||
inherit pnpm;
|
||||
fetcherVersion = 4;
|
||||
hash = "sha256-3/gjhQIMxI/mwqmKV1wZ6oMiCGHutXuDY2CFSN3QnE4=";
|
||||
hash = "sha256-YfwoUkTJJ2qANqwtSWKDGfFmahAtIDNyYFwCUE72oB0=";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
|
|
|
|||
84
pkgs/by-name/bo/bobby/package.nix
Normal file
84
pkgs/by-name/bo/bobby/package.nix
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
{
|
||||
cargo,
|
||||
desktop-file-utils,
|
||||
fetchFromGitHub,
|
||||
glib,
|
||||
gtk4,
|
||||
lib,
|
||||
libadwaita,
|
||||
meson,
|
||||
ninja,
|
||||
nix-update-script,
|
||||
pkg-config,
|
||||
rustc,
|
||||
rustPlatform,
|
||||
sqlite,
|
||||
stdenv,
|
||||
wrapGAppsHook4,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "bobby";
|
||||
version = "50.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hbons";
|
||||
repo = "bobby";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-/N7CmzPwUdGkHIZujCGW3LvsGM6DdXrcm2kH6XlVGDA=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-TT3ceAy44sfyKZ7wmH3C4nj5TyfiJlu4vBWAaGs+pGg=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gtk4
|
||||
libadwaita
|
||||
sqlite
|
||||
];
|
||||
|
||||
# favor sqlite from nixpkgs instead of a vendored variant in rusqlite
|
||||
postPatch = ''
|
||||
substituteInPlace Cargo.toml \
|
||||
--replace-fail ', features = ["bundled"]' ""
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cargo
|
||||
desktop-file-utils # for `update-desktop-database`
|
||||
gtk4 # for `gtk-update-icon-cache`
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
rustc
|
||||
rustPlatform.cargoSetupHook
|
||||
wrapGAppsHook4 # fix error: GLib-GIO-ERROR **: No GSettings schemas are installed on the system
|
||||
];
|
||||
|
||||
mesonCheckFlags = [
|
||||
"--print-errorlogs"
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/hbons/Bobby/blob/${finalAttrs.src.tag}/data/studio.planetpeanut.Bobby.metainfo.xml";
|
||||
description = "Browse SQLite files";
|
||||
donationPage = "https://planetpeanut.studio/sponsors";
|
||||
homepage = "https://apps.gnome.org/Bobby/";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [
|
||||
aiyion
|
||||
];
|
||||
teams = [ lib.teams.gnome-circle ];
|
||||
mainProgram = "bobby";
|
||||
};
|
||||
})
|
||||
|
|
@ -8,12 +8,12 @@
|
|||
|
||||
python3.pkgs.buildPythonApplication (finalAttrs: {
|
||||
pname = "bumpver";
|
||||
version = "2021.1110";
|
||||
version = "2026.1132";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit (finalAttrs) pname version;
|
||||
sha256 = "b6a0ddb78db7e00ae7ffe895bf8ef97f91e6310dfc1c4721896bdfd044b1cb03";
|
||||
sha256 = "sha256-gLIjwj/Km8ndVpt6RGgJSdNL7iOnOIYNmps28avjsOA=";
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
|
|
@ -21,6 +21,8 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
|
|||
--replace-fail "if any(arg.startswith(\"bdist\") for arg in sys.argv):" ""\
|
||||
--replace-fail "import lib3to6" ""\
|
||||
--replace-fail "package_dir = lib3to6.fix(package_dir)" ""
|
||||
|
||||
patchShebangs test/fixtures/hooks
|
||||
'';
|
||||
|
||||
build-system = with python3.pkgs; [
|
||||
|
|
@ -28,12 +30,10 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
|
|||
];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
pathlib2
|
||||
click
|
||||
toml
|
||||
lexid
|
||||
colorama
|
||||
setuptools
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
|
|
@ -42,11 +42,6 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
|
|||
mercurial
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# fails due to more aggressive setuptools version specifier validation
|
||||
"test_parse_default_pattern"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Bump version numbers in project files";
|
||||
homepage = "https://pypi.org/project/bumpver/";
|
||||
|
|
|
|||
|
|
@ -10,16 +10,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "c2patool";
|
||||
version = "0.26.67";
|
||||
version = "0.26.68";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "contentauth";
|
||||
repo = "c2pa-rs";
|
||||
tag = "c2patool-v${finalAttrs.version}";
|
||||
hash = "sha256-18gGrIleSpSwHohX+Qn6Zj6kPIzNri53tHIBlED5/LY=";
|
||||
hash = "sha256-0St3EoHvUQtfPF0LOLkbQ3C6NT/R+F9YhQoE0TpDTOc=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-YZKQmekJ0RxtyrLkCeiAry+m7j2jhxm0lsQ+Xi29nEw=";
|
||||
cargoHash = "sha256-lUHRGfI/GW9ZMEor5NPATt/ih6D/AhvGbL4H7FtyzDQ=";
|
||||
|
||||
# use the non-vendored openssl
|
||||
env.OPENSSL_NO_VENDOR = 1;
|
||||
|
|
|
|||
|
|
@ -45,6 +45,6 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
description = "Turing-complete language for creating provable programs for general computation";
|
||||
homepage = "https://github.com/starkware-libs/cairo";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ raitobezarius ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -11,16 +11,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "cargo-codspeed";
|
||||
version = "4.7.0";
|
||||
version = "5.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "CodSpeedHQ";
|
||||
repo = "codspeed-rust";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-6XSKAPLcxgnshkMuiSmw13tsE4keJ9h5DpxwidqMLbg=";
|
||||
hash = "sha256-F4QRTNS9mo8juXyCFAlETNEaZZu56bYYr8i464FYPd4=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-1AjODDI114CL/L8ZDFWDfPwxxxY9vgT/miSVsMLLSgE=";
|
||||
cargoHash = "sha256-it/4LSTGajQe5f47LCh9eDAf8ZNyFTGJJ4Z5N6klgNw=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
curl
|
||||
|
|
|
|||
|
|
@ -8,16 +8,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "charasay";
|
||||
version = "3.3.1";
|
||||
version = "3.3.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "latipun7";
|
||||
repo = "charasay";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-VkDOdZt0Z/kuBwFm5utXYsxT59a1uapU9ouzB1ymmXs=";
|
||||
hash = "sha256-8N3ToXpbDR+g19CT0q1J4QfQstBjS2QfX4IV2D7+ics=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-6AczT5VvOryOlcOMNFxcHqy8K1sm4tbhb6+LsCNHW14=";
|
||||
cargoHash = "sha256-yByNgG8JAdT5jVxe3ijLbmjE1c8YybPkiwMHOvpZPTM=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,6 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
homepage = "https://github.com/iden3/circom";
|
||||
changelog = "https://github.com/iden3/circom/blob/${finalAttrs.src.rev}/RELEASES.md";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ raitobezarius ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "clap";
|
||||
version = "1.2.8";
|
||||
version = "1.2.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "free-audio";
|
||||
repo = "clap";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-slvq7p15xCa7l2tvEaGPzDL8w6/8EI0DySC4Zp+c7tQ=";
|
||||
hash = "sha256-iQRy4+FNT2oun2pkl89A/bPZyv2R0YyF35IhkIwA1B0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
|||
|
|
@ -1,47 +1,47 @@
|
|||
{
|
||||
"version": "2.1.186",
|
||||
"commit": "6a56aff51d9e9faf62f26f2748501c2e32eec5e8",
|
||||
"buildDate": "2026-06-22T16:51:01Z",
|
||||
"version": "2.1.187",
|
||||
"commit": "6a53320fad5541a68d79e4b6c53677df77b98e33",
|
||||
"buildDate": "2026-06-23T17:07:42Z",
|
||||
"platforms": {
|
||||
"darwin-arm64": {
|
||||
"binary": "claude",
|
||||
"checksum": "463a79cc34a9787cff1b3361b4ec9e2dff928c18b077f41f0bb412e4cda78637",
|
||||
"size": 216811232
|
||||
"checksum": "a59a16ba4922adab7a145728f215d042184d349f5f7e72cddb7fc114250a4ce3",
|
||||
"size": 215994048
|
||||
},
|
||||
"darwin-x64": {
|
||||
"binary": "claude",
|
||||
"checksum": "9e17e23d451cbbc64cf4b9536c1d25efd86808512617c855091fa608f77c9899",
|
||||
"size": 224349952
|
||||
"checksum": "7f57b6935b4246d03cb7acee90dc22153083483a267da589c5c920dd04744c36",
|
||||
"size": 224795776
|
||||
},
|
||||
"linux-arm64": {
|
||||
"binary": "claude",
|
||||
"checksum": "817e5ff483568b78c49171be317b9b9190cade77248a5776e912789312961cb6",
|
||||
"size": 231782112
|
||||
"checksum": "b49be8a5e565bf2d45b50d2de62017b25462131acc9425d2fdb98b8f29c9dce2",
|
||||
"size": 232240864
|
||||
},
|
||||
"linux-x64": {
|
||||
"binary": "claude",
|
||||
"checksum": "6a6d5d23486597c93138941c9b68caa0fbcd2dcedbf49e29a9c8d83e3a1cb329",
|
||||
"size": 234436392
|
||||
"checksum": "bb02fcb33626f8c599d10d8bee38585d4cf8d4225c3b497869dee7454e7bf361",
|
||||
"size": 234874664
|
||||
},
|
||||
"linux-arm64-musl": {
|
||||
"binary": "claude",
|
||||
"checksum": "24906d06ab4cf312eb30a8d656a8d8c7fb22099ea8eb974e38ecfbc25d6631aa",
|
||||
"size": 225161416
|
||||
"checksum": "972fc2e0bc8104edb593ce7723d4414c0ed8e4df6d90ad26ae48097b1d910478",
|
||||
"size": 225620168
|
||||
},
|
||||
"linux-x64-musl": {
|
||||
"binary": "claude",
|
||||
"checksum": "d0cb255cfb03513f6099af40f045b5852a1d8a1b59d0f405d84d2a01da6c9598",
|
||||
"size": 229420432
|
||||
"checksum": "c5a783d13aac71d42324f2e9dcd395c266bd5774951faf0d94855c737024bee3",
|
||||
"size": 229858704
|
||||
},
|
||||
"win32-x64": {
|
||||
"binary": "claude.exe",
|
||||
"checksum": "6a286f0795d6dd46187b86e9124f819af35319169901cd883b80a75c47469516",
|
||||
"size": 225908896
|
||||
"checksum": "24964d08c5100bac6071352e5837101b333de1c1afefd2b8b0e7a60db6c0ef5c",
|
||||
"size": 226329760
|
||||
},
|
||||
"win32-arm64": {
|
||||
"binary": "claude.exe",
|
||||
"checksum": "245869d5e5242aabfde49b091628aa4b3e7546f2cac52e1d6feb221a820910bc",
|
||||
"size": 220571808
|
||||
"checksum": "04124c0ba09ece85a856de652e84386094c372f002ff767a94d4a43ecf776f96",
|
||||
"size": 220992160
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,18 +26,18 @@
|
|||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "codex";
|
||||
version = "0.141.0";
|
||||
version = "0.142.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openai";
|
||||
repo = "codex";
|
||||
tag = "rust-v${finalAttrs.version}";
|
||||
hash = "sha256-1ZOaZlwAkH6DJpxlInfbXpaqmsbOIOGrFoj2dYehBMA=";
|
||||
hash = "sha256-F8wlv0vSuljNFDgIzoeuVxvD0dk90z2FBtpBTMih7AA=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/codex-rs";
|
||||
|
||||
cargoHash = "sha256-bQPeRKTrNYeGCO20hpu+F37sScFOGr1EPOVf1E0FU+4=";
|
||||
cargoHash = "sha256-fvEFNE12J6zaLZrN6oQB8X+jXoKPSCWrL17Sl28+7/c=";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
|
|
|
|||
|
|
@ -15,20 +15,20 @@ let
|
|||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "conventional-changelog-cli";
|
||||
version = "7.2.0";
|
||||
version = "7.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "conventional-changelog";
|
||||
repo = "conventional-changelog";
|
||||
tag = "conventional-changelog-v${finalAttrs.version}";
|
||||
hash = "sha256-0Fee2sfLwxfE/MRLMUUMACTGVxnJJF1MPsWWzleVA3c=";
|
||||
hash = "sha256-1unB4/naGc/V1Fjc7Arn4DjnGvyCdicNFOofdgpvRUI=";
|
||||
};
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
inherit pnpm;
|
||||
fetcherVersion = 3;
|
||||
hash = "sha256-O91ypnycBwkfLSruezx9E5CrytguBdtmvgVhKFjUzvM=";
|
||||
hash = "sha256-khAAFQeWUkALdkEdjW3tvCi5KiF9lN202yhLcj8ey1o=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
|||
|
|
@ -41,7 +41,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [
|
||||
panicgh
|
||||
raitobezarius
|
||||
];
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -9,16 +9,16 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "crossplane-cli";
|
||||
version = "2.3.2";
|
||||
version = "2.3.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "crossplane";
|
||||
repo = "cli";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-9BlNhllLz4LHPMy6gkph5flztQZBHI1tIMlNa22YPh4=";
|
||||
hash = "sha256-X40vTjtai6zlZWvGG/wPt8us4AONcXZ9TxIZn2cPH2E=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-NHLryreDHxrqjo8VHR9R/MD8tDXYaZYyqgulxPOKUyA=";
|
||||
vendorHash = "sha256-WAGIhGW7R5BZuQmERbJhN3mFCLVSDsNqtAFYnrNo7XE=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
|
|
|||
|
|
@ -3,26 +3,37 @@
|
|||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
makeBinaryWrapper,
|
||||
}:
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "crowdsec";
|
||||
version = "1.7.7";
|
||||
version = "1.7.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "crowdsecurity";
|
||||
repo = "crowdsec";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-TG9YRKzht9OAnlDNxLNP8060v0klee6GY7vJCu6MugM=";
|
||||
hash = "sha256-2t9nxuqWNDAUOZHtfNkZ4ZFKXvv8k5LuvKrGNjpdGXc=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-BjkTMBrQPv8uZzme02WFdobuYdbe1RvRkZ8RjHGubo8=";
|
||||
vendorHash = "sha256-RDkttsV4PNOfjWPr4v+uIwdkmXYH83vkYFQQIO3CYGE=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
makeBinaryWrapper
|
||||
];
|
||||
|
||||
subPackages = [
|
||||
"cmd/crowdsec"
|
||||
"cmd/crowdsec-cli"
|
||||
"cmd/notification-dummy"
|
||||
"cmd/notification-email"
|
||||
"cmd/notification-file"
|
||||
"cmd/notification-http"
|
||||
"cmd/notification-sentinel"
|
||||
"cmd/notification-slack"
|
||||
"cmd/notification-splunk"
|
||||
];
|
||||
|
||||
ldflags = [
|
||||
|
|
@ -39,13 +50,12 @@ buildGoModule (finalAttrs: {
|
|||
postBuild = "mv $GOPATH/bin/{crowdsec-cli,cscli}";
|
||||
|
||||
postInstall = ''
|
||||
# so that `bin/crowdsec` is available for `cscli explain` for example
|
||||
wrapProgram $out/bin/cscli --prefix PATH : $out/bin/
|
||||
|
||||
mkdir -p $out/share/crowdsec
|
||||
cp -r ./config $out/share/crowdsec/
|
||||
|
||||
mkdir -p $out/lib/systemd/system
|
||||
substitute ./config/crowdsec.service $out/lib/systemd/system/crowdsec.service \
|
||||
--replace-fail /usr/local $out
|
||||
|
||||
installShellCompletion --cmd cscli \
|
||||
--bash <($out/bin/cscli completion bash) \
|
||||
--fish <($out/bin/cscli completion fish) \
|
||||
|
|
@ -63,6 +73,7 @@ buildGoModule (finalAttrs: {
|
|||
'';
|
||||
|
||||
meta = {
|
||||
mainProgram = "crowdsec";
|
||||
homepage = "https://crowdsec.net/";
|
||||
changelog = "https://github.com/crowdsecurity/crowdsec/releases/tag/v${finalAttrs.version}";
|
||||
description = "Free, open-source and collaborative IPS";
|
||||
|
|
@ -80,6 +91,7 @@ buildGoModule (finalAttrs: {
|
|||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [
|
||||
jk
|
||||
tornax
|
||||
];
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -115,7 +115,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
mainProgram = "cryptsetup";
|
||||
maintainers = with lib.maintainers; [
|
||||
numinit
|
||||
raitobezarius
|
||||
];
|
||||
platforms = with lib.platforms; linux;
|
||||
identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "cryptsetup_project" finalAttrs.version;
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
buildDotnetGlobalTool {
|
||||
pname = "csharpier";
|
||||
version = "1.2.6";
|
||||
version = "1.3.0";
|
||||
executables = "csharpier";
|
||||
|
||||
nugetHash = "sha256-SaBHGaaeg/1c4okHN1Pn8caGZgfLJ/KsGRqgUiAqKlQ=";
|
||||
nugetHash = "sha256-hwieEoQTcATyKZIZ7CQSWANPBv+pEShg6cDXU5EIexU=";
|
||||
|
||||
meta = {
|
||||
description = "Opinionated code formatter for C#";
|
||||
|
|
|
|||
391
pkgs/by-name/da/dawarich/gemset.nix
generated
391
pkgs/by-name/da/dawarich/gemset.nix
generated
File diff suppressed because it is too large
Load diff
|
|
@ -63,7 +63,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
env = {
|
||||
RAILS_ENV = "production";
|
||||
NODE_ENV = "production";
|
||||
REDIS_URL = ""; # build error if not defined
|
||||
TAILWINDCSS_INSTALL_DIR = "${tailwindcss_3}/bin";
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"version": "1.7.11",
|
||||
"hash": "sha256-10FPOt/58AgP4ChMlAn5bYg2erJFXDdjXlHr3pA4L3Y=",
|
||||
"npmHash": "sha256-CwpVV5xLw75ReS0IqFvV3oaVk6EBlqYIKRa2KehVwFQ="
|
||||
"version": "1.9.1",
|
||||
"hash": "sha256-ukpX2HOGNh14vbH/2UgjIU13PMBIA8Es2p7sBySAgVQ=",
|
||||
"npmHash": "sha256-sUDEqvqNrztedUGZRRkD2ythpBQQwpqJz/QleUvqz0Y="
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,38 +22,38 @@
|
|||
|
||||
let
|
||||
deltachat-rpc-server' = deltachat-rpc-server.overrideAttrs rec {
|
||||
version = "2.52.0";
|
||||
version = "2.53.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "chatmail";
|
||||
repo = "core";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-AQo27qnHPCK6q/3+Umk6ueqkOIVBA8n4q9S5iEZ7TkM=";
|
||||
hash = "sha256-W2Yh5+6MaJ47GqJioGKge2J3RetGGTcl+0YxPPlSdDo=";
|
||||
};
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
pname = "chatmail-core";
|
||||
inherit version src;
|
||||
hash = "sha256-ni8iaVPHXWhxfiBvtVzGRyPcxkbV0HiqcQCHGmAqk7s=";
|
||||
hash = "sha256-aoPc5XvjwwuA9aOTvIOpTm15wozC9glJGqn3vPqsJF4=";
|
||||
};
|
||||
};
|
||||
electron = electron_41;
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "deltachat-desktop";
|
||||
version = "2.52.0";
|
||||
version = "2.53.1";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "deltachat";
|
||||
repo = "deltachat-desktop";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-/FdGI6Dr9lz0+g/xSzHXbMdqWHf4TliHDXXiAQKKkOs=";
|
||||
hash = "sha256-UJ6005PeQBiL9Inj/VRZjgxZtR278Ky2RcD5MywcGD8=";
|
||||
};
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
pnpm = pnpm_10;
|
||||
fetcherVersion = 4;
|
||||
hash = "sha256-0VvyZzWAdVGsuYb8CI36KqkqvjgRsTLJov1L44MxUHQ=";
|
||||
hash = "sha256-t5OHx1GCaTIgGo9193Z3Kkl+jHCBIgtRypcUaO6By3I=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
;
|
||||
__structuredAttrs = true;
|
||||
|
||||
cargoHash = "sha256-euRUA4LTmAdb9466DAMqKgAPX3N4KNXCh1ED9cL42lA=";
|
||||
cargoHash = "sha256-iGgsG5V0cFzoudVASGqLakpuy2h4oD979LHuBclj+3o=";
|
||||
|
||||
postPatch = lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
substituteInPlace $cargoDepsCopy/*/libappindicator-sys-*/src/lib.rs \
|
||||
|
|
|
|||
|
|
@ -359,7 +359,6 @@ python.pkgs.buildPythonApplication rec {
|
|||
maintainers = with lib.maintainers; [
|
||||
danielfullmer
|
||||
mdaniels5757
|
||||
raitobezarius
|
||||
];
|
||||
platforms = lib.platforms.unix;
|
||||
mainProgram = "diffoscope";
|
||||
|
|
|
|||
|
|
@ -2,20 +2,27 @@
|
|||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
openssl,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "diswall";
|
||||
version = "0.6.1";
|
||||
version = "0.7.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dis-works";
|
||||
repo = "diswall-rs";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-t2ZBi3ab6OUWzc0L0Hq/ay+s3KNDMeu6mkYxti48BuE=";
|
||||
hash = "sha256-5kKVEdzN38gyovGAg3/FE5sbSwCBEiQH1GPsDeQ+rCg=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-I4jfeOtK+ho2jksGHgQqHE+L6UzS240t+7v3/Eb/xAs=";
|
||||
cargoHash = "sha256-WXaNLlTbZc2On19azFUbcsx0fA2LpsNNWxO6BzJ469M=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ openssl ];
|
||||
|
||||
OPENSSL_NO_VENDOR = 1;
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
cmake,
|
||||
pkg-config,
|
||||
spdlog,
|
||||
|
|
@ -26,32 +25,16 @@ let
|
|||
);
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
version = "0.10.0.post5";
|
||||
version = "0.11.0.post0";
|
||||
pname = "dolfinx";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fenics";
|
||||
repo = "dolfinx";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-CK7YEtJtrx/Mto72RHT4Qjg5StO28Et+FeCYxk5T+8s=";
|
||||
hash = "sha256-brmU6AA7lN4TyHjHcg4mHUIj/OvJ16pfspEN95M4oOE=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix wrong span extent in _lift_bc_interior_facets
|
||||
# https://github.com/FEniCS/dolfinx/pull/4102
|
||||
(fetchpatch {
|
||||
url = "https://github.com/FEniCS/dolfinx/commit/6daca34a075a6dcdfdf77feb13d55d5dbd20e4dd.patch";
|
||||
hash = "sha256-b/C1MqslS2OBCt+kK/+vJjW8pmsJx2FQ36qDtFA1ewI=";
|
||||
includes = [ "cpp/dolfinx/fem/assemble_vector_impl.h" ];
|
||||
})
|
||||
# Fix hdf5 interface for rank 1
|
||||
# https://github.com/FEniCS/dolfinx/pull/4043
|
||||
(fetchpatch {
|
||||
url = "https://github.com/FEniCS/dolfinx/commit/fce7c44f220d4cb94c5149ad28cd1ab00909c319.patch";
|
||||
hash = "sha256-EVm4Rx5UO/3pKIVvjgYAkN+i5QR+u0Nxwxotlf41t+Q=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
|
|
|
|||
|
|
@ -16,20 +16,20 @@ let
|
|||
# Keep this in sync with upstream locked version (likely a stable release, but not always latest)
|
||||
matrix-js-sdk = stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "matrix-js-sdk";
|
||||
version = "41.7.0-rc.3";
|
||||
version = "41.8.0-rc.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "matrix-org";
|
||||
repo = "matrix-js-sdk";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-KD+AbMGVAaGEU5h2JB5JyQtwG0SYejdADjJ7TrxqVrY=";
|
||||
hash = "sha256-1e6nWeHNAhVynxv2R7GY5NRCBN0BriRjA3zLK0D5O9g=";
|
||||
};
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
inherit pnpm;
|
||||
fetcherVersion = 4;
|
||||
hash = "sha256-mWtzWAV/lyaCZEIiGmOLUkhwwMouNAWoYJWL7Srr/bM=";
|
||||
hash = "sha256-Me76t/wl4HtmbQ+FzUNLEpOM6aYbzTl68tuDSEh+Hq4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
@ -58,20 +58,20 @@ let
|
|||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "element-call";
|
||||
version = "0.20.1";
|
||||
version = "0.20.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "element-hq";
|
||||
repo = "element-call";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-g71b0GVpe181iNum5i6z1bTAbCykyoYUy300Ebeds1Q=";
|
||||
hash = "sha256-paUcZhjcLbJOpQOR8gRpGe0LzSaKtWsTzE1svzQaVZY=";
|
||||
};
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
inherit pnpm;
|
||||
fetcherVersion = 4;
|
||||
hash = "sha256-K+ccoUDNYdmeVyVSYLP1UsvdsAgD1aH80HIubZY4Mf8=";
|
||||
hash = "sha256-JOpKxtElmNKepx3W+1LIolcrYrevsCEq7+Aoh0kwZEw=";
|
||||
};
|
||||
|
||||
inherit matrix-js-sdk;
|
||||
|
|
|
|||
|
|
@ -7,14 +7,14 @@
|
|||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "famly-fetch";
|
||||
version = "0.5.3";
|
||||
version = "0.6.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jacobbunk";
|
||||
repo = "famly-fetch";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-KsdypUXHU9drghAcDcur8FUUJvm8nIzq00QFdMqPnpc=";
|
||||
hash = "sha256-MU9T8eP/LNOLAQFPOC1EEy58+kcn7G+Hh2R8wC92qnQ=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [
|
||||
|
|
|
|||
|
|
@ -1,91 +1,95 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
libGL,
|
||||
libjpeg,
|
||||
libexif,
|
||||
giflib,
|
||||
libtiff,
|
||||
libpng,
|
||||
libwebp,
|
||||
libdrm,
|
||||
fetchFromGitLab,
|
||||
hexdump,
|
||||
meson,
|
||||
ninja,
|
||||
perl,
|
||||
pkg-config,
|
||||
freetype,
|
||||
fontconfig,
|
||||
which,
|
||||
imagemagick,
|
||||
curl,
|
||||
sane-backends,
|
||||
giflib,
|
||||
libdrm,
|
||||
libexif,
|
||||
libiconvReal,
|
||||
libinput,
|
||||
libtsm,
|
||||
libwebp,
|
||||
libxkbcommon,
|
||||
libxpm,
|
||||
libepoxy,
|
||||
libxt,
|
||||
motif,
|
||||
pixman,
|
||||
poppler,
|
||||
libgbm,
|
||||
lirc,
|
||||
udev,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "fbida";
|
||||
version = "2.14";
|
||||
version = "2.15-1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://dl.bytesex.org/releases/fbida/fbida-${finalAttrs.version}.tar.gz";
|
||||
sha256 = "0f242mix20rgsqz1llibhsz4r2pbvx6k32rmky0zjvnbaqaw1dwm";
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "kraxel";
|
||||
repo = "fbida";
|
||||
tag = "fbida-${finalAttrs.version}";
|
||||
hash = "sha256-iwJkFynhz3SJ8MRjUsKtQAjPCBvST1ezsxTw2ZCXBag=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Upstream patch to fix build on -fno-common toolchains.
|
||||
(fetchurl {
|
||||
name = "no-common.patch";
|
||||
url = "https://git.kraxel.org/cgit/fbida/patch/?id=1bb8a8aa29845378903f3c690e17c0867c820da2";
|
||||
sha256 = "0n5vqbp8wd87q60zfwdf22jirggzngypc02ha34gsj1rd6pvwahi";
|
||||
})
|
||||
# Prevents using function declaration without explicit parameters.
|
||||
./function-parameters.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
hexdump
|
||||
meson
|
||||
ninja
|
||||
perl
|
||||
pkg-config
|
||||
which
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libGL
|
||||
libexif
|
||||
libjpeg
|
||||
libpng
|
||||
giflib
|
||||
freetype
|
||||
fontconfig
|
||||
libtiff
|
||||
libwebp
|
||||
imagemagick
|
||||
curl
|
||||
sane-backends
|
||||
libdrm
|
||||
libexif
|
||||
libiconvReal
|
||||
libinput
|
||||
libtsm
|
||||
libwebp
|
||||
libxkbcommon
|
||||
libxpm
|
||||
libepoxy
|
||||
libxt
|
||||
motif
|
||||
pixman
|
||||
poppler
|
||||
lirc
|
||||
libgbm
|
||||
udev
|
||||
];
|
||||
|
||||
patchPhase = ''
|
||||
runHook prePatch
|
||||
|
||||
patchShebangs scripts/*.pl
|
||||
patchShebangs scripts/*.sh
|
||||
|
||||
sed -i -E \
|
||||
-e '/^jpeg_run[[:space:]]*=.*$/d' \
|
||||
-e "/^jpeg_ver[[:space:]]*=.*$/c\\jpeg_ver = '62'" \
|
||||
meson.build
|
||||
|
||||
runHook postPatch
|
||||
'';
|
||||
|
||||
makeFlags = [
|
||||
"prefix=$(out)"
|
||||
"verbose=yes"
|
||||
"STRIP="
|
||||
"JPEG_VER=62"
|
||||
"HOST=nix"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
sed -e 's@ cpp\>@ gcc -E -@' -i GNUmakefile
|
||||
sed -e 's@$(HAVE_LINUX_FB_H)@yes@' -i GNUmakefile
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Image viewing and manipulation programs including fbi, fbgs, ida, exiftran and thumbnail.cgi";
|
||||
homepage = "https://www.kraxel.org/blog/linux/fbida/";
|
||||
downloadPage = "https://gitlab.com/kraxel/fbida/";
|
||||
changelog = "https://gitlab.com/kraxel/fbida/-/blob/${finalAttrs.src.tag}/Changes?ref_type=tags";
|
||||
license = lib.licenses.gpl2;
|
||||
maintainers = with lib.maintainers; [ pSub ];
|
||||
platforms = lib.platforms.linux;
|
||||
|
|
|
|||
|
|
@ -80,6 +80,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
license = with lib.licenses; [ mit ];
|
||||
homepage = "https://febio.org/";
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = [ ];
|
||||
maintainers = with lib.maintainers; [ Scriptkiddi ];
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -53,6 +53,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
license = with lib.licenses; [ mit ];
|
||||
homepage = "https://febio.org/";
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = [ ];
|
||||
maintainers = with lib.maintainers; [ Scriptkiddi ];
|
||||
};
|
||||
})
|
||||
|
|
|
|||
45
pkgs/by-name/fe/fetch/package.nix
Normal file
45
pkgs/by-name/fe/fetch/package.nix
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
# linux dependencies
|
||||
makeWrapper,
|
||||
fastfetch,
|
||||
pciutils,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "fetch";
|
||||
version = "2.1.0";
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "areofyl";
|
||||
repo = "fetch";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-9ixx7XJcY4ktcN/lUfjvFljvHIEO2ktOebeGgL0ulHg=";
|
||||
};
|
||||
|
||||
makeFlags = [ "PREFIX=${placeholder "out"}" ];
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/fetch \
|
||||
--prefix PATH : ${
|
||||
lib.makeBinPath [
|
||||
fastfetch
|
||||
pciutils
|
||||
]
|
||||
}
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Animated 3D fetch tool that renders your distro logo as a spinning bas-relief";
|
||||
homepage = "https://github.com/areofyl/fetch";
|
||||
changelog = "https://github.com/areofyl/fetch/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.isc;
|
||||
maintainers = with lib.maintainers; [ ghastrum ];
|
||||
mainProgram = "fetch";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
|
|
@ -6,13 +6,13 @@
|
|||
}:
|
||||
|
||||
let
|
||||
version = "1.3.3-stable";
|
||||
version = "1.4.0-stable";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gtsteffaniak";
|
||||
repo = "filebrowser";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Q4TtC5x/nAbeZzICH9R9LBqe/8tbQOFR8vAImhQ5sYM=";
|
||||
hash = "sha256-Ojz1VTtlCFUTodQ66mr0ozLKsx3kUirm79HuFJu33yQ=";
|
||||
};
|
||||
|
||||
frontend = buildNpmPackage {
|
||||
|
|
@ -20,7 +20,7 @@ let
|
|||
inherit version src;
|
||||
|
||||
sourceRoot = "${src.name}/frontend";
|
||||
npmDepsHash = "sha256-+2CHRhu+cEmA0OvvU8ZKZ7Q5rTUX2KCSXFeVdievoYQ=";
|
||||
npmDepsHash = "sha256-tisZA7v0WsynNxgbww48eERz9+om4w8MW4IMzQIyh+Y=";
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
|
@ -47,7 +47,7 @@ buildGoModule {
|
|||
|
||||
sourceRoot = "${src.name}/backend";
|
||||
|
||||
vendorHash = "sha256-Fq5FqsZ4m5j+UIn1RsElhNUb4guwI9wo48SjQdvESRU=";
|
||||
vendorHash = "sha256-WvilFCwTGXecsD/afUpLL6TrGzr/cgkQeltCKKDc4AI=";
|
||||
|
||||
preBuild = ''
|
||||
mkdir -p http/embed
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
diff --git a/share/config.fish b/share/config.fish
|
||||
index 73148ac25..1964e30be 100644
|
||||
index b246916a5..05252c35f 100644
|
||||
--- a/share/config.fish
|
||||
+++ b/share/config.fish
|
||||
@@ -175,6 +175,7 @@ and __fish_set_locale
|
||||
@@ -132,6 +132,7 @@ and __fish_set_locale
|
||||
# This used to be in etc/config.fish - keep it here to keep the semantics
|
||||
#
|
||||
if status --is-login
|
||||
if command -sq /usr/libexec/path_helper
|
||||
+ and not set -q __NIX_DARWIN_SET_ENVIRONMENT_DONE
|
||||
__fish_macos_set_env PATH /etc/paths '/etc/paths.d'
|
||||
if test -n "$MANPATH"
|
||||
__fish_macos_set_env MANPATH /etc/manpaths '/etc/manpaths.d'
|
||||
if status is-login && command -sq /usr/libexec/path_helper
|
||||
+ and not set -q __NIX_DARWIN_SET_ENVIRONMENT_DONE
|
||||
__fish_macos_set_env PATH /etc/paths '/etc/paths.d'
|
||||
if test -n "$MANPATH"
|
||||
__fish_macos_set_env MANPATH /etc/manpaths '/etc/manpaths.d'
|
||||
|
|
|
|||
|
|
@ -150,13 +150,13 @@ let
|
|||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "fish";
|
||||
version = "4.7.1";
|
||||
version = "4.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fish-shell";
|
||||
repo = "fish-shell";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-u0mBdWkxP4zI6NUhJ0LJrEDrbAAfTDi8IapsWWC9yWc=";
|
||||
hash = "sha256-ttjLM1uBY8sL+jVcxdHUnHYlRFe5jGjnkgBLy17qGso=";
|
||||
};
|
||||
|
||||
env = {
|
||||
|
|
@ -169,7 +169,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit (finalAttrs) src patches;
|
||||
hash = "sha256-d4YA9fnDQyfyK675nP+tiTqJ1o2jqjwPHU1trXd8MCA=";
|
||||
hash = "sha256-w8MuabpZ5ronQL3iaXbLErxPlTe1Mg8OsRb5foR59II=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
@ -404,10 +404,17 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
fishConfig =
|
||||
let
|
||||
fishScript = writeText "test.fish" ''
|
||||
set -x __fish_bin_dir ${finalAttrs.finalPackage}/bin
|
||||
echo $__fish_bin_dir
|
||||
cp -r ${finalAttrs.finalPackage}/share/fish/tools/web_config/* .
|
||||
chmod -R +w *
|
||||
# webconfig.py locates fish via $fish_bin_dir, which fish_config
|
||||
# normally exports from the read-only $__fish_bin_dir.
|
||||
set -x fish_bin_dir $__fish_bin_dir
|
||||
echo $fish_bin_dir
|
||||
|
||||
# The web_config tool is embedded in the binary, so extract it.
|
||||
for f in (status list-files tools/web_config)
|
||||
mkdir -p (path dirname $f)
|
||||
status get-file $f > $f
|
||||
end
|
||||
cd tools/web_config
|
||||
|
||||
# if we don't set `delete=False`, the file will get cleaned up
|
||||
# automatically (leading the test to fail because there's no
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "fluux-messenger";
|
||||
version = "0.16.1";
|
||||
version = "0.16.2";
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
|
|
@ -26,16 +26,16 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
owner = "processone";
|
||||
repo = "fluux-messenger";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-os6zEB1E3D4WSRfru/UCDY0mgZxy0Zu/YcjhMbXt47g=";
|
||||
hash = "sha256-G5VDcFHp+mIYBXh7Vju/8bGB3CPD1dyZKq8zAOKn3UY=";
|
||||
};
|
||||
|
||||
cargoRoot = "apps/fluux/src-tauri";
|
||||
cargoHash = "sha256-V6iDPPBpdJQV5PA/isRy+Gz6NdwUUEj3mf9PM/nX10s=";
|
||||
cargoHash = "sha256-/jaEpC0f6B1zTxN7MHv/DESFnRTSAd3qi9rrnXurcPQ=";
|
||||
|
||||
npmDeps = fetchNpmDeps {
|
||||
name = "${finalAttrs.pname}-${finalAttrs.version}-npm-deps";
|
||||
inherit (finalAttrs) src;
|
||||
hash = "sha256-iMkb7QZZrKjzmTzvWGbw8reF1nX4Avd1XKzyybz3q00=";
|
||||
hash = "sha256-XAzE4I13GN4Gfi6g4VX5ZwM2DhVycKz7cGBQroAFvf8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
|||
|
|
@ -59,13 +59,13 @@ let
|
|||
in
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "gephgui-wry";
|
||||
version = "5.7.1";
|
||||
version = "5.7.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "geph-official";
|
||||
repo = "gephgui-pkg";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-PpkhIfA1jTqiY+4UwonrUk2wq+wL2Rhltfhp0LSURMg=";
|
||||
hash = "sha256-uY2m4TXy4+efRC6WzGjB5Vushgj8zkCp0ctnCJAR+FE=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "ghost-complete";
|
||||
version = "0.16.0";
|
||||
version = "0.18.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "StanMarek";
|
||||
repo = "ghost-complete";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-SL0PRGppuiglP/BStlvc//6dn2lP472lLfhz3Hq7ZVw=";
|
||||
hash = "sha256-AOhH98qGHISf8AZw3MSMnS5ADL6wQJ5jlo4PXsw7CAo=";
|
||||
};
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
|
@ -27,7 +27,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
--replace-fail '"-C", "link-arg=-fuse-ld=/usr/bin/ld",' ""
|
||||
'';
|
||||
|
||||
cargoHash = "sha256-F568kxHWcbBQuAwUpkT1AwAr/u486/k094wVmB9SiqY=";
|
||||
cargoHash = "sha256-l1Gp9FVtrGhzobM2Wdq110y1W7V6PNsQsJLBJ3sgOEs=";
|
||||
|
||||
cargoBuildFlags = [ "--package=ghost-complete" ];
|
||||
|
||||
|
|
|
|||
|
|
@ -7,16 +7,16 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gickup";
|
||||
version = "0.10.44";
|
||||
version = "0.10.45";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cooperspencer";
|
||||
repo = "gickup";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-AbeV/0CngNgCaLUIwv/uy8VgpiKiOXWGSjnW+xrd7gk=";
|
||||
hash = "sha256-oVvL5BZYZZCfkGK9ABcppbddKuzykZv1OtBvKElaStI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-lCeUEReVh0Fg1gyyTvWq2CIdQLuGCN20u9TftiokI0I=";
|
||||
vendorHash = "sha256-2SwjvITyo6z34MZ7gSbSQ1PeW0aO4MRi2DzYgqGcOvk=";
|
||||
|
||||
ldflags = [ "-X main.version=${finalAttrs.version}" ];
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,10 @@ python3Packages.buildPythonApplication {
|
|||
longDescription = "Takes in a GIF, short video, or a query to the Tenor GIF API and converts it to animated ASCII art.";
|
||||
homepage = "https://github.com/google/gif-for-cli";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ ambossmann ];
|
||||
maintainers = with lib.maintainers; [
|
||||
ambossmann
|
||||
Scriptkiddi
|
||||
];
|
||||
mainProgram = "gif-for-cli";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue