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

This commit is contained in:
K900
2025-04-21 21:18:16 +03:00
205 changed files with 3342 additions and 2362 deletions
+3
View File
@@ -13,6 +13,7 @@
writeShellScriptBin,
nixpkgs ? { },
markdown-code-runner,
roboto,
}:
stdenvNoCC.mkDerivation (
@@ -98,6 +99,8 @@ stdenvNoCC.mkDerivation (
mv out "$dest"
mv "$dest/index.html" "$dest/manual.html"
cp ${roboto.src}/web/Roboto\[ital\,wdth\,wght\].ttf "$dest/Roboto.ttf"
cp ${epub} "$dest/nixpkgs-manual.epub"
mkdir -p $out/nix-support/
+4
View File
@@ -209,6 +209,8 @@
- `pnpm` was updated to version 10. If your project is incompatible, you can install the previous version from the package attribute `pnpm_9`.
- `dwarf-fortress-packages` now only contains one minor version for each major version since version 0.44. Saves should still be compatible, but you may have to change which minor version you were using if it was one other than the newest.
- `zig_0_9` and `zig_0_10` have been removed, you should upgrade to `zig_0_13` (also available as just `zig`), `zig_0_12` or `zig_0_11` instead.
- `webpack-cli` was updated to major version 6, which has breaking changes from the previous version 5.1.4. See the [upstream release notes](https://github.com/webpack/webpack-cli/releases/tag/webpack-cli%406.0.0) for details on these changes.
@@ -349,6 +351,8 @@
- Many androidenv packages are now searchable on [search.nixos.org](https://search.nixos.org).
- We now use the latest Google repositories, which should improve aarch64-darwin compatibility. The SDK now additionally evaluates on aarch64-linux, though not all packages are functional.
- `dwarf-fortress` audio now works again. Additionally, the `dfhack` and `dwarf-fortress-full` packages are now exposed at toplevel, making it easier to install and play Dwarf Fortress. Note that `dwarf-fortress-full` is the Nixpkgs equivalent of the Dwarf Fortress Lazy Pack.
- `gerbera` now has wavpack support.
- GOverlay has been updated to 1.2, please check the [upstream changelog](https://github.com/benjamimgois/goverlay/releases) for more details.
+108 -61
View File
@@ -7,25 +7,29 @@ body {
margin: 0;
}
.book {
.book,
.appendix {
margin: auto;
width: 100%;
}
@media screen and (min-width: 768px) {
.book {
.book,
.appendix {
max-width: 46rem;
}
}
@media screen and (min-width: 992px) {
.book {
.book,
.appendix {
max-width: 60rem;
}
}
@media screen and (min-width: 1200px) {
.book {
.book,
.appendix {
max-width: 73rem;
}
}
@@ -113,10 +117,10 @@ html {
body {
font-size: 1rem;
font-family: 'Roboto', sans-serif;
font-family: "Roboto", sans-serif;
font-weight: 300;
color: #000000;
background-color: #ffffff;
color: var(--main-text-color);
background-color: var(--background);
min-height: 100vh;
display: flex;
flex-direction: column;
@@ -132,7 +136,7 @@ body {
a {
text-decoration: none;
border-bottom: 1px solid;
color: #405d99;
color: var(--link-color);
}
ul {
@@ -163,7 +167,7 @@ h1 {
line-height: 110%;
font-size: 200%;
margin-bottom: 1rem;
color: #6586c8;
color: var(--heading-color);
}
h2 {
@@ -171,7 +175,7 @@ h2 {
line-height: 110%;
font-size: 170%;
margin-bottom: 0.625rem;
color: #6586c8;
color: var(--heading-color);
}
h2:not(:first-child) {
@@ -183,7 +187,7 @@ h3 {
line-height: 110%;
margin-bottom: 1rem;
font-size: 150%;
color: #6586c8;
color: var(--heading-color);
}
.note h3,
@@ -199,7 +203,7 @@ h4 {
line-height: 110%;
margin-bottom: 1rem;
font-size: 140%;
color: #6586c8;
color: var(--heading-color);
}
h5 {
@@ -207,14 +211,14 @@ h5 {
line-height: 110%;
margin-bottom: 1rem;
font-size: 130%;
color: #6a6a6a;
color: var(--small-heading-color);
}
h6 {
font-weight: 800;
line-height: 110%;
margin-bottom: 1rem;
font-size: 120%
font-size: 120%;
}
strong {
@@ -226,13 +230,13 @@ p {
margin-bottom: 1rem;
}
dt>*:first-child,
dd>*:first-child {
dt > *:first-child,
dd > *:first-child {
margin-top: 0;
}
dt>*:last-child,
dd>*:last-child {
dt > *:last-child,
dd > *:last-child {
margin-bottom: 0;
}
@@ -256,8 +260,8 @@ div.appendix .programlisting {
border-radius: 0.5rem;
padding: 1rem;
overflow: auto;
background: #f2f8fd;
color: #000000;
background: var(--codeblock-background);
color: var(--codeblock-text-color);
}
div.book .note,
@@ -277,47 +281,46 @@ div.appendix .important {
background: #f4f4f4;
}
div.book .note>.title,
div.book .tip>.title,
div.book .warning>.title,
div.book .caution>.title,
div.book .important>.title,
div.appendix .note>.title,
div.appendix .tip>.title,
div.appendix .warning>.title,
div.appendix .caution>.title,
div.appendix .important>.title {
div.book .note > .title,
div.book .tip > .title,
div.book .warning > .title,
div.book .caution > .title,
div.book .important > .title,
div.appendix .note > .title,
div.appendix .tip > .title,
div.appendix .warning > .title,
div.appendix .caution > .title,
div.appendix .important > .title {
font-weight: 800;
/* font-family: 'Overpass', serif; */
line-height: 110%;
margin-bottom: 1rem;
color: inherit;
margin-bottom: 0;
}
div.book .note> :first-child,
div.book .tip> :first-child,
div.book .warning> :first-child,
div.book .caution> :first-child,
div.book .important> :first-child,
div.appendix .note> :first-child,
div.appendix .tip> :first-child,
div.appendix .warning> :first-child,
div.appendix .caution> :first-child,
div.appendix .important> :first-child {
div.book .note > :first-child,
div.book .tip > :first-child,
div.book .warning > :first-child,
div.book .caution > :first-child,
div.book .important > :first-child,
div.appendix .note > :first-child,
div.appendix .tip > :first-child,
div.appendix .warning > :first-child,
div.appendix .caution > :first-child,
div.appendix .important > :first-child {
margin-top: 0;
}
div.book .note> :last-child,
div.book .tip> :last-child,
div.book .warning> :last-child,
div.book .caution> :last-child,
div.book .important> :last-child,
div.appendix .note> :last-child,
div.appendix .tip> :last-child,
div.appendix .warning> :last-child,
div.appendix .caution> :last-child,
div.appendix .important> :last-child {
div.book .note > :last-child,
div.book .tip > :last-child,
div.book .warning > :last-child,
div.book .caution > :last-child,
div.book .important > :last-child,
div.appendix .note > :last-child,
div.appendix .tip > :last-child,
div.appendix .warning > :last-child,
div.appendix .caution > :last-child,
div.appendix .important > :last-child {
margin-bottom: 0;
}
@@ -325,16 +328,16 @@ div.book .note,
div.book .tip,
div.appendix .note,
div.appendix .tip {
color: #5277c3;
background: #f2f8fd;
color: var(--note-text-color);
background: var(--note-background);
}
div.book .warning,
div.book .caution,
div.appendix .warning,
div.appendix .caution {
color: #cc3900;
background-color: #fff5e1;
color: var(--warning-text-color);
background-color: var(--warning-background);
}
div.book .section,
@@ -358,8 +361,8 @@ div.appendix div.example details[open] {
border-radius: 4px;
}
div.book div.example details>summary,
div.appendix div.example details>summary {
div.book div.example details > summary,
div.appendix div.example details > summary {
cursor: pointer;
}
@@ -368,13 +371,13 @@ div.appendix br.example-break {
display: none;
}
div.book div.footnotes>hr,
div.appendix div.footnotes>hr {
div.book div.footnotes > hr,
div.appendix div.footnotes > hr {
border-color: #d8d8d8;
}
div.book div.footnotes>br,
div.appendix div.footnotes>br {
div.book div.footnotes > br,
div.appendix div.footnotes > br {
display: none;
}
@@ -444,3 +447,47 @@ div.appendix .variablelist .term {
user-select: none;
-webkit-user-select: none;
}
:root {
--background: #fff;
--main-text-color: #000;
--link-color: #405d99;
--heading-color: #6586c8;
--small-heading-color: #6a6a6a;
--note-text-color: #5277c3;
--note-background: #f2f8fd;
--warning-text-color: #cc3900;
--warning-background: #fff5e1;
--codeblock-background: #f2f8fd;
--codeblock-text-color: #000;
}
@media (prefers-color-scheme: dark) {
:root {
--background: #242424;
--main-text-color: #fff;
--link-color: #6586c8;
--small-heading-color: #fff;
--note-background: none;
--warning-background: none;
--codeblock-background: #393939;
--codeblock-text-color: #fff;
}
div.book .note,
div.book .tip,
div.appendix .note,
div.appendix .tip,
div.book .warning,
div.book .caution,
div.appendix .warning,
div.appendix .caution {
border: 2px solid;
font-weight: 400;
}
}
@font-face {
font-family: Roboto;
src: url(Roboto.ttf);
}
+6 -4
View File
@@ -30,6 +30,7 @@ let
inherit (lib.attrsets)
attrByPath
optionalAttrs
showAttrPath
;
inherit (lib.strings)
concatMapStrings
@@ -40,6 +41,7 @@ let
;
inherit (lib.lists)
last
toList
;
prioritySuggestion = ''
Use `lib.mkForce value` or `lib.mkDefault value` to change the priority on any of these definitions.
@@ -310,14 +312,14 @@ rec {
}:
let
name' = if isList name then last name else name;
default' = if isList default then default else [ default ];
defaultText = concatStringsSep "." default';
default' = toList default;
defaultText = showAttrPath default';
defaultValue = attrByPath default' (throw "${defaultText} cannot be found in ${pkgsText}") pkgs;
defaults =
if default != null then
{
default = defaultValue;
defaultText = literalExpression ("${pkgsText}." + defaultText);
defaultText = literalExpression "${pkgsText}.${defaultText}";
}
else
optionalAttrs nullable {
@@ -333,7 +335,7 @@ rec {
}
// optionalAttrs (example != null) {
example = literalExpression (
if isList example then "${pkgsText}." + concatStringsSep "." example else example
if isList example then "${pkgsText}.${showAttrPath example}" else example
);
}
);
+1 -1
View File
@@ -165,7 +165,7 @@ let
# This is a workaround for https://github.com/NixOS/nix/issues/12361 which
# was needed during the experimental phase of ca-derivations and should be
# removed once the issue has been resolved.
|| match "[0-9a-z]{52}" (head components) != null;
|| components != [ ] && match "[0-9a-z]{52}" (head components) != null;
in
# No rec! Add dependencies on this file at the top.
+6
View File
@@ -110,6 +110,12 @@ let
expected = false;
};
# Root path (empty path components list)
testHasStorePathPrefixRoot = {
expr = hasStorePathPrefix /.;
expected = false;
};
testHasStorePathPrefixExample1 = {
expr = hasStorePathPrefix (storeDirPath + "/nvl9ic0pj1fpyln3zaqrf4cclbqdfn1j-foo/bar/baz");
expected = true;
+5 -1
View File
@@ -998,7 +998,11 @@ rec {
:::
*/
escapeC = list: replaceStrings list (map (c: "\\x${toLower (lib.toHexString (charToInt c))}") list);
escapeC =
list:
replaceStrings list (
map (c: "\\x${fixedWidthString 2 "0" (toLower (lib.toHexString (charToInt c)))}") list
);
/**
Escape the `string` so it can be safely placed inside a URL
+2 -2
View File
@@ -851,8 +851,8 @@ runTests {
};
testEscapeC = {
expr = strings.escapeC [ " " ] "Hello World";
expected = "Hello\\x20World";
expr = strings.escapeC [ "\n" " " ] "Hello World\n";
expected = "Hello\\x20World\\x0a";
};
testEscapeURL = testAllTrue [
+13 -1
View File
@@ -315,14 +315,26 @@ checkConfigOutput '^false$' config.enableAlias ./alias-with-priority-can-overrid
checkConfigOutput '^"hello"$' config.package.pname ./declare-mkPackageOption.nix
checkConfigOutput '^"hello"$' config.namedPackage.pname ./declare-mkPackageOption.nix
checkConfigOutput '^".*Hello.*"$' options.namedPackage.description ./declare-mkPackageOption.nix
checkConfigOutput '^"literalExpression"$' options.namedPackage.defaultText._type ./declare-mkPackageOption.nix
checkConfigOutput '^"pkgs\.hello"$' options.namedPackage.defaultText.text ./declare-mkPackageOption.nix
checkConfigOutput '^"hello"$' config.namedPackageSingletonDefault.pname ./declare-mkPackageOption.nix
checkConfigOutput '^".*Hello.*"$' options.namedPackageSingletonDefault.description ./declare-mkPackageOption.nix
checkConfigOutput '^"pkgs\.hello"$' options.namedPackageSingletonDefault.defaultText.text ./declare-mkPackageOption.nix
checkConfigOutput '^"hello"$' config.pathPackage.pname ./declare-mkPackageOption.nix
checkConfigOutput '^"literalExpression"$' options.packageWithExample.example._type ./declare-mkPackageOption.nix
checkConfigOutput '^"pkgs\.hello\.override \{ stdenv = pkgs\.clangStdenv; \}"$' options.packageWithExample.example.text ./declare-mkPackageOption.nix
checkConfigOutput '^"literalExpression"$' options.packageWithPathExample.example._type ./declare-mkPackageOption.nix
checkConfigOutput '^"pkgs\.hello"$' options.packageWithPathExample.example.text ./declare-mkPackageOption.nix
checkConfigOutput '^".*Example extra description\..*"$' options.packageWithExtraDescription.description ./declare-mkPackageOption.nix
checkConfigError 'The option .undefinedPackage. was accessed but has no value defined. Try setting the option.' config.undefinedPackage ./declare-mkPackageOption.nix
checkConfigOutput '^null$' config.nullablePackage ./declare-mkPackageOption.nix
checkConfigOutput '^"null or package"$' options.nullablePackageWithDefault.type.description ./declare-mkPackageOption.nix
checkConfigOutput '^"null or package"$' options.nullablePackage.type.description ./declare-mkPackageOption.nix
checkConfigOutput '^"hello"$' config.nullablePackageWithDefault.pname ./declare-mkPackageOption.nix
checkConfigOutput '^"myPkgs\.hello"$' options.packageWithPkgsText.defaultText.text ./declare-mkPackageOption.nix
checkConfigOutput '^"hello-other"$' options.packageFromOtherSet.default.pname ./declare-mkPackageOption.nix
checkConfigOutput '^"hello"$' config.packageInvalidIdentifier.pname ./declare-mkPackageOption.nix
checkConfigOutput '^"pkgs\.\\"123\\"\.\\"with\\\\\\"quote\\"\.hello"$' options.packageInvalidIdentifier.defaultText.text ./declare-mkPackageOption.nix
checkConfigOutput '^"pkgs\.\\"123\\"\.\\"with\\\\\\"quote\\"\.hello"$' options.packageInvalidIdentifierExample.example.text ./declare-mkPackageOption.nix
# submoduleWith
@@ -57,5 +57,19 @@ in
};
in
lib.mkPackageOption myPkgs "hello" { };
packageInvalidIdentifier =
let
myPkgs."123"."with\"quote" = { inherit (pkgs) hello; };
in
lib.mkPackageOption myPkgs [ "123" "with\"quote" "hello" ] { };
packageInvalidIdentifierExample = lib.mkPackageOption pkgs "hello" {
example = [
"123"
"with\"quote"
"hello"
];
};
};
}
+3
View File
@@ -58,6 +58,9 @@ in
pathInStore.ok1 = "${storeDir}/0lz9p8xhf89kb1c1kk6jxrzskaiygnlh-bash-5.2-p15.drv";
pathInStore.ok2 = "${storeDir}/0fb3ykw9r5hpayd05sr0cizwadzq1d8q-bash-5.2-p15";
pathInStore.ok3 = "${storeDir}/0fb3ykw9r5hpayd05sr0cizwadzq1d8q-bash-5.2-p15/bin/bash";
pathInStore.ok4 = "/1121rp0gvr1qya7hvy925g5kjwg66acz6sn1ra1hca09f1z5dsab"; # CA derivation
pathInStore.ok5 = "/1121rp0gvr1qya7hvy925g5kjwg66acz6sn1ra1hca09f1z5dsab/bin/bash"; # CA derivation
pathInStore.ok6 = /1121rp0gvr1qya7hvy925g5kjwg66acz6sn1ra1hca09f1z5dsab; # CA derivation, path type
pathInStore.bad1 = "";
pathInStore.bad2 = "${storeDir}";
pathInStore.bad3 = "${storeDir}/";
+8 -1
View File
@@ -678,7 +678,14 @@ let
check =
x:
let
isInStore = builtins.match "${builtins.storeDir}/[^.].*" (toString x) != null;
isInStore = lib.path.hasStorePathPrefix (
if builtins.isPath x then
x
# Discarding string context is necessary to convert the value to
# a path and safe as the result is never used in any derivation.
else
/. + builtins.unsafeDiscardStringContext x
);
isAbsolute = builtins.substring 0 1 (toString x) == "/";
isExpectedType = (
if inStore == null || inStore then isStringLike x else isString x # Do not allow a true path, which could be copied to the store later on.
+12 -6
View File
@@ -12539,12 +12539,6 @@
github = "keenanweaver";
githubId = 37268985;
};
kekschen = {
email = "kx@imkx.dev";
github = "kek5chen";
githubId = 52585984;
name = "Kek5chen";
};
keksgesicht = {
name = "Jan Braun";
email = "git@keksgesicht.de";
@@ -22461,6 +22455,12 @@
github = "sinanmohd";
githubId = 69694713;
};
sinics = {
name = "Zhifan";
email = "nonno.felice69uwu@gmail.com";
matrix = "@c3n21:matrix.org";
githubId = 37077738;
};
sioodmy = {
name = "Antoni Sokołowski";
github = "sioodmy";
@@ -26035,6 +26035,12 @@
githubId = 20464732;
name = "Willi Butz";
};
willow = {
email = "git@willow.moe";
github = "kek5chen";
githubId = 52585984;
name = "Willow";
};
willow_ch = {
email = "nix@w.wolo.dev";
github = "spaghetus";
+1
View File
@@ -227,6 +227,7 @@ with lib.maintainers;
pandapip1
qyliss
thefossguy
michaelBelsanti
];
githubTeams = [ "cosmic" ];
shortName = "cosmic";
+2
View File
@@ -160,6 +160,8 @@ rec {
./manual.md \
$dst/${common.indexPath}
cp ${pkgs.roboto.src}/web/Roboto\[ital\,wdth\,wght\].ttf "$dst/Roboto.ttf"
mkdir -p $out/nix-support
echo "nix-build out $out" >> $out/nix-support/hydra-build-products
echo "doc manual $dst" >> $out/nix-support/hydra-build-products
@@ -139,7 +139,7 @@ The pre-existing `services.ankisyncd` has been marked deprecated and will be dro
- [Netbird](https://netbird.io), an open-source VPN management platform, now has a self-hosted management server. Available as [services.netbird.server](#opt-services.netbird.server.enable).
- [nh](https://github.com/viperML/nh), yet another Nix CLI helper. Available as [programs.nh](#opt-programs.nh.enable).
- [nh](https://github.com/nix-community/nh), yet another Nix CLI helper. Available as [programs.nh](#opt-programs.nh.enable).
- [oink](https://github.com/rlado/oink), a dynamic DNS client for Porkbun. Available as [services.oink](#opt-services.oink.enable).
@@ -224,6 +224,8 @@
- [GoDNS](https://github.com/TimothyYe/godns), a dynamic DNS client written in Go, which supports multiple DNS providers. Available as [services.godns](option.html#opt-services.godns.enable).
- [CookCLI](https://cooklang.org/cli/) Server, a web UI for cooklang recipes.
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
## Backward Incompatibilities {#sec-release-25.05-incompatibilities}
@@ -425,6 +427,7 @@
- `programs.clash-verge.tunMode` was deprecated and removed because now service mode is necessary to start program. Without `programs.clash-verge.enable`, clash-verge-rev will refuse to start.
- `services.discourse` now requires PostgreSQL 15 per default. Please update before upgrading.
- `services.homepage-dashboard` now requires the `allowedHosts` option to be set in accordance with the [documentation](https://gethomepage.dev/installation/#homepage_allowed_hosts).
+1
View File
@@ -1296,6 +1296,7 @@ in
ConditionPathExists = "!${cfg.registry.certFile}";
};
serviceConfig = {
Type = "oneshot";
Slice = "system-gitlab.slice";
};
};
@@ -4,6 +4,9 @@
pkgs,
...
}:
let
cfg = config.services.paretosecurity;
in
{
options.services.paretosecurity = {
@@ -12,9 +15,9 @@
trayIcon = lib.mkEnableOption "tray icon for ParetoSecurity";
};
config = lib.mkIf config.services.paretosecurity.enable {
environment.systemPackages = [ config.services.paretosecurity.package ];
systemd.packages = [ config.services.paretosecurity.package ];
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
systemd.packages = [ cfg.package ];
# In traditional Linux distributions, systemd would read the [Install] section from
# unit files and automatically create the appropriate symlinks to enable services.
@@ -36,19 +39,17 @@
];
# Enable the tray icon and timer services if the trayIcon option is enabled
systemd.user = lib.mkIf config.services.paretosecurity.trayIcon {
services.paretosecurity-trayicon = {
wantedBy = [ "graphical-session.target" ];
};
services.paretosecurity-user = {
wantedBy = [ "graphical-session.target" ];
serviceConfig.Environment = [
"PATH=${config.system.path}/bin:${config.system.path}/sbin"
];
};
timers.paretosecurity-user = {
wantedBy = [ "timers.target" ];
systemd.user = lib.mkIf cfg.trayIcon {
services = {
paretosecurity-trayicon.wantedBy = [ "graphical-session.target" ];
paretosecurity-user = {
wantedBy = [ "graphical-session.target" ];
serviceConfig.Environment = [
"PATH=${config.system.path}/bin:${config.system.path}/sbin"
];
};
};
timers.paretosecurity-user.wantedBy = [ "timers.target" ];
};
};
}
@@ -0,0 +1,113 @@
{
config,
pkgs,
lib,
...
}:
let
cfg = config.services.cook-cli;
inherit (lib)
mkIf
mkEnableOption
mkPackageOption
mkOption
getExe
types
;
in
{
options = {
services.cook-cli = {
enable = lib.mkEnableOption "cook-cli";
package = lib.mkPackageOption pkgs "cook-cli" { };
autoStart = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Whether to start cook-cli server automatically.
'';
};
port = lib.mkOption {
type = lib.types.port;
default = 9080;
description = ''
Which port cook-cli server will use.
'';
};
basePath = lib.mkOption {
type = lib.types.str;
default = "/var/lib/cook-cli";
description = ''
Path to the directory cook-cli will look for recipes.
'';
};
openFirewall = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Whether to open the cook-cli server port in the firewall.
'';
};
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
systemd.tmpfiles.rules = [
"d ${cfg.basePath} 0770 cook-cli users"
];
users.users.cook-cli = {
home = "${cfg.basePath}";
group = "cook-cli";
isSystemUser = true;
};
users.groups.cook-cli.members = [
"cook-cli"
];
systemd.services.cook-cli = {
description = "cook-cli server";
serviceConfig = {
ExecStart = "${getExe cfg.package} server --host --port ${toString cfg.port} ${cfg.basePath}";
WorkingDirectory = cfg.basePath;
User = "cook-cli";
Group = "cook-cli";
# Hardening options
CapabilityBoundingSet = [ "CAP_SYS_NICE" ];
AmbientCapabilities = [ "CAP_SYS_NICE" ];
LockPersonality = true;
NoNewPrivileges = true;
PrivateTmp = true;
ProtectControlGroups = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectSystem = "strict";
ReadWritePaths = cfg.basePath;
RestrictNamespaces = true;
RestrictSUIDSGID = true;
Restart = "on-failure";
RestartSec = 5;
};
wantedBy = mkIf cfg.autoStart [ "multi-user.target" ];
wants = [ "network.target" ];
};
networking.firewall = lib.mkIf cfg.openFirewall {
allowedTCPPorts = [ cfg.port ];
};
};
meta.maintainers = [
lib.maintainers.luNeder
lib.maintainers.emilioziniades
];
}
@@ -13,8 +13,8 @@ let
cfg = config.services.discourse;
opt = options.services.discourse;
# Keep in sync with https://github.com/discourse/discourse_docker/blob/main/image/base/slim.Dockerfile#L5
upstreamPostgresqlVersion = lib.getVersion pkgs.postgresql_13;
# Keep in sync with https://github.com/discourse/discourse_docker/blob/main/image/base/Dockerfile PG_MAJOR
upstreamPostgresqlVersion = lib.getVersion pkgs.postgresql_15;
postgresqlPackage =
if config.services.postgresql.enable then config.services.postgresql.package else pkgs.postgresql;
@@ -676,6 +676,8 @@ in
dns_query_timeout_secs = null;
regex_timeout_seconds = 2;
allow_impersonation = true;
log_line_max_chars = 160000;
yjit_enabled = false;
};
services.redis.servers.discourse =
@@ -901,6 +903,9 @@ in
extraConfig
+ ''
proxy_set_header X-Request-Start "t=''${msec}";
proxy_set_header X-Sendfile-Type "";
proxy_set_header X-Accel-Mapping "";
proxy_set_header Client-Ip "";
'';
};
cache = time: ''
@@ -199,13 +199,6 @@ in
monospace = mkDefault [ "Hack" ];
};
# Qt application style.
qt = {
enable = mkDefault true;
style = mkDefault "gtk2";
platformTheme = mkDefault "gtk2";
};
environment.pathsToLink = [
"/share" # TODO: https://github.com/NixOS/nixpkgs/issues/47173
];
+1 -2
View File
@@ -59,7 +59,7 @@ import ./make-test-python.nix (
environment.systemPackages = [ pkgs.jq ];
services.postgresql.package = pkgs.postgresql_13;
services.postgresql.package = pkgs.postgresql_15;
services.discourse = {
enable = true;
@@ -104,7 +104,6 @@ import ./make-test-python.nix (
services.dovecot2 = {
enable = true;
protocols = [ "imap" ];
modules = [ pkgs.dovecot_pigeonhole ];
};
services.postfix = {
+24 -1
View File
@@ -42,6 +42,10 @@ in
environment.systemPackages = with pkgs; [ git ];
networking.hosts."127.0.0.1" = [
"registry.localhost"
"pages.localhost"
];
virtualisation.memorySize = 6144;
virtualisation.cores = 4;
virtualisation.useNixStoreImage = true;
@@ -59,6 +63,12 @@ in
localhost = {
locations."/".proxyPass = "http://unix:/run/gitlab/gitlab-workhorse.socket";
};
"pages.localhost" = {
locations."/".proxyPass = "http://localhost:8090";
};
"registry.localhost" = {
locations."/".proxyPass = "http://localhost:4567";
};
};
};
@@ -78,7 +88,7 @@ in
smtp.enable = true;
pages = {
enable = true;
settings.pages-domain = "localhost";
settings.pages-domain = "pages.localhost";
};
extraConfig = {
incoming_email = {
@@ -98,6 +108,14 @@ in
jwsFile = pkgs.runCommand "oidcKeyBase" { } "${pkgs.openssl}/bin/openssl genrsa 2048 > $out";
};
registry = {
enable = true;
certFile = "/var/lib/gitlab/registry_auth_cert";
keyFile = "/var/lib/gitlab/registry_auth_key";
externalAddress = "registry.localhost";
externalPort = 443;
};
# reduce memory usage
sidekiq.concurrency = 1;
puma.workers = 2;
@@ -210,6 +228,7 @@ in
gitlab.wait_for_unit("gitlab-sidekiq.service")
gitlab.wait_for_file("${nodes.gitlab.services.gitlab.statePath}/tmp/sockets/gitlab.socket")
gitlab.wait_until_succeeds("curl -sSf http://gitlab/users/sign_in")
gitlab.wait_for_unit("docker-registry.service")
'';
# The actual test of GitLab. Only push data to GitLab if
@@ -447,6 +466,10 @@ in
"""
)
gitlab.succeed("test -s /tmp/archive.tar.bz2")
''
+ ''
with subtest("Test docker registry http is available"):
gitlab.succeed("curl -sSf http://registry.localhost")
'';
in
+25 -34
View File
@@ -4,53 +4,45 @@
meta.maintainers = [ lib.maintainers.zupo ];
nodes.terminal =
{
config,
pkgs,
lib,
...
}:
let
# Create a patched version of the package that points to the local dashboard
# for easier testing
patchedPareto = pkgs.paretosecurity.overrideAttrs (oldAttrs: {
postPatch = ''
substituteInPlace team/report.go \
--replace-warn 'const reportURL = "https://dash.paretosecurity.com"' \
'const reportURL = "http://dashboard"'
'';
});
in
{ pkgs, ... }:
{
imports = [ ./common/user-account.nix ];
networking.firewall.enable = true;
services.paretosecurity = {
enable = true;
package = patchedPareto;
};
networking.firewall.enable = true;
# Create a patched version of the package that points to the local dashboard
# for easier testing
package = pkgs.paretosecurity.overrideAttrs (oldAttrs: {
postPatch =
oldAttrs.postPatch or ""
+ ''
substituteInPlace team/report.go \
--replace-warn 'const reportURL = "https://dash.paretosecurity.com"' \
'const reportURL = "http://dashboard"'
'';
});
};
};
nodes.dashboard =
{ config, pkgs, ... }:
{
networking.firewall.allowedTCPPorts = [ 80 ];
nodes.dashboard = {
networking.firewall.allowedTCPPorts = [ 80 ];
services.nginx = {
enable = true;
virtualHosts."dashboard" = {
locations."/api/v1/team/".extraConfig = ''
add_header Content-Type application/json;
return 200 '{"message": "Linked device."}';
'';
};
services.nginx = {
enable = true;
virtualHosts."dashboard" = {
locations."/api/v1/team/".extraConfig = ''
add_header Content-Type application/json;
return 200 '{"message": "Linked device."}';
'';
};
};
};
nodes.xfce =
{ config, pkgs, ... }:
{ pkgs, ... }:
{
imports = [ ./common/user-account.nix ];
@@ -76,7 +68,6 @@
environment.systemPackages = [ pkgs.xdotool ];
environment.variables.XAUTHORITY = "/home/alice/.Xauthority";
};
enableOCR = true;
File diff suppressed because it is too large Load Diff
@@ -7,14 +7,14 @@
}:
vimUtils.buildVimPlugin {
pname = "cmp-async-path";
version = "0-unstable-2024-10-21";
version = "0-unstable-2025-04-13";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "FelipeLema";
repo = "cmp-async-path";
rev = "d6d1ffa2075039632a2d71e8fa139818e15ac757";
hash = "sha256-MZFpNPtSDMZNkfoz+3ZcDxLb8PvDtm9nb1dE0CbYIPQ=";
rev = "0ed1492f59e730c366d261a5ad822fa37e44c325";
hash = "sha256-J1Iw7yNfvWq7Jul25Eyx4qk9lSiLpZt4TRvTYi1DXtk=";
};
checkInputs = [ vimPlugins.nvim-cmp ];
@@ -0,0 +1,26 @@
{
lib,
vimUtils,
fetchFromGitLab,
nix-update-script,
}:
vimUtils.buildVimPlugin {
pname = "sonarlint.nvim";
version = "0-unstable-2025-04-18";
src = fetchFromGitLab {
owner = "schrieveslaach";
repo = "sonarlint.nvim";
rev = "0b78f1db800f9ba76f81de773ba09ce2222bdcc2";
hash = "sha256-EUwuIFFe4tmw8u6RqEvOLL0Yi8J5cLBQx7ICxnmkT4k=";
};
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://gitlab.com/schrieveslaach/sonarlint.nvim";
description = "Extensions for the built-in Language Server Protocol support in Neovim for sonarlint-language-server";
license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.sinics ];
};
}
@@ -374,6 +374,12 @@ in
'';
};
claude-code-nvim = super.claude-code-nvim.overrideAttrs {
dependencies = with self; [
plenary-nvim
];
};
clighter8 = super.clighter8.overrideAttrs {
preFixup = ''
sed "/^let g:clighter8_libclang_path/s|')$|${lib.getLib llvmPackages.clang.cc}/lib/libclang.so')|" \
@@ -2226,6 +2232,8 @@ in
"nvchad.cheatsheet.grid"
"nvchad.cheatsheet.simple"
"nvchad.blink.config"
# Circular dependency with base46
"nvchad.utils"
];
};
@@ -151,6 +151,7 @@ https://github.com/declancm/cinnamon.nvim/,HEAD,
https://github.com/projekt0n/circles.nvim/,,
https://github.com/zootedb0t/citruszest.nvim/,,
https://github.com/xavierd/clang_complete/,,
https://github.com/greggh/claude-code.nvim/,HEAD,
https://github.com/rhysd/clever-f.vim/,,
https://github.com/bbchung/clighter8/,,
https://github.com/ekickx/clipboard-image.nvim/,,
@@ -23,7 +23,7 @@ index 04b0a77f3..2330ea921 100644
protobuf>=3.12
qdarkstyle>=2.7
-aiorpcx>=0.22.0,<0.23
+aiorpcx>=0.22.0,<0.24
+aiorpcx>=0.22.0
aiohttp>=3.3.0,<4.0.0
aiohttp_socks>=0.3
certifi
@@ -31,14 +31,12 @@ diff --git a/run_electrum b/run_electrum
index a1b30f29e..cb22f8724 100755
--- a/run_electrum
+++ b/run_electrum
@@ -67,8 +67,8 @@ def check_imports():
@@ -67,8 +67,6 @@ def check_imports():
import aiorpcx
except ImportError as e:
sys.exit(f"Error: {str(e)}. Try 'sudo python3 -m pip install <module-name>'")
- if not ((0, 22, 0) <= aiorpcx._version < (0, 23)):
- raise RuntimeError(f'aiorpcX version {aiorpcx._version} does not match required: 0.22.0<=ver<0.23')
+ if not ((0, 22, 0) <= aiorpcx._version < (0, 24)):
+ raise RuntimeError(f'aiorpcX version {aiorpcx._version} does not match required: 0.22.0<=ver<0.24')
# the following imports are for pyinstaller
from google.protobuf import descriptor
from google.protobuf import message
+2 -2
View File
@@ -32,11 +32,11 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "scribus";
version = "1.6.3";
version = "1.6.4";
src = fetchurl {
url = "mirror://sourceforge/scribus/scribus-devel/scribus-${finalAttrs.version}.tar.xz";
hash = "sha256-CuWM7UEBAegmVeO0wgoHDPF2cUWtojPc73wguLpr1Ic=";
hash = "sha256-UzvnrwOs+qc27F96P8JWKr0gD+9coqfN7gK19E1hgp4=";
};
nativeBuildInputs = [
+12 -7
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
pkg-config,
kdePackages,
@@ -54,16 +55,25 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "amnezia-vpn";
version = "4.8.5.0";
version = "4.8.6.0";
src = fetchFromGitHub {
owner = "amnezia-vpn";
repo = "amnezia-client";
tag = finalAttrs.version;
hash = "sha256-k0BroQYrmJzM0+rSZMf20wHba5NbOK/xm5lbUFBNEHI=";
hash = "sha256-WQbay3dtGNPPpcK1O7bfs/HKO4ytfmQo60firU/9o28=";
fetchSubmodules = true;
};
# Temporary patch header file to fix build with QT 6.9
patches = [
(fetchpatch {
name = "add-missing-include.patch";
url = "https://github.com/amnezia-vpn/amnezia-client/commit/c44ce0d77cc3acdf1de48a12459a1a821d404a1c.patch";
hash = "sha256-Q6UMD8PlKAcI6zNolT5+cULECnxNrYrD7cifvNg1ZrY=";
})
];
postPatch =
''
substituteInPlace client/platforms/linux/daemon/wireguardutilslinux.cpp \
@@ -127,11 +137,6 @@ stdenv.mkDerivation (finalAttrs: {
runHook postInstall
'';
postFixup = ''
# Temporary unwrap non-binary executable until qt6.wrapQtAppsHook is fixed
mv $out/libexec/.update-resolv-conf.sh-wrapped $out/libexec/update-resolv-conf.sh
'';
passthru = {
inherit amnezia-tun2socks amnezia-xray;
updateScript = nix-update-script {
+48
View File
@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchFromGitHub,
rustPlatform,
pkg-config,
udev,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "asdbctl";
version = "1.0.0";
src = fetchFromGitHub {
owner = "juliuszint";
repo = "asdbctl";
tag = "v${finalAttrs.version}";
hash = "sha256-S5m1iQlchGKc0PODQNDHpNzaNXRepmk5zfK5aXdiMiM=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-OPmnGh6xN6XeREeIgyYB2aeHUpdQ5hFS5MivcTeY29E=";
nativeBuildInputs = [
pkg-config
];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
udev
];
postInstall = ''
install -Dm444 \
rules.d/20-asd-backlight.rules \
$out/lib/udev/rules.d/20-asd-backlight.rules
'';
meta = {
description = "Apple Studio Display brightness controll";
mainProgram = "asdbctl";
homepage = "https://github.com/juliuszint/asdbctl";
changelog = "https://github.com/juliuszint/asdbctl/releases/tag/${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = [
lib.maintainers.danieldk
];
};
})
+5 -8
View File
@@ -25,14 +25,14 @@ in
python.pkgs.buildPythonApplication rec {
pname = "awsebcli";
version = "3.21";
version = "3.22";
pyproject = true;
src = fetchFromGitHub {
owner = "aws";
repo = "aws-elastic-beanstalk-cli";
tag = version;
hash = "sha256-VU8bXvS4m4eIamjlgGmHE2qwDXWAXvWTa0QHomXR5ZE=";
hash = "sha256-I85VteUjPPWRixXC1mEiMmk46mYPzQJoaYcHV8ztMU4=";
};
pythonRelaxDeps = [
@@ -45,12 +45,6 @@ python.pkgs.buildPythonApplication rec {
"urllib3"
];
postPatch = ''
# https://github.com/aws/aws-elastic-beanstalk-cli/pull/469
substituteInPlace setup.py \
--replace-fail "scripts=['bin/eb']," ""
'';
dependencies = with python.pkgs; [
blessed
botocore
@@ -88,6 +82,9 @@ python.pkgs.buildPythonApplication rec {
"test_generate_and_upload_keypair__exit_code_1"
"test_generate_and_upload_keypair__exit_code_is_other_than_1_and_0"
"test_generate_and_upload_keypair__ssh_keygen_not_present"
# AssertionError: Expected 'echo' to be called once. Called 2 times
"test_multiple_modules__one_or_more_of_the_specified_modules_lacks_an_env_yaml"
];
meta = with lib; {
+3
View File
@@ -25,6 +25,7 @@ let
"8.1" = "sha256-oRd6PbBLOboH9EVRfZl5u71ZoVMFO4K/uftxlL/vm18=";
"8.2" = "sha256-95qBidNHIGLGCb3QbUIzBMHsRi2GTPhwAjJg+JTteDk=";
"8.3" = "sha256-8TO28o4YYFK1r2tInjXKenki/izHzZL0Dblaippekl8=";
"8.4" = "sha256-Dg+Q0W6Rh2L4J7hmxLxuM3l/dKYHT499Mix4Zpu2Vno=";
};
};
"i686-linux" = {
@@ -33,6 +34,7 @@ let
"8.1" = "sha256-mXJ1hO8NcODG7Wj3lQ+5lkSjcbkKLN5OOzcobigScKI=";
"8.2" = "sha256-P5fQTVfE/DvLD4E3kUPE+eeOM9YVNNixgWVRq3Ca5M4=";
"8.3" = "sha256-rMUv2EUlepBahMaEvs60i7RFTmaBe4P4qB1hcARqP9Y=";
"8.4" = "sha256-g7v7oN7wfrER9VPk6bGhr+l6GMh2iYHUihcXF9T4GOc=";
};
};
"aarch64-linux" = {
@@ -41,6 +43,7 @@ let
"8.1" = "sha256-Tj7LHXS4m9hF9gY/9vfOQPJVP+vHM1h8XdBY9vyRhFo=";
"8.2" = "sha256-6kfotMptfVLPL414mr6LeJZ3ODnjepYQYnKvg4fHIAg=";
"8.3" = "sha256-M/GTdinOi3Em7GJOm1iUKkuDNg8La3iQpG+wGHp0ycE=";
"8.4" = "sha256-/wwgP76liAb6//uvDLGD5l+skh4P22Q8KdZN7nlEbXI=";
};
};
"aarch64-darwin" = {
+3 -3
View File
@@ -10,7 +10,7 @@
let
pname = "cargo-mobile2";
version = "0.17.6";
version = "0.20.0";
in
rustPlatform.buildRustPackage {
inherit pname version;
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage {
owner = "tauri-apps";
repo = pname;
rev = "cargo-mobile2-v${version}";
hash = "sha256-kIy5Ic7Zk6twcEbZN/wRLwMK0XeMF0lNkFDIc2vO944=";
hash = "sha256-7/ol4Jb/2s007LeSMo6YYDT5vipsZZF6O4hfJ7ylHGg=";
};
# Manually specify the sourceRoot since this crate depends on other crates in the workspace. Relevant info at
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage {
# sourceRoot = "${src.name}/tooling/cli";
useFetchCargoVendor = true;
cargoHash = "sha256-An9EuNv+6ttNKp50RutzxtHl/RS5gn9sUNlWtipAujk=";
cargoHash = "sha256-zSUT2zClpSlBDu6vgMv4TZn9Jp0Ych6EQKo1AwkSMXU=";
preBuild = ''
mkdir -p $out/share/
+8 -9
View File
@@ -3,30 +3,29 @@
buildNpmPackage,
fetchFromGitHub,
}:
let
buildNpmPackage (finalAttrs: {
pname = "clean-css-cli";
version = "5.6.3";
src = fetchFromGitHub {
owner = "clean-css";
repo = "clean-css-cli";
rev = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-tsFNcQg55uY2gL5xLLLS6INLlYzbsU6M3hnsYeOFGEw=";
};
in
buildNpmPackage {
pname = "clean-css-cli";
inherit version src;
npmDepsHash = "sha256-uvI9esVVOE18syHUCJpoiDY+Vh3hJO+GsMOTZSYJaxg=";
dontNpmBuild = true;
dontCheckForBrokenSymlinks = true;
meta = {
changelog = "https://github.com/clean-css/clean-css-cli/blob/${src.rev}/History.md";
description = "Command-line interface to the clean-css CSS optimization library";
homepage = "https://github.com/clean-css/clean-css-cli";
changelog = "https://github.com/clean-css/clean-css-cli/blob/v${finalAttrs.version}/History.md";
license = lib.licenses.mit;
mainProgram = "cleancss";
maintainers = with lib.maintainers; [ momeemt ];
};
}
})
@@ -45,11 +45,11 @@ let
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "copilot-language-server";
version = "1.294.0";
version = "1.304.0";
src = fetchzip {
url = "https://github.com/github/copilot-language-server-release/releases/download/${finalAttrs.version}/copilot-language-server-native-${finalAttrs.version}.zip";
hash = "sha256-8nB8vlrSy+949HiJRCa9yFqu/GAaluFH1VzE63AUUs8=";
hash = "sha256-F0urL3bMlNcxHTrePYsagEx2664C7USYAcnhCCzB/rA=";
stripRoot = false;
};
+2 -2
View File
@@ -7,11 +7,11 @@
stdenv.mkDerivation rec {
pname = "cpuid";
version = "20241023";
version = "20250419";
src = fetchurl {
url = "http://etallen.com/cpuid/${pname}-${version}.src.tar.gz";
sha256 = "sha256-/HdDWo1dKzVRcTMB6M24PmKjz+3IQTKw7JsbteUkT9w=";
sha256 = "sha256-Mcz8A/k92ISKZ5jydPoDeR9cO/uxp2f+IIamnONyess=";
};
# For pod2man during the build process.
@@ -40,7 +40,7 @@ buildDotnetModule rec {
homepage = "https://github.com/Tyrrrz/DiscordChatExporter";
license = licenses.gpl3Plus;
changelog = "https://github.com/Tyrrrz/DiscordChatExporter/blob/${version}/Changelog.md";
maintainers = with maintainers; [ kekschen ];
maintainers = with maintainers; [ willow ];
platforms = [ "x86_64-linux" ];
mainProgram = "discordchatexporter";
};
+63
View File
@@ -0,0 +1,63 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "eliza";
version = "0-unstable-2025-02-21";
src = fetchFromGitHub {
owner = "anthay";
repo = "ELIZA";
rev = "27bcf6e5fb1d32812cc0aab8133fa5e395d41773";
hash = "sha256-/i8mckRQWTK1yI/MNaieSuE+dx94DMdrABkqf/bXQbM=";
};
doCheck = true;
# Unit tests are executed automatically on execution
checkPhase = ''
runHook preCheck
echo Corki is mana | ./eliza
runHook postCheck
'';
buildPhase = ''
runHook preBuild
$CXX -std=c++20 -pedantic -o eliza ./src/eliza.cpp
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm544 ./eliza $out/bin/eliza
runHook postInstall
'';
passthru.updateScript = nix-update-script {
extraArgs = [
"--version=branch=master"
];
};
meta = {
description = "C++ simulation of Joseph Weizenbaums 1966 ELIZA";
longDescription = ''
This is an implementation in C++ of ELIZA that attempts to be as close
to the original as possible.
It was made to closely follow Joseph Weizenbaums description of his program
given in his January 1966 Communications of the ACM paper, and later changed
to follow the ELIZA source code found on 2021 and the SLIP programming
function HASH(D,N) found on 2022.
It is controlled by a script identical to the one given in the appendix of
the 1966 paper.
'';
license = lib.licenses.cc0;
mainProgram = "eliza";
homepage = "https://github.com/anthay/ELIZA";
maintainers = with lib.maintainers; [ EmanuelM153 ];
platforms = lib.platforms.all;
};
})
+3 -3
View File
@@ -6,16 +6,16 @@
}:
rustPlatform.buildRustPackage rec {
pname = "firezone-gateway";
version = "1.4.5";
version = "1.4.6";
src = fetchFromGitHub {
owner = "firezone";
repo = "firezone";
tag = "gateway-${version}";
hash = "sha256-2MDQyMCQIqV1Kbem53jnE8DGUZ6SrZqp2LpGJXvLBgA=";
hash = "sha256-ra5ZWPwNhyZEc9pBkcITvQyomgQ22yiWI16dnv1Fm3E=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-Yz9xuH8Eph1pzv0siTpvdSXZLj/AjS5PR06CitK9NdE=";
cargoHash = "sha256-5B9nvFanHXZV8p8m2vsRLC5pSzwL2lX+V651oV8joJs=";
sourceRoot = "${src.name}/rust";
buildAndTestSubdir = "gateway";
RUSTFLAGS = "--cfg system_certs";
@@ -6,16 +6,16 @@
}:
rustPlatform.buildRustPackage rec {
pname = "firezone-headless-client";
version = "1.4.5";
version = "1.4.6";
src = fetchFromGitHub {
owner = "firezone";
repo = "firezone";
tag = "headless-client-${version}";
hash = "sha256-IVbMdRtb6cu4obTFYPAYQXu9sXH7vT7K9j79IXg0KXk=";
hash = "sha256-ra5ZWPwNhyZEc9pBkcITvQyomgQ22yiWI16dnv1Fm3E=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-8//Gg45iJw9rfEn08FW+wDbg7Dz2MyKFGf3p2Td7kHA=";
cargoHash = "sha256-5B9nvFanHXZV8p8m2vsRLC5pSzwL2lX+V651oV8joJs=";
sourceRoot = "${src.name}/rust";
buildAndTestSubdir = "headless-client";
RUSTFLAGS = "--cfg system_certs";
@@ -1,74 +0,0 @@
From 1d78c8bd4295262a3118f478e6b3a7c7536fa282 Mon Sep 17 00:00:00 2001
From: Johannes Altmanninger <aclopte@gmail.com>
Date: Wed, 19 Mar 2025 09:39:04 +0100
Subject: [PATCH] Fix concurrent setlocale() in string escape tests
In our C++ implementation, these tests were run serially. As pointed out in
https://github.com/fish-shell/fish-shell/issues/11254#issuecomment-2735623229
we run them in parallel now, which means that one test could be changing
the global locale used by another.
In theory this could be fine because all tests are setting setting the
global locale to the same thing but the existence of a lock suggests that
setlocale() is not guaranteed to be atomic, so it's possible that another
thread uses a temporarily-invalid locale.
Fixes #11254
---
src/tests/string_escape.rs | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/tests/string_escape.rs b/src/tests/string_escape.rs
index ba8ee7534ebf..4428d679cd35 100644
--- a/src/tests/string_escape.rs
+++ b/src/tests/string_escape.rs
@@ -1,3 +1,5 @@
+use std::sync::MutexGuard;
+
use crate::common::{
escape_string, str2wcstring, unescape_string, wcs2string, EscapeFlags, EscapeStringStyle,
UnescapeStringStyle, ENCODE_DIRECT_BASE, ENCODE_DIRECT_END,
@@ -10,21 +12,21 @@ use rand::{Rng, RngCore};
/// wcs2string is locale-dependent, so ensure we have a multibyte locale
/// before using it in a test.
-fn setlocale() {
- let _guard = LOCALE_LOCK.lock().unwrap();
+fn setlocale() -> MutexGuard<'static, ()> {
+ let guard = LOCALE_LOCK.lock().unwrap();
#[rustfmt::skip]
const UTF8_LOCALES: &[&str] = &[
"C.UTF-8", "en_US.UTF-8", "en_GB.UTF-8", "de_DE.UTF-8", "C.utf8", "UTF-8",
];
if crate::libc::MB_CUR_MAX() > 1 {
- return;
+ return guard;
}
for locale in UTF8_LOCALES {
let locale = std::ffi::CString::new(locale.to_owned()).unwrap();
unsafe { libc::setlocale(libc::LC_CTYPE, locale.as_ptr()) };
if crate::libc::MB_CUR_MAX() > 1 {
- return;
+ return guard;
}
}
panic!("No UTF-8 locale found");
@@ -100,7 +102,7 @@ fn test_escape_var() {
}
fn escape_test(escape_style: EscapeStringStyle, unescape_style: UnescapeStringStyle) {
- setlocale();
+ let _locale_guard = setlocale();
let seed: u128 = 92348567983274852905629743984572;
let mut rng = get_seeded_rng(seed);
@@ -174,7 +176,7 @@ fn str2hex(input: &[u8]) -> String {
/// string comes back through double conversion.
#[test]
fn test_convert() {
- setlocale();
+ let _locale_guard = setlocale();
let seed = get_rng_seed();
let mut rng = get_seeded_rng(seed);
let mut origin = Vec::new();
+3 -7
View File
@@ -152,13 +152,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "fish";
version = "4.0.1";
version = "4.0.2";
src = fetchFromGitHub {
owner = "fish-shell";
repo = "fish-shell";
tag = finalAttrs.version;
hash = "sha256-Mj4v2ubYr4ufs7aU/1AdY239byiCJHKXam64af/VO3U=";
hash = "sha256-UpoZPipXZbzLWCOXzDjfyTDrsKyXGbh3Rkwj5IeWeY4=";
};
env = {
@@ -169,7 +169,7 @@ stdenv.mkDerivation (finalAttrs: {
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) src patches;
hash = "sha256-4kqBrpeneCpF0WohP1ZArKrV3duHAE01XA5+GT9f56w=";
hash = "sha256-FkJB33vVVz7Kh23kfmjQDn61X2VkKLG9mUt8f3TrCHg=";
};
patches = [
@@ -188,10 +188,6 @@ stdenv.mkDerivation (finalAttrs: {
# * <https://github.com/LnL7/nix-darwin/issues/122>
# * <https://github.com/fish-shell/fish-shell/issues/7142>
./nix-darwin-path.patch
# remove 4.0.2
# https://github.com/fish-shell/fish-shell/issues/11254
./1d78c8bd4295262a3118f478e6b3a7c7536fa282.patch
];
# Fix FHS paths in tests
+67 -8
View File
@@ -1,19 +1,78 @@
{
stdenv,
fetchurl,
runCommandLocal,
lib,
htmlq,
curl,
cacert,
gtk3,
pkg-config,
}:
stdenv.mkDerivation rec {
pname = "gaw";
version = "20220315";
pname = "gaw3";
version = "20250128";
src = fetchurl {
url = "https://download.tuxfamily.org/gaw/download/gaw3-${version}.tar.gz";
sha256 = "0j2bqi9444s1mfbr7x9rqp232xf7ab9z7ifsnl305jsklp6qmrbg";
};
# https://www.rvq.fr/php/ndl.php?id=gaw.*
# https://www.rvq.fr/php/ndl.php?id=gaw3-20250128.tar.gz
src =
runCommandLocal "gaw3-${version}.tar.gz"
{
BASE = "https://www.rvq.fr/php/ndl.php";
FNAME = "gaw3-${version}.tar.gz";
nativeBuildInputs = [
htmlq
curl
];
SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
outputHashMode = "recursive";
outputHashAlgo = "sha256";
outputHash = "sha256-3uO+209+cmu231iabyYmABmgegyxAxswWDWA/v8WSy0=";
}
''
# fetch download page
html_form=$(
curl "$BASE?id=$FNAME" |
tr '\n' ' ' | tr -s ' ' | # minimize whitespace
htmlq tr | # select table rows, one per line
grep "<td>$FNAME</td>" | # filter for row of interest
head -n1 | # first match, just in case
htmlq form --base "$BASE"
)
declare -a curl_args=()
# hidden fields
declare -a input_names=()
readarray -td $'\n' input_names < <(
htmlq <<<"$html_form" "input[type=hidden]" -a name
)
for input_name in "''${input_names[@]}"; do
input_value=$(
htmlq <<<"$html_form" "input[type=hidden][name=''${input_name}]" -a value
)
echo "$input_name = $input_value"
curl_args+=( --form "$input_name=$input_value" )
done
# destination
curl_args+=(
"https://www.rvq.fr/$( htmlq <<<"$html_form" form -a action )"
)
# POST and download
(set -x
curl -X POST "''${curl_args[@]}" $NIX_CURL_FLAGS --output "$FNAME"
)
# unpack and strip root dir
mkdir unpack/
tar xvf "$FNAME" --directory=unpack/
[[ "$(printf "%s\n" unpack/* | wc -l)" -eq 1 ]]
cp -a unpack/* $out
'';
nativeBuildInputs = [ pkg-config ];
@@ -28,7 +87,7 @@ stdenv.mkDerivation rec {
input from sound cards. Data can be imported to gaw using files,
direct tcp/ip connection or directly from the sound card.
'';
homepage = "http://gaw.tuxfamily.org";
homepage = "https://www.rvq.fr/linux/gaw.php";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ fbeffa ];
platforms = platforms.linux;
+3 -3
View File
@@ -11,17 +11,17 @@
rustPlatform.buildRustPackage rec {
pname = "gitu";
version = "0.29.0";
version = "0.30.3";
src = fetchFromGitHub {
owner = "altsem";
repo = "gitu";
rev = "v${version}";
hash = "sha256-c2YVcE+a/9Z6qTLEbcSFE6393SEeudyvdbzCRJfszcc=";
hash = "sha256-WXz8H68EpvkUEpdEbdukggbjFXUPA+FRcZTsk48W6TU=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-+tSNUtsDFKqx5W8+cuxyFsG1etm44eYgoYuoUt5tw3E=";
cargoHash = "sha256-0+KHO7CGYdifQGbtywuK5xQmS2BuxFX50eMGpo5RRYU=";
nativeBuildInputs = [
pkg-config
@@ -21,9 +21,6 @@ buildGoModule rec {
subPackages = [ "." ];
# renable after https://github.com/nametake/golangci-lint-langserver/pull/52
doCheck = false;
nativeCheckInputs = [
golangci-lint
writableTmpDirAsHomeHook
+3 -3
View File
@@ -7,18 +7,18 @@
rustPlatform.buildRustPackage rec {
pname = "harper";
version = "0.29.0";
version = "0.29.1";
src = fetchFromGitHub {
owner = "Automattic";
repo = "harper";
rev = "v${version}";
hash = "sha256-wsCUB3UO5czqJPGctb3ZsTtcVXMqBB7/8/uk5ShL8ZA=";
hash = "sha256-bar4AdLovV8MBGF/yGHbcw1w3MQ4FFbmJkiDDS2Iq5g=";
};
buildAndTestSubdir = "harper-ls";
useFetchCargoVendor = true;
cargoHash = "sha256-KrW4I4Tg30/Yg5PuZCEWkrtjNUKMZmzqCmFAnKtj7A4=";
cargoHash = "sha256-CJZSBs8EtUstUNDUt3QQhv/f/GriaGzF9fw9IJWDNAk=";
passthru.updateScript = nix-update-script { };
+2 -2
View File
@@ -6,13 +6,13 @@
buildGoModule rec {
pname = "hjson-go";
version = "4.4.0";
version = "4.5.0";
src = fetchFromGitHub {
owner = "hjson";
repo = pname;
rev = "v${version}";
hash = "sha256-fonPxk/9ue8LzHTdKpuHJcucQoMl4P6gq+tbjS8Ui7Q=";
hash = "sha256-0xFTxnXMJA98+Y6gwO8zCDPQvLecG1qmbGAISCFMaPw=";
};
vendorHash = null;
+2 -2
View File
@@ -6,10 +6,10 @@
}:
let
pname = "hydralauncher";
version = "3.4.0";
version = "3.4.4";
src = fetchurl {
url = "https://github.com/hydralauncher/hydra/releases/download/v${version}/hydralauncher-${version}.AppImage";
hash = "sha256-d2ZtCAbj7xYkLhsuTPi9/ORb+Nkk5KbGvaDSaawqGcU=";
hash = "sha256-7mYwjxfef9uiBI2idLUqQxJ4hiWiPVCdMnw1MaovUEM=";
};
appimageContents = appimageTools.extractType2 { inherit pname src version; };
+2 -2
View File
@@ -11,13 +11,13 @@
buildGoModule (finalAttrs: {
pname = "krillinai";
version = "1.1.0";
version = "1.1.3";
src = fetchFromGitHub {
owner = "krillinai";
repo = "KrillinAI";
tag = "v${finalAttrs.version}";
hash = "sha256-AAlefejME+XLERcDJDeVgzySVX+KGrCMt7PJyWaxnoM=";
hash = "sha256-hEKjqQcHnrxY266EP5uoLMzw6csi2bS5Q+ghGb6TJ4c=";
};
vendorHash = "sha256-mpvypCZmvVVljftGpcV1aea3s7Xmhr0jLfKZIZ0nkX8=";
@@ -8,11 +8,11 @@
let
pname = "ledger-live-desktop";
version = "2.107.0";
version = "2.109.0";
src = fetchurl {
url = "https://download.live.ledger.com/${pname}-${version}-linux-x86_64.AppImage";
hash = "sha256-PtoazbAwwG856M2HoPjN6yuTHlSiIJs5PziDrkLAEZE=";
hash = "sha256-wqY5f+A4j+KY99LulL8YS1eACvEsTSfMGV7Be6yOMqM=";
};
appimageContents = appimageTools.extractType2 {
+6 -1
View File
@@ -25,12 +25,17 @@ stdenv.mkDerivation rec {
hash = "sha256-5oJV8gr2rwvSdpX5w3gmIw/LTrWtXVnl6oLr/soNTDk=";
};
outputs = [
"out"
"dev"
];
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
propagatedBuildInputs = [
pcre2
];
-2
View File
@@ -2,7 +2,6 @@
lib,
buildNimPackage,
fetchFromGitHub,
pcre,
versionCheckHook,
}:
@@ -21,7 +20,6 @@ buildNimPackage (finalAttrs: {
lockFile = ./lock.json;
buildInputs = [ pcre ];
nativeBuildInputs = [ versionCheckHook ];
nimFlags = [ ''--passC:"-Wno-incompatible-pointer-types"'' ];
+2 -2
View File
@@ -11,13 +11,13 @@
stdenv.mkDerivation rec {
pname = "nb";
version = "7.16.1";
version = "7.17.0";
src = fetchFromGitHub {
owner = "xwmx";
repo = "nb";
rev = version;
hash = "sha256-RX3DEjk+/tivTyv0+j3lZAKYgca4Zq9zQ+P1a/RXj2I=";
hash = "sha256-gUI7hAZabYPHkSwGtFZxEoi5Hw76fOLYbMZQIvsnSas=";
};
nativeBuildInputs = [ installShellFiles ];
+20 -14
View File
@@ -1,4 +1,5 @@
{
stdenv,
lib,
rustPlatform,
installShellFiles,
@@ -7,22 +8,22 @@
nix-update-script,
nvd,
nix-output-monitor,
buildPackages,
}:
let
version = "3.6.0";
runtimeDeps = [
nvd
nix-output-monitor
];
in
rustPlatform.buildRustPackage {
inherit version;
rustPlatform.buildRustPackage (finalAttrs: {
pname = "nh";
version = "3.6.0";
src = fetchFromGitHub {
owner = "viperML";
owner = "nix-community";
repo = "nh";
tag = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-k8rz5RF1qi7RXzQYWGbw5pJRNRFIdX85SIYN+IHiVL4=";
};
@@ -33,14 +34,19 @@ rustPlatform.buildRustPackage {
makeBinaryWrapper
];
preFixup = ''
mkdir completions
$out/bin/nh completions --shell bash > completions/nh.bash
$out/bin/nh completions --shell zsh > completions/nh.zsh
$out/bin/nh completions --shell fish > completions/nh.fish
preFixup = lib.optionalString (stdenv.hostPlatform.emulatorAvailable buildPackages) (
let
emulator = stdenv.hostPlatform.emulator buildPackages;
in
''
mkdir completions
${emulator} $out/bin/nh completions --shell bash > completions/nh.bash
${emulator} $out/bin/nh completions --shell zsh > completions/nh.zsh
${emulator} $out/bin/nh completions --shell fish > completions/nh.fish
installShellCompletion completions/*
'';
installShellCompletion completions/*
''
);
postFixup = ''
wrapProgram $out/bin/nh \
@@ -54,7 +60,7 @@ rustPlatform.buildRustPackage {
meta = {
description = "Yet another nix cli helper";
homepage = "https://github.com/viperML/nh";
homepage = "https://github.com/nix-community/nh";
license = lib.licenses.eupl12;
mainProgram = "nh";
maintainers = with lib.maintainers; [
@@ -62,4 +68,4 @@ rustPlatform.buildRustPackage {
viperML
];
};
}
})
+22 -14
View File
@@ -5,49 +5,57 @@
testers,
paretosecurity,
nixosTests,
pkg-config,
gtk3,
webkitgtk_4_1,
}:
buildGoModule rec {
buildGoModule (finalAttrs: {
nativeBuildInputs = [ pkg-config ];
buildInputs = [
gtk3
webkitgtk_4_1
];
pname = "paretosecurity";
version = "0.1.3";
version = "0.1.9";
src = fetchFromGitHub {
owner = "ParetoSecurity";
repo = "agent";
rev = version;
hash = "sha256-ovyfHqLCf5U3UR1HfoA+UQhqLZ6IaILcpqptPRQsb60=";
rev = finalAttrs.version;
hash = "sha256-KJs4xC3EtGG4116UE+oIEwAMcuDWIm9gqgZY+Bv14ac=";
};
vendorHash = "sha256-7mKAFkKGpBOjXc3J/sfF3k3pJF53tFybXZgbfJInuSY=";
vendorHash = "sha256-3plpvwLe32AsGuVzdM2fSmTPkKwRFmhi651NEIRdOxw=";
proxyVendor = true;
ldflags = [
"-s"
"-X=github.com/ParetoSecurity/agent/shared.Version=${version}"
"-X=github.com/ParetoSecurity/agent/shared.Commit=${src.rev}"
"-X=github.com/ParetoSecurity/agent/shared.Version=${finalAttrs.version}"
"-X=github.com/ParetoSecurity/agent/shared.Commit=${finalAttrs.src.rev}"
"-X=github.com/ParetoSecurity/agent/shared.Date=1970-01-01T00:00:00Z"
];
postInstall = ''
# Install global systemd files
install -Dm400 ${src}/apt/paretosecurity.socket $out/lib/systemd/system/paretosecurity.socket
install -Dm400 ${src}/apt/paretosecurity.service $out/lib/systemd/system/paretosecurity.service
install -Dm400 ${finalAttrs.src}/apt/paretosecurity.socket $out/lib/systemd/system/paretosecurity.socket
install -Dm400 ${finalAttrs.src}/apt/paretosecurity.service $out/lib/systemd/system/paretosecurity.service
substituteInPlace $out/lib/systemd/system/paretosecurity.service \
--replace-fail "/usr/bin/paretosecurity" "$out/bin/paretosecurity"
# Install user systemd files
install -Dm444 ${src}/apt/paretosecurity-user.timer $out/lib/systemd/user/paretosecurity-user.timer
install -Dm444 ${src}/apt/paretosecurity-user.service $out/lib/systemd/user/paretosecurity-user.service
install -Dm444 ${finalAttrs.src}/apt/paretosecurity-user.timer $out/lib/systemd/user/paretosecurity-user.timer
install -Dm444 ${finalAttrs.src}/apt/paretosecurity-user.service $out/lib/systemd/user/paretosecurity-user.service
substituteInPlace $out/lib/systemd/user/paretosecurity-user.service \
--replace-fail "/usr/bin/paretosecurity" "$out/bin/paretosecurity"
install -Dm444 ${src}/apt/paretosecurity-trayicon.service $out/lib/systemd/user/paretosecurity-trayicon.service
install -Dm444 ${finalAttrs.src}/apt/paretosecurity-trayicon.service $out/lib/systemd/user/paretosecurity-trayicon.service
substituteInPlace $out/lib/systemd/user/paretosecurity-trayicon.service \
--replace-fail "/usr/bin/paretosecurity" "$out/bin/paretosecurity"
'';
passthru.tests = {
version = testers.testVersion {
version = "${version}";
inherit (finalAttrs) version;
package = paretosecurity;
};
integration_test = nixosTests.paretosecurity;
@@ -80,4 +88,4 @@ buildGoModule rec {
maintainers = with lib.maintainers; [ zupo ];
mainProgram = "paretosecurity";
};
}
})
+2 -2
View File
@@ -9,11 +9,11 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "proton-pass";
version = "1.30.1";
version = "1.31.1";
src = fetchurl {
url = "https://proton.me/download/pass/linux/x64/proton-pass_${finalAttrs.version}_amd64.deb";
hash = "sha256-0IEQAzK3Pu195kjpo9l2HdLUCySR0HKSl1M8Z9URgJA=";
hash = "sha256-OYd26KTq2uoZzqyb2ntk3bS5cKcJJ7od0VIHfSK8lqs=";
};
dontConfigure = true;
+5 -5
View File
@@ -32,18 +32,18 @@
stdenv.mkDerivation (finalAttrs: rec {
pname = "q2pro";
version = "0-unstable-2025-04-03";
version = "0-unstable-2025-04-18";
src = fetchFromGitHub {
owner = "skullernet";
repo = "q2pro";
rev = "0e00beedaa892fd5f6e50d33231978846ab2d5de";
hash = "sha256-xw09M7EtXJ7i6myj/Em0Rtg5CmZtpbyRWmkPhCApu7I=";
rev = "1cc95be8bb967f4274e54a6d7251e4cd7f5ed9c1";
hash = "sha256-7dsFzCnWiVNioyRIW0KjicfgGTxjozicUpDJG5jGvB0=";
};
# build date and rev number is displayed in the game's console
revCount = "3749"; # git rev-list --count ${src.rev}
SOURCE_DATE_EPOCH = "1743706497"; # git show -s --format=%ct ${src.rev}
revCount = "3782"; # git rev-list --count ${src.rev}
SOURCE_DATE_EPOCH = "1744997502"; # git show -s --format=%ct ${src.rev}
nativeBuildInputs =
[
-68
View File
@@ -1,68 +0,0 @@
{
lib,
python3Packages,
fetchFromGitHub,
# tests
versionCheckHook,
# passthru
nix-update-script,
}:
python3Packages.buildPythonApplication rec {
pname = "ruff-lsp";
version = "0.0.62";
pyproject = true;
src = fetchFromGitHub {
owner = "astral-sh";
repo = "ruff-lsp";
tag = "v${version}";
hash = "sha256-aYhNvT4rcaEzuqwql7TpFkCoyH77uSG7r6uY5aIzhrk=";
};
build-system = with python3Packages; [ hatchling ];
dependencies = with python3Packages; [
lsprotocol
packaging
pygls
ruff
typing-extensions
];
nativeCheckInputs = with python3Packages; [
pytest-asyncio
pytestCheckHook
python-lsp-jsonrpc
ruff
versionCheckHook
];
versionCheckProgramArg = "--version";
makeWrapperArgs = [
# prefer ruff from user's PATH, that's usually desired behavior
"--suffix PATH : ${lib.makeBinPath (with python3Packages; [ ruff ])}"
# Unset ambient PYTHONPATH in the wrapper, so ruff-lsp only ever runs with
# its own, isolated set of dependencies. This works because the correct
# PYTHONPATH is set in the Python script, which runs after the wrapper.
"--unset PYTHONPATH"
];
passthru = {
updateScript = nix-update-script { };
};
meta = {
changelog = "https://github.com/astral-sh/ruff-lsp/releases/tag/v${version}";
description = "Language Server Protocol implementation for Ruff";
homepage = "https://github.com/astral-sh/ruff-lsp";
license = lib.licenses.mit;
mainProgram = "ruff-lsp";
maintainers = with lib.maintainers; [
figsoda
kalekseev
];
};
}
+3 -8
View File
@@ -10,7 +10,6 @@
versionCheckHook,
# passthru
ruff-lsp,
nixosTests,
nix-update-script,
}:
@@ -70,13 +69,9 @@ rustPlatform.buildRustPackage (finalAttrs: {
doInstallCheck = true;
passthru = {
tests =
{
inherit ruff-lsp;
}
// lib.optionalAttrs stdenv.hostPlatform.isLinux {
nixos-test-driver-busybox = nixosTests.nixos-test-driver.busybox;
};
tests = lib.optionalAttrs stdenv.hostPlatform.isLinux {
nixos-test-driver-busybox = nixosTests.nixos-test-driver.busybox;
};
updateScript = nix-update-script { };
};
+1 -1
View File
@@ -143,7 +143,7 @@ buildDotnetModule rec {
maintainers = with maintainers; [
jk
artemist
kekschen
willow
];
platforms = [
"x86_64-linux"
+13 -10
View File
@@ -13,6 +13,7 @@
stdenv,
zlib,
# Boolean flags
enableSTB ? true,
## Darwin headless will hang when trying to run the SDL test program
enableSdltest ? (!stdenv.hostPlatform.isDarwin),
}:
@@ -32,16 +33,17 @@ stdenv.mkDerivation (finalAttrs: {
pkg-config
];
buildInputs = [
SDL2
giflib
libXpm
libjpeg
libpng
libtiff
libwebp
zlib
];
buildInputs =
[
SDL2
libtiff
libwebp
zlib
]
++ lib.optionals (!enableSTB) [
libjpeg
libpng
];
configureFlags =
[
@@ -50,6 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
(lib.enableFeature false "png-shared")
(lib.enableFeature false "tif-shared")
(lib.enableFeature false "webp-shared")
(lib.enableFeature enableSTB "stb-image")
(lib.enableFeature enableSdltest "sdltest")
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
@@ -1,17 +0,0 @@
# Dependency of pygame, toppler
{ SDL2_image, fetchurl }:
SDL2_image.overrideAttrs (oldAttrs: {
version = "2.0.5";
src = fetchurl {
inherit (oldAttrs.src) url;
hash = "sha256-vdX24CZoL31+G+C2BRsgnaL0AqLdi9HEvZwlrSYxCNA";
};
postPatch =
(oldAttrs.postPatch or "")
+ ''
# allow newer autoreconf to run successfully
touch NEWS README AUTHORS ChangeLog
'';
})
+25 -26
View File
@@ -10,10 +10,20 @@
xorg,
libxkbcommon,
wayland,
libiconv,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "slint-lsp";
version = "1.10.0";
src = fetchCrate {
inherit (finalAttrs) pname version;
hash = "sha256-5LDEjJx+PC6pOem06DKFkPcjpIkF20gbxi/PAVZT1ns=";
};
cargoHash = "sha256-1/4dOlhByJDpduExu9ZOjb7JYFKehnLiLCboWUnmfp8=";
let
rpathLibs =
[
fontconfig
@@ -27,46 +37,35 @@ let
libxkbcommon
wayland
];
in
rustPlatform.buildRustPackage rec {
pname = "slint-lsp";
version = "1.10.0";
src = fetchCrate {
inherit pname version;
hash = "sha256-5LDEjJx+PC6pOem06DKFkPcjpIkF20gbxi/PAVZT1ns=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-1/4dOlhByJDpduExu9ZOjb7JYFKehnLiLCboWUnmfp8=";
nativeBuildInputs = [
cmake
pkg-config
fontconfig
];
buildInputs =
rpathLibs
++ [ xorg.libxcb.dev ]
++ lib.optionals stdenv.hostPlatform.isDarwin [
libiconv
];
buildInputs = finalAttrs.rpathLibs ++ [ xorg.libxcb.dev ];
# Tests requires `i_slint_backend_testing` which is only a dev dependency
doCheck = false;
postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
patchelf --set-rpath ${lib.makeLibraryPath rpathLibs} $out/bin/slint-lsp
patchelf --set-rpath ${lib.makeLibraryPath finalAttrs.rpathLibs} $out/bin/slint-lsp
'';
dontPatchELF = true;
meta = with lib; {
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Language Server Protocol (LSP) for Slint UI language";
mainProgram = "slint-lsp";
homepage = "https://slint-ui.com/";
changelog = "https://github.com/slint-ui/slint/blob/v${version}/CHANGELOG.md";
license = with licenses; [ gpl3Plus ];
maintainers = with maintainers; [ xgroleau ];
downloadPage = "https://github.com/slint-ui/slint/";
changelog = "https://github.com/slint-ui/slint/blob/v${finalAttrs.version}/CHANGELOG.md";
license = with lib.licenses; [ gpl3Plus ];
maintainers = with lib.maintainers; [ xgroleau ];
};
}
})
@@ -5,7 +5,7 @@
cmake,
}:
let
version = "8.0.0";
version = "9.1.0";
in
stdenv.mkDerivation (finalAttrs: {
pname = "source-meta-json-schema";
@@ -15,7 +15,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "sourcemeta";
repo = "jsonschema";
rev = "v${version}";
hash = "sha256-EH+wi8MAgAxTy7OPQK/faX6OVY38/Z5fXhaK92xKkyA=";
hash = "sha256-YxIRDTAAvkltT4HGUvPt/davarGRfE808OoI9UheqCA=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -10,17 +10,17 @@
rustPlatform.buildRustPackage rec {
pname = "stargazer";
version = "1.3.1";
version = "1.3.2";
src = fetchFromSourcehut {
owner = "~zethra";
repo = "stargazer";
rev = version;
hash = "sha256-0vbQDHuLrgrsWiOb2hb6lYylJm5o/wOzoDIw85H8Eh0=";
hash = "sha256-Yulm0XkVaN+yBKj8LDsn8pBYXEqTOSGLqbpIKDN0G2U=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-KdHYyuH1RMLRueqYbfADUktBx9aL8yTagB0KxEGQsCs=";
cargoHash = "sha256-MtpJTLKhlVF5AE3huL0JRWXtNCtc0Z5b/S28ekzirPA=";
passthru = {
tests.basic-functionality = nixosTests.stargazer;
@@ -1,23 +1,23 @@
{
version = "1.22.0";
version = "1.22.1";
x86_64-linux = {
url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.0/linux/amd64/sysdig-cli-scanner";
hash = "sha256-qGbQRiUvoynxUeYSmjrz5r9bunthcmQWDzLtTqPu4IU=";
url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.1/linux/amd64/sysdig-cli-scanner";
hash = "sha256-ogQ7NhpU0KZkcZXWSBX4VaTWwXz5WWMXhqZ9abHX6+Y=";
};
aarch64-linux = {
url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.0/linux/arm64/sysdig-cli-scanner";
hash = "sha256-bfY5FRPU7rEVN0o/nf39q8qFP7zgffoEX1iPXbZ22pw=";
url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.1/linux/arm64/sysdig-cli-scanner";
hash = "sha256-apj4GqN7sdZSzpk+FvqcYJLgh+UlcJgPUdXhhurFENQ=";
};
x86_64-darwin = {
url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.0/darwin/amd64/sysdig-cli-scanner";
hash = "sha256-F5br4BJnB9yRWfpqEJgy79csjfYY/St1a/rPGXdvj6A=";
url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.1/darwin/amd64/sysdig-cli-scanner";
hash = "sha256-o5AYd3/8Ot7+EtQ2SXaV72JbR/hI/5Pu7g2jdHZYepo=";
};
aarch64-darwin = {
url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.0/darwin/arm64/sysdig-cli-scanner";
hash = "sha256-CsMZ8m9eJNcOxq77IVLuW1COOa2+mABoMGJ+xk/NARI=";
url = "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/1.22.1/darwin/arm64/sysdig-cli-scanner";
hash = "sha256-FDkqWstWMTtF0QLWk+iadJr7aRHRnpiatqAeoHftVDk=";
};
}
+3 -3
View File
@@ -9,13 +9,13 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "system76-power";
version = "1.2.3";
version = "1.2.4";
src = fetchFromGitHub {
owner = "pop-os";
repo = "system76-power";
tag = finalAttrs.version;
hash = "sha256-fyatAoWw/4ORojayA90er+H5weRykg+2ZzTsGThpW5g=";
hash = "sha256-SHGfs3ZokPOM2nkd/8F/5zjxh9sPXVBtHWkCbmKwEMo=";
};
nativeBuildInputs = [ pkg-config ];
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
];
useFetchCargoVendor = true;
cargoHash = "sha256-/dhuWgHysJ2oWgJ6jc9u4tsUOxlFt/awlK/9Jk1GHCM=";
cargoHash = "sha256-Q/6OFNbqvRDTCT1MyJ3gqd4BTXXRouvnKSM3cm1jQ1g=";
postInstall = ''
install -D -m 0644 data/com.system76.PowerDaemon.conf $out/etc/dbus-1/system.d/com.system76.PowerDaemon.conf

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