Merge ef205d1b24 into haskell-updates

This commit is contained in:
nixpkgs-ci[bot]
2025-09-01 00:25:13 +00:00
committed by GitHub
415 changed files with 8025 additions and 4604 deletions
+1 -1
View File
@@ -258,7 +258,7 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
/pkgs/applications/editors/jetbrains @edwtjo @leona-ya @theCapypara
# Licenses
/lib/licenses.nix @alyssais @emilazy
/lib/licenses.nix @alyssais @emilazy @jopejoe1
# Qt
/pkgs/development/libraries/qt-5 @K900 @NickCao @SuperSandro2000 @ttuegel
+18 -37
View File
@@ -410,9 +410,8 @@ lib.mapAttrs mkLicense (
};
cc-sa-10 = {
shortName = "CC-SA-1.0";
spdxId = "CC-SA-1.0";
fullName = "Creative Commons Share Alike 1.0";
url = "https://creativecommons.org/licenses/sa/1.0";
};
cddl = {
@@ -440,6 +439,11 @@ lib.mapAttrs mkLicense (
fullName = "CeCILL-C Free Software License Agreement";
};
classpathException20 = {
spdxId = "Classpath-exception-2.0";
fullName = "Classpath exception 2.0";
};
cockroachdb-community-license = {
fullName = "CockroachDB Community License Agreement";
url = "https://www.cockroachlabs.com/cockroachdb-community-license/";
@@ -588,14 +592,14 @@ lib.mapAttrs mkLicense (
fsl11Mit = {
fullName = "Functional Source License, Version 1.1, MIT Future License";
url = "https://fsl.software/FSL-1.1-MIT.template.md";
spdxId = "FSL-1.1-MIT";
free = false;
redistributable = true;
};
fsl11Asl20 = {
fullName = "Functional Source License, Version 1.1, Apache 2.0 Future License";
url = "https://fsl.software/FSL-1.1-Apache-2.0.template.md";
spdxId = "FSL-1.1-ALv2";
free = false;
redistributable = true;
};
@@ -646,26 +650,6 @@ lib.mapAttrs mkLicense (
fullName = "GNU General Public License v2.0 only";
};
gpl2Classpath = {
spdxId = "GPL-2.0-with-classpath-exception";
fullName = "GNU General Public License v2.0 only (with Classpath exception)";
};
gpl2ClasspathPlus = {
fullName = "GNU General Public License v2.0 or later (with Classpath exception)";
url = "https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception";
};
gpl2UBDLPlus = {
fullName = "GNU General Public License v3.0 or later (with UBDL exception)";
url = "https://spdx.org/licenses/UBDL-exception.html";
};
gpl2Oss = {
fullName = "GNU General Public License version 2 only (with OSI approved licenses linking exception)";
url = "https://www.mysql.com/about/legal/licensing/foss-exception";
};
gpl2Plus = {
spdxId = "GPL-2.0-or-later";
fullName = "GNU General Public License v2.0 or later";
@@ -681,11 +665,6 @@ lib.mapAttrs mkLicense (
fullName = "GNU General Public License v3.0 or later";
};
gpl3ClasspathPlus = {
fullName = "GNU General Public License v3.0 or later (with Classpath exception)";
url = "https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception";
};
giftware = {
spdxId = "Giftware";
fullName = "Giftware License";
@@ -1235,9 +1214,8 @@ lib.mapAttrs mkLicense (
};
smail = {
shortName = "smail";
spdxId = "SMAIL-GPL";
fullName = "SMAIL General Public License";
url = "https://sources.debian.org/copyright/license/debianutils/4.9.1/";
};
smlnj = {
@@ -1246,9 +1224,8 @@ lib.mapAttrs mkLicense (
};
sspl = {
shortName = "SSPL";
spdxId = "SSPL-1.0";
fullName = "Server Side Public License";
url = "https://www.mongodb.com/licensing/server-side-public-license";
free = false;
# NOTE Debatable.
# The license a slightly modified AGPL but still considered unfree by the
@@ -1269,9 +1246,8 @@ lib.mapAttrs mkLicense (
};
sustainableUse = {
shortName = "sustainable";
spdxId = "SUL-1.0";
fullName = "Sustainable Use License";
url = "https://github.com/n8n-io/n8n/blob/master/LICENSE.md";
free = false;
redistributable = false; # only free to redistribute "for non-commercial purposes"
};
@@ -1340,6 +1316,11 @@ lib.mapAttrs mkLicense (
url = "https://github.com/PixarAnimationStudios/OpenUSD/blob/release/LICENSE.txt";
};
ubdlException = {
spdxId = "UBDL-exception";
fullName = "Unmodified Binary Distribution exception";
};
ucd = {
fullName = "Unicode Character Database License";
url = "https://fedoraproject.org/wiki/Licensing:UCD";
@@ -1448,8 +1429,8 @@ lib.mapAttrs mkLicense (
fullName = "Do What The F*ck You Want To Public License";
};
wxWindows = {
spdxId = "wxWindows";
wxWindowsException31 = {
spdxId = "WxWindows-exception-3.1";
fullName = "wxWindows Library Licence, Version 3.1";
};
+12 -7
View File
@@ -6263,6 +6263,12 @@
githubId = 21953890;
name = "Tim Digel";
};
despsyched = {
email = "priyanshu.tripathi@deshaw.com";
github = "despsyched";
githubId = 196187334;
name = "Priyanshu Tripathi";
};
desttinghim = {
email = "opensource@louispearson.work";
matrix = "@desttinghim:matrix.org";
@@ -7300,12 +7306,6 @@
githubId = 20847625;
name = "Elizabeth Paź";
};
ehmry = {
email = "ehmry@posteo.net";
github = "ehmry";
githubId = 537775;
name = "Emery Hemingway";
};
eigengrau = {
email = "seb@schattenkopie.de";
name = "Sebastian Reuße";
@@ -14026,6 +14026,11 @@
githubId = 2422454;
name = "Kai Wohlfahrt";
};
kyehn = {
name = "kyehn";
github = "kyehn";
githubId = 228304369;
};
kylecarbs = {
name = "Kyle Carberry";
email = "kyle@carberry.com";
@@ -20988,7 +20993,7 @@
email = "nix@dev.quantenzitrone.eu";
github = "quantenzitrone";
githubId = 74491719;
matrix = "@quantenzitrone:matrix.org";
matrix = "@zitrone:utwente.io";
name = "quantenzitrone";
};
qubasa = {
+1 -1
View File
@@ -326,6 +326,7 @@ with lib.maintainers;
# Verify additions to this team with at least one already existing member of the team.
members = [
de11n
despsyched
invokes-su
];
scope = "Group registration for D. E. Shaw employees who collectively maintain packages.";
@@ -345,7 +346,6 @@ with lib.maintainers;
dhall = {
members = [
Gabriella439
ehmry
];
scope = "Maintain Dhall and related packages.";
shortName = "Dhall";
@@ -24,6 +24,12 @@ abandoned by the kernel developers, even on stable NixOS versions. If you
pin your kernel onto a non-longterm version, expect your evaluation to fail as
soon as the version is out of maintenance.
A kernel will be removed from nixpkgs when the first batch of stable kernels
_after_ the final release is published. E.g. when 6.15.11 is the final release
of the 6.15 series and is released together with 6.16.3 and 6.12.43, it will be
removed on the release of 6.16.4 and 6.12.44. Custom kernel variants such
as linux-hardened are also affected by this.
Longterm versions of kernels will be removed before the next stable NixOS that will
exceed the maintenance period of the kernel version.
@@ -925,7 +925,7 @@ Make sure to also check the many updates in the [Nixpkgs library](#sec-release-2
[services.frp](#opt-services.frp.enable).
- [river](https://github.com/riverwm/river), A dynamic tiling wayland
compositor. Available as [programs.river](#opt-programs.river.enable).
compositor. Available as `programs.river`.
- [wayfire](https://wayfire.org), a modular and extensible wayland compositor.
Available as [programs.wayfire](#opt-programs.wayfire.enable).
@@ -92,6 +92,9 @@ Alongside many enhancements to NixOS modules and general system improvements, th
- [Traccar](https://www.traccar.org/), a modern GPS Tracking Platform. Available as [services.traccar](#opt-services.traccar.enable).
- [Memos](https://www.usememos.com/), a privacy-first, lightweight note-taking solution that allows you to effortlessly capture and share your ideas.
Available as [services.memos](#opt-services.memos.enable).
- [Schroot](https://codeberg.org/shelter/reschroot), a lightweight virtualisation tool. Securely enter a chroot and run a command or login shell. Available as [programs.schroot](#opt-programs.schroot.enable).
- [Firezone](https://firezone.dev), an enterprise-ready zero-trust access platform built on WireGuard. This includes the server stack as [services.firezone.server.enable](#opt-services.firezone.server.enable), a TURN/STUN relay service as [services.firezone.relay.enable](#opt-services.firezone.relay.enable), a gateway service as [services.firezone.gateway.enable](#opt-services.firezone.gateway.enable), a headless client as [services.firezone.headless-client.enable](#opt-services.firezone.headless-client.enable) and a GUI client as [services.firezone.gui-client.enable](#opt-services.firezone.gui-client.enable).
@@ -172,6 +172,8 @@
- NixOS display manager modules now strictly use tty1, where many of them previously used tty7. Options to configure display managers' VT have been dropped. A configuration with a display manager enabled will not start `getty@tty1.service`, even if the system is forced to boot into `multi-user.target` instead of `graphical.target`.
- `river` 0.3.x has been renamed to `river-classic` upstream, and the package renamed accordingly. `programs.river` has been renamed to `programs.river-classic`.
- `command-not-found` package is now disabled by default; it works only for nix-channels based systems, and requires setup for it to work.
- The systemd target `kbrequest.target` is now unset by default, instead of being forcibly symlinked to `rescue.target`. In case you were relying on this behavior (Alt + ArrowUp on the tty causing the current target to be changed to `rescue.target`), you can restore it by setting `systemd.targets.rescue.aliases = [ "kbrequest.target" ];` in your configuration.
+1
View File
@@ -865,6 +865,7 @@
./services/misc/mame.nix
./services/misc/mbpfan.nix
./services/misc/mediatomb.nix
./services/misc/memos.nix
./services/misc/metabase.nix
./services/misc/mollysocket.nix
./services/misc/moonraker.nix
-2
View File
@@ -1,7 +1,6 @@
{ lib, pkgs, ... }:
{
# Remove perl from activation
boot.initrd.systemd.enable = lib.mkDefault true;
system.etc.overlay.enable = lib.mkDefault true;
@@ -10,7 +9,6 @@
# Random perl remnants
system.tools.nixos-generate-config.enable = lib.mkDefault false;
programs.less.lessopen = lib.mkDefault null;
programs.command-not-found.enable = lib.mkDefault false;
boot.loader.grub.enable = lib.mkDefault false;
environment.defaultPackages = lib.mkDefault [ ];
documentation.info.enable = lib.mkDefault false;
+1
View File
@@ -81,6 +81,7 @@ in
ccacheWrapper = super.ccacheWrapper.override {
extraConfig = ''
export CCACHE_COMPRESS=1
export CCACHE_SLOPPINESS=random_seed
export CCACHE_DIR="${cfg.cacheDir}"
export CCACHE_UMASK=007
if [ ! -d "$CCACHE_DIR" ]; then
-2
View File
@@ -89,6 +89,4 @@ in
'';
};
};
meta.maintainers = with lib.maintainers; [ ehmry ];
}
+3 -1
View File
@@ -12,7 +12,7 @@ let
# Order the sections in the TOML according to the order of sections
# in `cfg.order`.
motdConf =
pkgs.runCommand "motd.conf"
pkgs.runCommand "motd.toml"
{
__structuredAttrs = true;
inherit (cfg) order settings;
@@ -154,6 +154,8 @@ in
security.pam.services.sshd.showMotd = lib.mkIf cfg.enableMotdInSSHD true;
users.motdFile = lib.mkIf cfg.enableMotdInSSHD "/var/lib/rust-motd/motd";
programs.rust-motd.settings.global.show_legacy_warning = false;
services.openssh.extraConfig =
lib.mkIf (cfg.settings ? last_login && cfg.settings.last_login != { })
''
+20 -4
View File
@@ -6,16 +6,16 @@
}:
let
cfg = config.programs.river;
cfg = config.programs.river-classic;
wayland-lib = import ./lib.nix { inherit lib; };
in
{
options.programs.river = {
enable = lib.mkEnableOption "river, a dynamic tiling Wayland compositor";
options.programs.river-classic = {
enable = lib.mkEnableOption "river-classic, a dynamic tiling Wayland compositor";
package =
lib.mkPackageOption pkgs "river" {
lib.mkPackageOption pkgs "river-classic" {
nullable = true;
extraDescription = ''
If the package is not overridable with `xwaylandSupport`, then the module option
@@ -61,6 +61,22 @@ in
};
};
imports = [
(lib.mkRenamedOptionModule [ "programs" "river" "enable" ] [ "programs" "river-classic" "enable" ])
(lib.mkRenamedOptionModule
[ "programs" "river" "package" ]
[ "programs" "river-classic" "package" ]
)
(lib.mkRenamedOptionModule
[ "programs" "river" "xwayland" "enable" ]
[ "programs" "river-classic" "xwayland" "enable" ]
)
(lib.mkRenamedOptionModule
[ "programs" "river" "extraPackages" ]
[ "programs" "river-classic" "extraPackages" ]
)
];
config = lib.mkIf cfg.enable (
lib.mkMerge [
{
+4 -2
View File
@@ -175,8 +175,10 @@ in
assertions = [
{
assertion =
(cfg.settings.ldap_user_pass_file or null) != null || (cfg.settings.ldap_user_pass or null) != null;
message = "lldap: Default admin user password must be set. Please set the `ldap_user_pass` or better the `ldap_user_pass_file` setting.";
(cfg.settings.ldap_user_pass_file or null) != null
|| (cfg.settings.ldap_user_pass or null) != null
|| (cfg.environment.LLDAP_LDAP_USER_PASS_FILE or null) != null;
message = "lldap: Default admin user password must be set. Please set the `ldap_user_pass` or better the `ldap_user_pass_file` setting. Alternatively, you can set the `LLDAP_LDAP_USER_PASS_FILE` environment variable.";
}
{
assertion =
@@ -94,16 +94,13 @@ in
dns = {
address = mkOption {
type = types.str;
default = if config.networking.resolvconf.useLocalResolver then "127.0.0.1:53" else null;
defaultText = literalExpression ''
if config.networking.resolvconf.useLocalResolver then
"127.0.0.1:53"
else
null
'';
type = with types; nullOr str;
default = null;
example = "127.0.0.1:53";
description = ''
IP and port to your DNS resolver
IP and port to your DNS resolver.
Uses resolvers from /etc/resolv.conf if unset.
::: {.note}
The configured DNS resolver must validate DNSSEC signatures.
+4 -4
View File
@@ -630,7 +630,7 @@ in
''
+ concatStrings (
mapAttrsToList (name: inbox: ''
if [ ! -e ${stateDir}/inboxes/${escapeShellArg name} ]; then
if [ ! -e ${escapeShellArg inbox.inboxdir} ]; then
# public-inbox-init creates an inbox and adds it to a config file.
# It tries to atomically write the config file by creating
# another file in the same directory, and renaming it.
@@ -643,7 +643,7 @@ in
${escapeShellArgs (
[
name
"${stateDir}/inboxes/${name}"
inbox.inboxdir
inbox.url
]
++ inbox.address
@@ -653,9 +653,9 @@ in
fi
ln -sf ${inbox.description} \
${stateDir}/inboxes/${escapeShellArg name}/description
${escapeShellArg inbox.inboxdir}/description
export GIT_DIR=${stateDir}/inboxes/${escapeShellArg name}/all.git
export GIT_DIR=${escapeShellArg inbox.inboxdir}/all.git
if test -d "$GIT_DIR"; then
# Config is inherited by each epoch repository,
# so just needs to be set for all.git.
+199
View File
@@ -0,0 +1,199 @@
{
config,
options,
pkgs,
lib,
...
}:
let
cfg = config.services.memos;
opt = options.services.memos;
envFileFormat = pkgs.formats.keyValue { };
in
{
options.services.memos = {
enable = lib.mkEnableOption "Memos note-taking";
package = lib.mkPackageOption pkgs "Memos" {
default = "memos";
};
openFirewall = lib.mkEnableOption "opening the ports in the firewall";
user = lib.mkOption {
type = lib.types.str;
description = ''
The user to run Memos as.
::: {.note}
If changing the default value, **you** are responsible of creating the corresponding user with [{option}`users.users`](#opt-users.users).
:::
'';
default = "memos";
};
group = lib.mkOption {
type = lib.types.str;
description = ''
The group to run Memos as.
::: {.note}
If changing the default value, **you** are responsible of creating the corresponding group with [{option}`users.groups`](#opt-users.groups).
:::
'';
default = "memos";
};
dataDir = lib.mkOption {
default = "/var/lib/memos/";
type = lib.types.path;
description = ''
Specifies the directory where Memos will store its data.
::: {.note}
It will be automatically created with the permissions of [{option}`services.memos.user`](#opt-services.memos.user) and [{option}`services.memos.group`](#opt-services.memos.group).
:::
'';
};
settings = lib.mkOption {
type = envFileFormat.type;
description = ''
The environment variables to configure Memos.
::: {.note}
At time of writing, there is no clear documentation about possible values.
It's possible to convert CLI flags into these variables.
Example : CLI flag "--unix-sock" converts to {env}`MEMOS_UNIX_SOCK`.
:::
'';
default = {
MEMOS_MODE = "prod";
MEMOS_ADDR = "127.0.0.1";
MEMOS_PORT = "5230";
MEMOS_DATA = cfg.dataDir;
MEMOS_DRIVER = "sqlite";
MEMOS_INSTANCE_URL = "http://localhost:5230";
};
defaultText = lib.literalExpression ''
{
MEMOS_MODE = "prod";
MEMOS_ADDR = "127.0.0.1";
MEMOS_PORT = "5230";
MEMOS_DATA = config.${opt.dataDir};
MEMOS_DRIVER = "sqlite";
MEMOS_INSTANCE_URL = "http://localhost:5230";
}
'';
};
environmentFile = lib.mkOption {
type = lib.types.path;
description = ''
The environment file to use when starting Memos.
::: {.note}
By default, generated from [](opt-${opt.settings}).
:::
'';
example = "/var/lib/memos/memos.env";
default = envFileFormat.generate "memos.env" cfg.settings;
defaultText = lib.literalMD ''
generated from {option}`${opt.settings}`
'';
};
};
config = lib.mkIf cfg.enable {
users.users = lib.mkIf (cfg.user == "memos") {
${cfg.user} = {
description = lib.mkDefault "Memos service user";
isSystemUser = true;
group = cfg.group;
};
};
users.groups = lib.mkIf (cfg.group == "memos") {
${cfg.group} = { };
};
networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall [
cfg.port
];
systemd.tmpfiles.settings."10-memos" = {
"${cfg.dataDir}" = {
d = {
mode = "0750";
user = cfg.user;
group = cfg.group;
};
};
};
systemd.services.memos = {
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
wants = [ "network.target" ];
description = "Memos, a privacy-first, lightweight note-taking solution";
serviceConfig = {
User = cfg.user;
Group = cfg.group;
Type = "simple";
RestartSec = 60;
LimitNOFILE = 65536;
NoNewPrivileges = true;
LockPersonality = true;
RemoveIPC = true;
ReadWritePaths = [
cfg.dataDir
];
ProtectSystem = "strict";
PrivateUsers = true;
ProtectHome = true;
PrivateTmp = true;
PrivateDevices = true;
ProtectHostname = true;
ProtectClock = true;
UMask = "0077";
ProtectKernelTunables = true;
ProtectKernelModules = true;
ProtectControlGroups = true;
ProtectProc = "invisible";
SystemCallFilter = [
" " # This is needed to clear the SystemCallFilter existing definitions
"~@reboot"
"~@swap"
"~@obsolete"
"~@mount"
"~@module"
"~@debug"
"~@cpu-emulation"
"~@clock"
"~@raw-io"
"~@privileged"
"~@resources"
];
CapabilityBoundingSet = [
" " # Reset all capabilities to an empty set
];
RestrictAddressFamilies = [
" " # This is needed to clear the RestrictAddressFamilies existing definitions
"none" # Remove all addresses families
"AF_UNIX"
"AF_INET"
"AF_INET6"
];
DevicePolicy = "closed";
ProtectKernelLogs = true;
SystemCallArchitectures = "native";
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
EnvironmentFile = cfg.environmentFile;
ExecStart = lib.getExe cfg.package;
};
};
};
meta.maintainers = [ lib.maintainers.m0ustach3 ];
}
+34
View File
@@ -323,6 +323,16 @@ in
};
};
configureNginx = lib.mkEnableOption "" // {
description = "Whether to configure nginx as a reverse proxy.";
};
domain = lib.mkOption {
type = lib.types.str;
example = "paperless.example.com";
description = "Domain under which paperless will be available.";
};
exporter = {
enable = lib.mkEnableOption "regular automatic document exports";
@@ -380,6 +390,27 @@ in
services.paperless.manage = manage;
environment.systemPackages = [ manage ];
services.nginx = lib.mkIf cfg.configureNginx {
enable = true;
upstreams.paperless.servers."${cfg.address}:${toString cfg.port}" = { };
virtualHosts.${cfg.domain} = {
forceSSL = lib.mkDefault true;
locations = {
"/".proxyPass = "http://paperless";
"/static/" = {
root = config.services.paperless.package;
extraConfig = ''
rewrite ^/(.*)$ /lib/paperless-ngx/$1 break;
'';
};
"/ws/status" = {
proxyPass = "http://paperless";
proxyWebsockets = true;
};
};
};
};
services.redis.servers.paperless.enable = lib.mkIf enableRedis true;
services.postgresql = lib.mkIf cfg.database.createLocally {
@@ -394,6 +425,9 @@ in
};
services.paperless.settings = lib.mkMerge [
(lib.mkIf (cfg.domain != "") {
PAPERLESS_URL = "https://${cfg.domain}";
})
(lib.mkIf cfg.database.createLocally {
PAPERLESS_DBENGINE = "postgresql";
PAPERLESS_DBHOST = "/run/postgresql";
@@ -123,6 +123,4 @@ in
};
};
};
meta.maintainers = with lib.maintainers; [ ehmry ];
}
@@ -141,8 +141,6 @@ in
};
meta.maintainers = with lib.maintainers; [ ehmry ];
# TODO: socket activated rsyncd
}
@@ -264,7 +264,6 @@ in
doc = ./yggdrasil.md;
maintainers = with lib.maintainers; [
gazally
ehmry
nagy
];
};
@@ -1531,7 +1531,6 @@ in
index index.php index.html /index.php$request_uri;
${lib.optionalString (cfg.nginx.recommendedHttpHeaders) ''
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag "noindex, nofollow";
add_header X-Permitted-Cross-Domain-Policies none;
add_header X-Frame-Options sameorigin;
@@ -81,44 +81,16 @@ in
};
};
systemd.user.services = {
prlcc = {
description = "Parallels Control Center";
wantedBy = [ "graphical-session.target" ];
path = [ prl-tools ];
serviceConfig = {
ExecStart = "${prl-tools}/bin/prlcc";
WorkingDirectory = "${prl-tools}/bin";
};
};
prldnd = {
description = "Parallels Drag And Drop Tool";
wantedBy = [ "graphical-session.target" ];
path = [ prl-tools ];
serviceConfig = {
ExecStart = "${prl-tools}/bin/prldnd";
WorkingDirectory = "${prl-tools}/bin";
};
};
prlcp = {
description = "Parallels Copy Paste Tool";
wantedBy = [ "graphical-session.target" ];
path = [ prl-tools ];
serviceConfig = {
ExecStart = "${prl-tools}/bin/prlcp";
Restart = "always";
WorkingDirectory = "${prl-tools}/bin";
};
};
prlshprof = {
description = "Parallels Shared Profile Tool";
wantedBy = [ "graphical-session.target" ];
path = [ prl-tools ];
serviceConfig = {
ExecStart = "${prl-tools}/bin/prlshprof";
WorkingDirectory = "${prl-tools}/bin";
};
systemd.user.services.prlcc = {
description = "Parallels Control Center";
wantedBy = [ "graphical-session.target" ];
path = [ prl-tools ];
serviceConfig = {
ExecStart = "${prl-tools}/bin/prlcc";
WorkingDirectory = "${prl-tools}/bin";
};
};
};
meta.maintainers = with maintainers; [ codgician ];
}
-3
View File
@@ -2,9 +2,6 @@ import ./make-test-python.nix (
{ pkgs, ... }:
{
name = "ccache";
meta = with pkgs.lib.maintainers; {
maintainers = [ ehmry ];
};
nodes.machine =
{ ... }:
-3
View File
@@ -21,9 +21,6 @@ in
{ pkgs, ... }:
{
name = "cjdns";
meta = with pkgs.lib.maintainers; {
maintainers = [ ehmry ];
};
nodes = {
# Alice finds peers over over ETHInterface.
-1
View File
@@ -1,7 +1,6 @@
{ pkgs, lib, ... }:
{
name = "eris-server";
meta.maintainers = with lib.maintainers; [ ehmry ];
nodes.server = {
environment.systemPackages = [
-1
View File
@@ -36,7 +36,6 @@ let
kernels = pkgs.linuxKernel.vanillaPackages // {
inherit (pkgs.linuxKernel.packages)
linux_6_12_hardened
linux_6_15_hardened
linux_rt_5_4
linux_rt_5_10
linux_rt_5_15
+1 -1
View File
@@ -19,7 +19,7 @@
services.displayManager.lemurs.enable = true;
programs.river.enable = true;
programs.river-classic.enable = true;
};
testScript = ''
-3
View File
@@ -6,9 +6,6 @@ in
{
name = "molly-brown";
meta = with pkgs.lib.maintainers; {
maintainers = [ ehmry ];
};
nodes = {
+27 -24
View File
@@ -17,29 +17,32 @@
imagemagick
jq
];
services.paperless = {
enable = true;
passwordFile = builtins.toFile "password" "admin";
exporter = {
services = {
nginx.virtualHosts."localhost".forceSSL = false;
paperless = {
enable = true;
configureNginx = true;
domain = "localhost";
passwordFile = builtins.toFile "password" "admin";
settings = {
"no-color" = lib.mkForce false; # override a default option
"no-thumbnail" = true; # add a new option
exporter = {
enable = true;
settings = {
"no-color" = lib.mkForce false; # override a default option
"no-thumbnail" = true; # add a new option
};
};
};
};
};
postgres =
{ config, pkgs, ... }:
{
imports = [ self.simple ];
services.paperless.database.createLocally = true;
services.paperless.settings = {
PAPERLESS_OCR_LANGUAGE = "deu";
};
postgres = {
imports = [ self.simple ];
services.paperless.database.createLocally = true;
services.paperless.settings = {
PAPERLESS_OCR_LANGUAGE = "deu";
};
};
};
in
self;
@@ -59,7 +62,7 @@
with subtest("Web interface gets ready"):
node.wait_for_unit("paperless-web.service")
# Wait until server accepts connections
node.wait_until_succeeds("curl -fs localhost:28981")
node.wait_until_succeeds("curl -fs localhost")
# Required for consuming documents via the web interface
with subtest("Task-queue gets ready"):
@@ -70,32 +73,32 @@
"convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "
"-annotate +5+20 'hello web 16-10-2005' /tmp/webdoc.png"
)
node.wait_until_succeeds("curl -u admin:admin -F document=@/tmp/webdoc.png -fs localhost:28981/api/documents/post_document/")
node.wait_until_succeeds("curl -u admin:admin -F document=@/tmp/webdoc.png -fs localhost/api/documents/post_document/")
with subtest("Add a txt document via the web interface"):
node.succeed(
"echo 'hello web 16-10-2005' > /tmp/webdoc.txt"
)
node.wait_until_succeeds("curl -u admin:admin -F document=@/tmp/webdoc.txt -fs localhost:28981/api/documents/post_document/")
node.wait_until_succeeds("curl -u admin:admin -F document=@/tmp/webdoc.txt -fs localhost/api/documents/post_document/")
with subtest("Documents are consumed"):
node.wait_until_succeeds(
"(($(curl -u admin:admin -fs localhost:28981/api/documents/ | jq .count) == 3))"
"(($(curl -u admin:admin -fs localhost/api/documents/ | jq .count) == 3))"
)
docs = json.loads(node.succeed("curl -u admin:admin -fs localhost:28981/api/documents/"))['results']
docs = json.loads(node.succeed("curl -u admin:admin -fs localhost/api/documents/"))['results']
assert "2005-10-16" in docs[0]['created']
assert "2005-10-16" in docs[1]['created']
assert "2005-10-16" in docs[2]['created']
# Detects gunicorn issues, see PR #190888
with subtest("Document metadata can be accessed"):
metadata = json.loads(node.succeed("curl -u admin:admin -fs localhost:28981/api/documents/1/metadata/"))
metadata = json.loads(node.succeed("curl -u admin:admin -fs localhost/api/documents/1/metadata/"))
assert "original_checksum" in metadata
metadata = json.loads(node.succeed("curl -u admin:admin -fs localhost:28981/api/documents/2/metadata/"))
metadata = json.loads(node.succeed("curl -u admin:admin -fs localhost/api/documents/2/metadata/"))
assert "original_checksum" in metadata
metadata = json.loads(node.succeed("curl -u admin:admin -fs localhost:28981/api/documents/3/metadata/"))
metadata = json.loads(node.succeed("curl -u admin:admin -fs localhost/api/documents/3/metadata/"))
assert "original_checksum" in metadata
with subtest("Exporter"):
-1
View File
@@ -1,7 +1,6 @@
{ pkgs, ... }:
{
name = "rsyncd";
meta.maintainers = with pkgs.lib.maintainers; [ ehmry ];
nodes =
let
+14 -11
View File
@@ -18,20 +18,21 @@
withMDNS ? true,
withDNS-SD ? false,
avahi-compat,
tlsBackend ? "native-tls", # "native-tls" "rustls-tls-native-roots" "rustls-tls-webpki-roots"
}:
rustPlatform.buildRustPackage rec {
pname = "librespot";
version = "0.6.0";
version = "0.7.0";
src = fetchFromGitHub {
owner = "librespot-org";
repo = "librespot";
rev = "v${version}";
sha256 = "sha256-dGQDRb7fgIkXelZKa+PdodIs9DxbgEMlVGJjK/hU3Mo=";
hash = "sha256-IsHyYH4RDMRqXLNv6RZNzRTl3+zxan0TM/bjHoZC8YA=";
};
cargoHash = "sha256-SqvJSHkyd1IicT6c4pE96dBJNNodULhpyG14HRGVWCk=";
cargoHash = "sha256-1Jc7gfnrsvk3Lcrvq0jV78IMKAnMDsW3nDr1W34PVmE=";
nativeBuildInputs = [
pkg-config
@@ -50,14 +51,16 @@ rustPlatform.buildRustPackage rec {
++ lib.optional withPulseAudio libpulseaudio;
buildNoDefaultFeatures = true;
buildFeatures =
lib.optional withRodio "rodio-backend"
++ lib.optional withMDNS "with-libmdns"
++ lib.optional withDNS-SD "with-dns-sd"
++ lib.optional withALSA "alsa-backend"
++ lib.optional withAvahi "with-avahi"
++ lib.optional withPortAudio "portaudio-backend"
++ lib.optional withPulseAudio "pulseaudio-backend";
buildFeatures = [
tlsBackend
]
++ lib.optional withRodio "rodio-backend"
++ lib.optional withMDNS "with-libmdns"
++ lib.optional withDNS-SD "with-dns-sd"
++ lib.optional withALSA "alsa-backend"
++ lib.optional withAvahi "with-avahi"
++ lib.optional withPortAudio "portaudio-backend"
++ lib.optional withPulseAudio "pulseaudio-backend";
postFixup = lib.optionalString withALSA ''
wrapProgram "$out/bin/librespot" \
+4 -4
View File
@@ -38,17 +38,17 @@ let
in
stdenv.mkDerivation rec {
pname = "reaper";
version = "7.42";
version = "7.45";
src = fetchurl {
url = url_for_platform version stdenv.hostPlatform.qemuArch;
hash =
if stdenv.hostPlatform.isDarwin then
"sha256-3K2cgOwBRwm/S4MRcymKCxRhUMkcfuWzWn1G2m3Dbf4="
"sha256-plXLOJcQbZlSGPgNdjNEPS2pZ9almrmNzxYfhOZGXjg="
else
{
x86_64-linux = "sha256-XxVcy3s3gOnh6uhv9r0yJFwBMCxhrnT/swaUY4t1CpY=";
aarch64-linux = "sha256-3DKVyooYi6aSBzP4DSnIchGyHKbCANjX0TPspKf5dXU=";
x86_64-linux = "sha256-pOPL8HoAAFNDq6L3SC/OygDtqqYVvfkWwVA6qv1xZPs=";
aarch64-linux = "sha256-rclLjAiG8aLsVinghpPZJiPU4Iq5jQ6s2H0+du+a9Ts=";
}
.${stdenv.hostPlatform.system};
};
@@ -20,8 +20,8 @@ let
sha256Hash = "sha256-fLjCbB9Wwrx7siYQTmtWvce+8TdYTea+y6HTtSTYWAY=";
};
betaVersion = {
version = "2025.1.3.5"; # "Android Studio Narwhal 3 Feature Drop | 2025.1.3 RC 1"
sha256Hash = "sha256-3LkcpvuoUhY/kRpoqYnwfx1cdPvvdBMEFXtRLYmqTk4=";
version = "2025.1.3.6"; # "Android Studio Narwhal 3 Feature Drop | 2025.1.3 RC 2"
sha256Hash = "sha256-S8KK/EGev0v03fVywIkD6Ym3LrciGKXJVorzyZ1ljdQ=";
};
latestVersion = {
version = "2025.1.4.3"; # "Android Studio Narwhal 4 Feature Drop | 2025.1.4 Canary 3"
@@ -55,7 +55,10 @@ stdenv.mkDerivation rec {
description = "Simple integrated development environment for Java";
homepage = "https://www.greenfoot.org/";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.gpl2ClasspathPlus;
license = with licenses; [
gpl2Plus
classpathException20
];
mainProgram = "greenfoot";
maintainers = [ maintainers.chvp ];
platforms = platforms.linux;
@@ -125,6 +125,7 @@ mapAliases (
surround = vim-surround;
sleuth = vim-sleuth;
solidity = vim-solidity;
ssr = ssr-nvim; # Added 2025-08-31
stylish-haskell = vim-stylish-haskell;
stylishHaskell = vim-stylish-haskell; # backwards compat, added 2014-10-18
suda-vim = vim-suda; # backwards compat, added 2024-05-16
@@ -0,0 +1,31 @@
{
symlinkJoin,
}:
final: prev: {
corePlugins = symlinkJoin {
name = "core-vim-plugins";
paths = with final; [
# plugin managers
lazy-nvim
mini-deps
packer-nvim
vim-plug
# core dependencies
plenary-nvim
# popular plugins
mini-nvim
nvim-cmp
nvim-lspconfig
nvim-treesitter
vim-airline
vim-fugitive
vim-surround
];
meta.description = "Collection of popular vim plugins (for internal testing purposes)";
};
}
@@ -48,6 +48,8 @@ let
inherit (neovimUtils) buildNeovimPlugin;
};
corePlugins = callPackage ./corePlugins.nix { };
# TL;DR
# * Add your plugin to ./vim-plugin-names
# * run ./update.py
@@ -66,6 +68,7 @@ lib.pipe initialPackages [
(extends luaPackagePlugins)
(extends nodePackagePlugins)
(extends nonGeneratedPlugins)
(extends corePlugins)
(extends overrides)
(extends aliases)
lib.makeExtensible
@@ -9,8 +9,10 @@ let
luarocksPackageNames = [
"fidget-nvim"
"fzf-lua"
"gitsigns-nvim"
"grug-far-nvim"
"haskell-tools-nvim"
"image-nvim"
"lsp-progress-nvim"
"lualine-nvim"
@@ -34,6 +36,8 @@ let
"plenary-nvim"
"rest-nvim"
"rocks-config-nvim"
"rocks-nvim"
"rustaceanvim"
"rtp-nvim"
"telescope-manix"
"telescope-nvim"
@@ -0,0 +1 @@
{ notmuch }: notmuch.vim
@@ -0,0 +1,5 @@
{
lib,
vimPlugins,
}:
lib.recurseIntoAttrs vimPlugins.nvim-treesitter.grammarPlugins
@@ -0,0 +1 @@
{ parinfer-rust }: parinfer-rust
@@ -7,9 +7,7 @@
fetchFromGitHub,
fetchpatch,
fetchurl,
neovimUtils,
replaceVars,
symlinkJoin,
# Language dependencies
fetchYarnDeps,
mkYarnModules,
@@ -35,10 +33,8 @@
neovim-unwrapped,
nim1,
nodejs,
notmuch,
openscad,
openssh,
parinfer-rust,
ranger,
ripgrep,
sqlite,
@@ -64,7 +60,6 @@
codeium,
# command-t dependencies
getconf,
ruby,
# cornelis dependencies
cornelis,
# cpsm dependencies
@@ -108,7 +103,6 @@
# hurl dependencies
hurl,
# must be lua51Packages
luajitPackages,
aider-chat,
# typst-preview dependencies
tinymist,
@@ -131,42 +125,22 @@ self: super:
let
luaPackages = neovim-unwrapped.lua.pkgs;
# Ensure the vim plugin builders are not used in this file.
# If they are used, these stubs will throw.
buildVimPlugin = throw "New plugin definitions should be done outside `overrides.nix`";
buildNeoVimPlugin = throw "New plugin definitions should be done outside `overrides.nix`";
# Ensures new attributes are not added in this file.
assertNoAdditions =
overrides:
let
prevNames = lib.attrNames super;
definedNames = lib.attrNames overrides;
addedNames = lib.subtractLists prevNames definedNames;
in
lib.throwIfNot (addedNames == [ ])
"vimPlugins: the following attributes should not be defined in overrides.nix:${
lib.concatMapStrings (name: "\n- ${name}") addedNames
}"
overrides;
in
{
corePlugins = symlinkJoin {
name = "core-vim-plugins";
paths = with self; [
# plugin managers
lazy-nvim
mini-deps
packer-nvim
vim-plug
# core dependencies
plenary-nvim
# popular plugins
mini-nvim
nvim-cmp
nvim-lspconfig
nvim-treesitter
vim-airline
vim-fugitive
vim-surround
];
meta = {
description = "Collection of popular vim plugins (for internal testing purposes)";
};
};
#######################
# Regular overrides
assertNoAdditions {
advanced-git-search-nvim = super.advanced-git-search-nvim.overrideAttrs {
checkInputs = with self; [
snacks-nvim
@@ -1306,8 +1280,7 @@ in
dependencies = [ self.plenary-nvim ];
};
fzf-lua = neovimUtils.buildNeovimPlugin {
luaAttr = luaPackages.fzf-lua;
fzf-lua = super.fzf-lua.overrideAttrs {
runtimeDeps = [ fzf ];
nvimSkipModules = [
"fzf-lua.shell_helper"
@@ -1433,10 +1406,9 @@ in
dependencies = [ self.luasnip ];
};
haskell-tools-nvim = neovimUtils.buildNeovimPlugin {
haskell-tools-nvim = super.haskell-tools-nvim.overrideAttrs {
# Optional integrations
checkInputs = [ self.telescope-nvim ];
luaAttr = luaPackages.haskell-tools-nvim;
};
helm-ls-nvim = super.helm-ls-nvim.overrideAttrs {
@@ -2339,8 +2311,6 @@ in
NotebookNavigator-nvim = super.NotebookNavigator-nvim.overrideAttrs {
};
notmuch-vim = notmuch.vim;
nterm-nvim = super.nterm-nvim.overrideAttrs {
dependencies = [ self.aniseed ];
};
@@ -2699,8 +2669,6 @@ in
dependencies = [ self.nvim-treesitter ];
};
nvim-treesitter-parsers = lib.recurseIntoAttrs self.nvim-treesitter.grammarPlugins;
nvim-treesitter-pyfold = super.nvim-treesitter-pyfold.overrideAttrs {
dependencies = [ self.nvim-treesitter ];
};
@@ -2905,8 +2873,6 @@ in
dependencies = [ self.nui-nvim ];
};
inherit parinfer-rust;
parpar-nvim = super.parpar-nvim.overrideAttrs {
dependencies = with self; [
nvim-parinfer
@@ -3091,27 +3057,22 @@ in
dependencies = [ self.plenary-nvim ];
};
rocks-nvim =
(neovimUtils.buildNeovimPlugin {
luaAttr = luaPackages.rocks-nvim;
}).overrideAttrs
(oa: {
passthru = oa.passthru // {
initLua = ''
vim.g.rocks_nvim = {
luarocks_binary = "${neovim-unwrapped.lua.pkgs.luarocks_bootstrap}/bin/luarocks"
}
'';
};
rocks-nvim = super.rocks-nvim.overrideAttrs (oa: {
passthru = oa.passthru // {
initLua = ''
vim.g.rocks_nvim = {
luarocks_binary = "${neovim-unwrapped.lua.pkgs.luarocks_bootstrap}/bin/luarocks"
}
'';
};
});
});
rustaceanvim = neovimUtils.buildNeovimPlugin {
rustaceanvim = super.rustaceanvim.overrideAttrs {
checkInputs = [
# Optional integration
self.neotest
];
luaAttr = luaPackages.rustaceanvim;
};
rust-tools-nvim = super.rust-tools-nvim.overrideAttrs {
@@ -3252,7 +3213,7 @@ in
}
);
ssr = super.ssr-nvim.overrideAttrs {
ssr-nvim = super.ssr-nvim.overrideAttrs {
dependencies = [ self.nvim-treesitter ];
};
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "gpsp";
version = "0-unstable-2025-01-20";
version = "0-unstable-2025-08-21";
src = fetchFromGitHub {
owner = "libretro";
repo = "gpsp";
rev = "b0d5d27ae51c23f514974ddffa5760f1e1d05d9b";
hash = "sha256-e2U1xEshoPJlaVUEbqNZIayNaSdDC65hE1VrvxvQSx0=";
rev = "143b0abb02a6ff501757674c9fdf47e0fcd7cbd3";
hash = "sha256-XdcoM0hzVvuZZn7kXh1X8HSUGGEm/0Uqh7du7nx4sIE=";
};
makefile = "Makefile";
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "mame2003-plus";
version = "0-unstable-2025-08-20";
version = "0-unstable-2025-08-26";
src = fetchFromGitHub {
owner = "libretro";
repo = "mame2003-plus-libretro";
rev = "3f778c3a06172f01a9ac6c08812f46bd0173187a";
hash = "sha256-drSulDZxs6xei/XksMviVvqWjihBTdZTkrIsO2v+7wM=";
rev = "250d22b0cba0f145c7b958821fa7d1f839f4a37b";
hash = "sha256-jonFTHNuO7w2gypPyjx6DML8vNBIa+9Ur9Fa48WBNq4=";
};
makefile = "Makefile";
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "mame2003";
version = "0-unstable-2025-05-16";
version = "0-unstable-2025-08-26";
src = fetchFromGitHub {
owner = "libretro";
repo = "mame2003-libretro";
rev = "c24237583afcadb1c3c1727532bd4a49ebc5eff1";
hash = "sha256-zj1mNpfwYCUQAHAeg8+hVUOZ/xvIFhn65AeljjqI1Ss=";
rev = "dfddf4db86a3acd5997ce9419c7afd00ff6587a0";
hash = "sha256-GJRawFdlHCfBRiErJJ3ZvZDF1gvYVkuQvKXV1qUCCRQ=";
};
# Fix build with GCC 14
@@ -6,13 +6,13 @@
}:
mkLibretroCore {
core = "swanstation";
version = "0-unstable-2025-05-26";
version = "0-unstable-2025-08-02";
src = fetchFromGitHub {
owner = "libretro";
repo = "swanstation";
rev = "05cee5f56c37eaa3a243e0906d2082b025598056";
hash = "sha256-Cwf6hZKl+rE00C0rFq7VhTj3qG4rszQ+8qZQMZ+H7e8=";
rev = "4d309c05fd7bdc503d91d267bd542edb8d192b09";
hash = "sha256-v51xgsyVtyipss0VWqMTI69MLTJ4Eb37hJfbQfid/0Q=";
};
extraNativeBuildInputs = [ cmake ];
@@ -28,7 +28,6 @@ mkDerivation rec {
mainProgram = "confclerk";
homepage = "http://www.toastfreeware.priv.at/confclerk";
license = lib.licenses.gpl2;
maintainers = with lib.maintainers; [ ehmry ];
platforms = lib.platforms.linux;
};
}
@@ -47,7 +47,6 @@ stdenv.mkDerivation {
description = "Tools for inspecting, analyzing and optimizing ELF files";
license = licenses.gpl2;
maintainers = with maintainers; [
ehmry
philiptaron
];
};
@@ -28,7 +28,6 @@ python3Packages.buildPythonApplication {
description = "Experimental console client for the Gemini protocol";
mainProgram = "av98";
license = licenses.bsd2;
maintainers = with maintainers; [ ehmry ];
broken = true;
};
File diff suppressed because it is too large Load Diff
@@ -9,10 +9,10 @@
buildMozillaMach rec {
pname = "firefox";
version = "142.0";
version = "142.0.1";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "b0c1c766083a30a92b77dcf16a584d9fb341cd811d21c3a34da4cd0d714fd6adc73b608092d66058697bc4562faacc44859153e49ffdeb6e14e059e59f2ea246";
sha512 = "fca1b9c67a0b2f216f1f11fd5e3a08920998921e3d61eb633f1dde7fe69cb40cdbb63a41a1dfc4f1022509da643e3791467d88e62e7ea30b293ebf69d87bb585";
};
meta = {
@@ -51,7 +51,6 @@ stdenv.mkDerivation rec {
description = "Graphical small-internet client, supports gemini, http, https, gopher, finger";
mainProgram = "kristall";
homepage = "https://random-projects.net/projects/kristall.gemini";
maintainers = with maintainers; [ ehmry ];
license = licenses.gpl3Only;
inherit (qtmultimedia.meta) platforms;
};
@@ -126,13 +126,13 @@
"vendorHash": null
},
"aws": {
"hash": "sha256-52tdACEZF1AOg1pN25bo0T2pLObjho4fRrMSBhjP1xM=",
"hash": "sha256-5W12hwonBaEto5PTnvcBm9qeeIY37ALsyXs0r9pfVak=",
"homepage": "https://registry.terraform.io/providers/hashicorp/aws",
"owner": "hashicorp",
"repo": "terraform-provider-aws",
"rev": "v6.8.0",
"rev": "v6.11.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-rTQzbI04C92J+IXVX8dHtcbMvOif5jLW8ejm20qfrSA="
"vendorHash": "sha256-i3NwpixAXi9PzciiwTtHB8yrzLWv67gHiDY4HshAbBo="
},
"awscc": {
"hash": "sha256-RMOLAJyoIVIlg4GgU6rCSASgcZlvFMmLjFPqc5Lrdp8=",
@@ -16,13 +16,13 @@
stdenv.mkDerivation rec {
pname = "seafile-client";
version = "9.0.12";
version = "9.0.14";
src = fetchFromGitHub {
owner = "haiwen";
repo = "seafile-client";
rev = "v${version}";
sha256 = "sha256-9ng8TsT211jAt2Vhv8fEIQGCtbQ6LQ6pCVFToVaK8LY=";
hash = "sha256-ZMhU0uXAC3tH1e3ktiHhC5YCDwFOnILretPgjYYa9DQ=";
};
nativeBuildInputs = [
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p coreutils git nix curl jq
#!nix-shell -i bash -p coreutils git nix curl jq nixfmt-tree
# shellcheck shell=bash enable=all
set -e
@@ -226,6 +226,7 @@ if grep '""' "${tmp}"; then
fi
mv "${tmp}" "${file}"
treefmt "${file}"
printf "\nFinished\nMoved output to %s\n\n" "${file}" >&2
@@ -209,7 +209,6 @@ mkDerivation rec {
platforms = platforms.unix;
maintainers = with maintainers; [
jcumming
ehmry
];
# `Makefile.am` assumes the ability to run the hostPlatform's python binary at build time
@@ -12,11 +12,11 @@
buildKodiAddon rec {
pname = "arteplussept";
namespace = "plugin.video.arteplussept";
version = "1.4.2";
version = "1.4.3";
src = fetchzip {
url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
hash = "sha256-dqxGKaOnEYOI33Aw76zbjma5z7MqOUh367dFsV87olU=";
hash = "sha256-05k0ijTp0JDtHdxTJ5I8ff47F6LXGP78rInyX0nD7W8=";
};
propagatedBuildInputs = [
@@ -42,8 +42,8 @@ runCommand "${rustc-unwrapped.pname}-wrapper-${rustc-unwrapped.version}"
src
llvm
llvmPackages
tier1TargetPlatforms
targetPlatforms
targetPlatformsWithHostTools
badTargetPlatforms
;
unwrapped = rustc-unwrapped;
+13 -11
View File
@@ -7,13 +7,14 @@
makeWrapper,
makeDesktopItem,
cups,
qt5,
qt6,
undmg,
xorg,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "010editor";
version = "16.0";
version = "16.0.1";
src = finalAttrs.passthru.srcs.${stdenv.hostPlatform.system};
@@ -27,14 +28,15 @@ stdenv.mkDerivation (finalAttrs: {
lib.optionals stdenv.hostPlatform.isLinux [
autoPatchelfHook
makeWrapper
qt5.wrapQtAppsHook
qt6.wrapQtAppsHook
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ undmg ];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
cups
qt5.qtbase
qt5.qtwayland
qt6.qtbase
qt6.qtwayland
xorg.xkeyboardconfig
];
installPhase =
@@ -47,12 +49,12 @@ stdenv.mkDerivation (finalAttrs: {
linuxInstall = ''
mkdir -p $out/opt && cp -ar source/* $out/opt
# Use makeWrapper to clean environment and force xcb
# Wrap binary: clean env, fix XKB lookup
makeWrapper $out/opt/010editor $out/bin/010editor \
--unset QT_PLUGIN_PATH \
--set QT_QPA_PLATFORM xcb
--set XKB_CONFIG_ROOT ${xorg.xkeyboardconfig}/share/X11/xkb
# Copy the icon and generated desktop file
# Install icon + desktop entry
install -D $out/opt/010_icon_128x128.png $out/share/icons/hicolor/128x128/apps/010.png
install -D $desktopItem/share/applications/* -t $out/share/applications/
'';
@@ -89,17 +91,17 @@ stdenv.mkDerivation (finalAttrs: {
passthru.srcs = {
x86_64-linux = fetchzip {
url = "https://download.sweetscape.com/010EditorLinux64Installer${finalAttrs.version}.tar.gz";
hash = "sha256-DK+AIk90AC/KjZR0yBMHaRF7ajuX+UvT8rqDVdL678M=";
hash = "sha256-fPQCVA9VrpNBTA7PiOsHwIiaZLKKoK817PtWNX8uHBQ=";
};
x86_64-darwin = fetchurl {
url = "https://download.sweetscape.com/010EditorMac64Installer${finalAttrs.version}.dmg";
hash = "sha256-TWatSVqm9a+bVLXtJjiWAtkcB7qZqoeJ7Gmr62XUVz4=";
hash = "sha256-q/lfe4IWYJbxoGVBQju+t/w13UI3XHaVNPdTjnIQFw8=";
};
aarch64-darwin = fetchurl {
url = "https://download.sweetscape.com/010EditorMacARM64Installer${finalAttrs.version}.dmg";
hash = "sha256-CtExBuu6EL8ilq3+gtwjNwnMxXkKgPdrk34tYvjN2ps=";
hash = "sha256-kBrYSxTNz01pPaRfKZWE6dDoACgs5tlfb+M6A7R0Vo4=";
};
};
+4 -4
View File
@@ -9,15 +9,15 @@
buildGoModule (finalAttrs: {
pname = "adguardhome";
version = "0.107.64";
version = "0.107.65";
src = fetchFromGitHub {
owner = "AdguardTeam";
repo = "AdGuardHome";
tag = "v${finalAttrs.version}";
hash = "sha256-UmgWRei3qVkPLtusnXDGeaobxMy1a3Nlb1kBqkcmpxA=";
hash = "sha256-OOW77CJRR5vi5jHFOCyF/OyCXaQdTgEc8xZKPcF9vQE=";
};
vendorHash = "sha256-EKQGbDLaEZGthdBr+Fj5pZ2TBCQ1Df+L9uuI0y/k7XU=";
vendorHash = "sha256-spBMVSZhiM0R5tf8dhZD+N4ucFZ9Wno9Y+BhZMdzQRM=";
dashboard = buildNpmPackage {
inherit (finalAttrs) src;
@@ -45,7 +45,7 @@ buildGoModule (finalAttrs: {
passthru = {
updateScript = ./update.sh;
schema_version = 29;
schema_version = 30;
tests.adguardhome = nixosTests.adguardhome;
tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
-1
View File
@@ -99,7 +99,6 @@ stdenv.mkDerivation (finalAttrs: {
mainProgram = "alephone";
homepage = "https://alephone.lhowon.org/";
license = [ lib.licenses.gpl3 ];
maintainers = with lib.maintainers; [ ehmry ];
platforms = lib.platforms.linux;
};
+2 -2
View File
@@ -26,13 +26,13 @@
stdenv.mkDerivation rec {
pname = "argyllcms";
version = "3.4.0";
version = "3.4.1";
src = fetchzip {
# Kind of flacky URL, it was reaturning 406 and inconsistent binaries for a
# while on me. It might be good to find a mirror
url = "https://www.argyllcms.com/Argyll_V${version}_src.zip";
hash = "sha256-jY6X9mQaP9NTIkbpW5QO31s+5Iv/mFEDgtwDgYXzIU4=";
hash = "sha256-QVugWtAk8xBn+/fRFqCoi072Q2q8OlB0LRhavrHC5MI=";
};
nativeBuildInputs = [
@@ -7,14 +7,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "asciinema-automation";
version = "0.2.0";
version = "0.2.2";
pyproject = true;
src = fetchFromGitHub {
owner = "PierreMarchand20";
repo = "asciinema_automation";
rev = "v${version}";
hash = "sha256-SjUsPrhoNz2NTPAkmUH0Csv6hbDc6nyKdckGqV5S3GY=";
hash = "sha256-VfIr7w/5hQwr6XYuC3f8h71uScr0lBdx6PyO1hpiZhA=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "await";
version = "1.0.7";
version = "2.1.0";
src = fetchFromGitHub {
owner = "slavaGanzin";
repo = "await";
rev = version;
hash = "sha256-Yrit1WdWIfjwqbjvyjrPT3EqSSkooYX+uoOstbxy//I=";
hash = "sha256-p0rB1fPfBL1Vj4p7IZtmLhfB5LwwyRaiCVSeDZAXJAo=";
};
nativeBuildInputs = [ installShellFiles ];
+1 -2
View File
@@ -27,7 +27,6 @@
python3,
robin-map,
SDL2,
spirv-headers,
soundtouch,
stdenv,
vulkan-headers,
@@ -102,7 +101,6 @@ stdenv.mkDerivation (finalAttrs: {
qt6.qttools
soundtouch
SDL2
spirv-headers
vulkan-headers
xbyak
@@ -145,6 +143,7 @@ stdenv.mkDerivation (finalAttrs: {
(cmakeBool "DISABLE_SYSTEM_LODEPNG" true)
(cmakeBool "DISABLE_SYSTEM_VMA" true)
(cmakeBool "DISABLE_SYSTEM_ZSTD" true)
(cmakeBool "DISABLE_SYSTEM_SPIRV_HEADERS" true)
(cmakeBool "ENABLE_QT_TRANSLATION" enableQtTranslations)
(cmakeBool "ENABLE_CUBEB" enableCubeb)
(cmakeBool "USE_DISCORD_PRESENCE" useDiscordRichPresence)
-1
View File
@@ -51,6 +51,5 @@ buildNimPackage (finalAttrs: {
mainProgram = "balls";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ ehmry ];
};
})
-1
View File
@@ -185,7 +185,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/baresip/baresip";
maintainers = with lib.maintainers; [
raskin
ehmry
rnhmjoj
];
mainProgram = "baresip";
-1
View File
@@ -17,6 +17,5 @@ buildNimPackage (finalAttrs: {
description = "Base45 library for Nim";
license = lib.licenses.unlicense;
mainProgram = "base45";
maintainers = with lib.maintainers; [ ehmry ];
};
})
+2 -2
View File
@@ -5,14 +5,14 @@
}:
python3Packages.buildPythonApplication rec {
pname = "BeatPrints";
version = "1.1.4";
version = "1.1.5";
pyproject = true;
src = fetchFromGitHub {
owner = "TrueMyst";
repo = "BeatPrints";
rev = "v${version}";
hash = "sha256-HtYPEnHbJarSC3P337l3IGagk62FgEohSAVyv6PBnIs=";
hash = "sha256-7h2MbU6wPqcRhWijdMyd7sTf3UVNCX+5JUNytKr5/EM=";
};
build-system = with python3Packages; [
+3 -3
View File
@@ -31,7 +31,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "beekeeper-studio";
version = "5.2.12";
version = "5.3.4";
src =
let
@@ -44,8 +44,8 @@ stdenv.mkDerivation (finalAttrs: {
fetchurl {
url = "https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v${finalAttrs.version}/beekeeper-studio_${finalAttrs.version}_${arch}.deb";
hash = selectSystem {
x86_64-linux = "sha256-hpzvu4SyVLXhQ5wbh5hyx+8tM19SxkKZvlMVhzhDCW4=";
aarch64-linux = "sha256-s567NOTzTItfOdsABIzYoF8iYSpwDsDzbnLZhUSfT8o=";
x86_64-linux = "sha256-JSgZ/rDR3d2aKWuclE9tB5538fcMSShjx9gkzkp/7GA=";
aarch64-linux = "sha256-RsBw4jXcTA2WS1eMleAdljdw8ur0kf2WoQW3dNol2FA=";
};
};
@@ -1,17 +1,20 @@
{
stdenv,
cacert,
curl,
runCommandLocal,
lib,
autoPatchelfHook,
libcxx,
libGL,
cacert,
common-updater-scripts,
curl,
gcc,
jq,
lib,
libGL,
libcxx,
runCommandLocal,
stdenv,
writeShellApplication,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "blackmagic-desktop-video";
version = "14.4.1a4";
version = "15.0";
buildInputs = [
autoPatchelfHook
@@ -23,27 +26,23 @@ stdenv.mkDerivation (finalAttrs: {
# yes, the below download function is an absolute mess.
# blame blackmagicdesign.
src =
let
# from the URL the download page where you click the "only download" button is at
REFERID = "5baba0af3eda41ee9cd0ec7349660d74";
# from the URL that the POST happens to, see browser console
DOWNLOADID = "bc31044728f146859c6d9e0ccef868d8";
in
runCommandLocal "${finalAttrs.pname}-${lib.versions.majorMinor finalAttrs.version}-src.tar.gz"
{
outputHashMode = "recursive";
outputHashAlgo = "sha256";
outputHash = "sha256-qh305s7u1yurv58TZnlONgDmWT4RXG3fXTfun382HAs=";
outputHash = "sha256-+89enkB+Lxuzpkwwfy0y1NajNqx6QQfeVVrak4LgawQ=";
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
nativeBuildInputs = [ curl ];
nativeBuildInputs = [
curl
jq
];
# ENV VARS
SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
inherit REFERID;
SITEURL = "https://www.blackmagicdesign.com/api/register/us/download/${DOWNLOADID}";
DOWNLOADSURL = "https://www.blackmagicdesign.com/api/support/us/downloads.json";
USERAGENT = builtins.concatStringsSep " " [
"User-Agent: Mozilla/5.0 (X11; Linux ${stdenv.hostPlatform.linuxArch})"
@@ -58,8 +57,24 @@ stdenv.mkDerivation (finalAttrs: {
"platform" = "Linux";
"policy" = true;
};
PRODUCT = "Desktop Video";
VERSION = finalAttrs.version;
}
''
DOWNLOADID=$(
curl --silent --compressed "$DOWNLOADSURL" \
| jq --raw-output '.downloads[] | .urls.Linux?[]? | select(.downloadTitle | test("^'"$PRODUCT $VERSION"'( Update)?$")) | .downloadId'
)
REFERID=$(
curl --silent --compressed "$DOWNLOADSURL" \
| jq --raw-output '.downloads[] | .urls.Linux?[]? | select(.downloadTitle | test("^'"$PRODUCT $VERSION"'( Update)?$")) | .releaseId'
)
echo "Download ID is $DOWNLOADID"
echo "Refer ID is $REFERID"
test -n "$REFERID"
test -n "$DOWNLOADID"
SITEURL="https://www.blackmagicdesign.com/api/register/us/download/$DOWNLOADID";
RESOLVEURL=$(curl \
-s \
-H "$USERAGENT" \
@@ -75,13 +90,30 @@ stdenv.mkDerivation (finalAttrs: {
> $out
'';
passthru.updateScript = lib.getExe (writeShellApplication {
# mostly stolen from pkgs/by-name/da/davinci-resolve/package.nix :)
name = "update-blackmagic-desktop-video";
runtimeInputs = [
common-updater-scripts
curl
jq
];
text = ''
set -o errexit
downloadsJSON="$(curl --fail --silent https://www.blackmagicdesign.com/api/support/us/downloads.json)"
latestLinuxVersion="$(echo "$downloadsJSON" | jq '[.downloads[] | select(.urls.Linux) | .urls.Linux[] | select(.downloadTitle | test("Desktop Video")) | .downloadTitle]' | grep -oP 'Desktop Video \K\d\d\.\d+(\.\d+)?' | sort | tail -n 1)"
update-source-version blackmagic-desktop-video "$latestLinuxVersion"
'';
});
postUnpack =
let
arch = stdenv.hostPlatform.uname.processor;
in
''
tar xf Blackmagic_Desktop_Video_Linux_${lib.head (lib.splitString "a" finalAttrs.version)}/other/${arch}/desktopvideo-${finalAttrs.version}-${arch}.tar.gz
unpacked=$NIX_BUILD_TOP/desktopvideo-${finalAttrs.version}-${stdenv.hostPlatform.uname.processor}
tar xf Blackmagic_Desktop_Video_Linux_${finalAttrs.version}/other/${arch}/desktopvideo-${finalAttrs.version}*-${arch}.tar.gz
unpacked=$NIX_BUILD_TOP/desktopvideo-${finalAttrs.version}*-${stdenv.hostPlatform.uname.processor}
'';
installPhase = ''
+4 -1
View File
@@ -59,7 +59,10 @@ stdenv.mkDerivation rec {
description = "Simple integrated development environment for Java";
homepage = "https://www.bluej.org/";
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
license = lib.licenses.gpl2ClasspathPlus;
license = with lib.licenses; [
gpl2Plus
classpathException20
];
mainProgram = "bluej";
maintainers = with lib.maintainers; [ chvp ];
platforms = lib.platforms.linux;
-1
View File
@@ -33,6 +33,5 @@ buildGoModule rec {
mainProgram = "bombadillo";
homepage = "https://bombadillo.colorfield.space/";
license = licenses.gpl3;
maintainers = with maintainers; [ ehmry ];
};
}
+20 -10
View File
@@ -1,11 +1,21 @@
{ "_comment": "@generated by pkgs/by-name/bu/buck2/update.sh"
, "_prelude": "sha256-cyuOMi8x8q9gd6p1obnYYDVPxyONZ+y41AFXvSbUjC0="
, "buck2-x86_64-linux": "sha256-l/W6Bza01IyOFvHb2rlBY72Tl+JNgwmkO8EhUPWrxBY="
, "rust-project-x86_64-linux": "sha256-3UGgvQKSm6Qohk/NDRU1fM+eFEpqM9XMLxL2AkXXrW0="
, "buck2-x86_64-darwin": "sha256-wHk/tJJbupMsrcmXXNVXurfLY2TOSssMnuTZ7LNjASY="
, "rust-project-x86_64-darwin": "sha256-ePawMIfltPRK3mJJxI1BvGs6b2vIcgWzW2XTJykUsdI="
, "buck2-aarch64-linux": "sha256-dhqBYFQ6e5nWSrbUMUFoato1sb4bl95JcdqcgeC5mcs="
, "rust-project-aarch64-linux": "sha256-Zduna35ieycN80K2wh5OkcSaOWiqhxLJkduBk7f2XqU="
, "buck2-aarch64-darwin": "sha256-XtGs7g64s76AYhpFDbqSuSlblRauxJM0PaAk1MNNgxA="
, "rust-project-aarch64-darwin": "sha256-CkyLLv41iJTKHVB0e355ZO2MV7NzQeiF1gtWEGF5oAY="
{
"x86_64-linux": {
"buck2": "sha256-gVOho7p25okvAV8OqXppdtwOOEzqH7VWcJBT4l5CT2U=",
"rust-project": "sha256-HKctvCiXyGFzfHfB3Qj6qR2p46i5vaaZgPg2J827ou4="
},
"x86_64-darwin": {
"buck2": "sha256-wHk/tJJbupMsrcmXXNVXurfLY2TOSssMnuTZ7LNjASY=",
"rust-project": "sha256-ePawMIfltPRK3mJJxI1BvGs6b2vIcgWzW2XTJykUsdI="
},
"aarch64-linux": {
"buck2": "sha256-Gn/Q2P0Fs93SbOawhzv8Z9DgbrIUlQ+9E3PyCNsV1pk=",
"rust-project": "sha256-Pm5lEIu0hzI5BuA/LuTKjBP8S63jiz1oSB0g9tSETGU="
},
"aarch64-darwin": {
"buck2": "sha256-XtGs7g64s76AYhpFDbqSuSlblRauxJM0PaAk1MNNgxA=",
"rust-project": "sha256-CkyLLv41iJTKHVB0e355ZO2MV7NzQeiF1gtWEGF5oAY="
},
"version": "2025-08-15",
"preludeGit": "892cb85f5fc3258c7e4f89a836821ec4b8c7ee44",
"preludeFod": "sha256-cyuOMi8x8q9gd6p1obnYYDVPxyONZ+y41AFXvSbUjC0="
}
+69 -91
View File
@@ -1,11 +1,12 @@
{
fetchurl,
lib,
stdenv,
zstd,
buildPackages,
fetchurl,
installShellFiles,
testers,
buck2, # for passthru.tests
versionCheckHook,
autoPatchelfHook,
zstd,
}:
# NOTE (aseipp): buck2 uses a precompiled binary build for good reason — the
@@ -42,128 +43,105 @@ let
# procued by GitHub Actions. this also includes the hash for a download of a
# compatible buck2-prelude
buildHashes = builtins.fromJSON (builtins.readFile ./hashes.json);
# our version of buck2; this should be a git tag
version = "2025-08-15";
archHashes = buildHashes.${stdenv.hostPlatform.system};
# map our platform name to the rust toolchain suffix
# NOTE (aseipp): must be synchronized with update.sh!
# NOTE (aseipp): must be synchronized with update.nu!
platform-suffix =
{
x86_64-darwin = "x86_64-apple-darwin";
aarch64-darwin = "aarch64-apple-darwin";
x86_64-linux = "x86_64-unknown-linux-musl";
aarch64-linux = "aarch64-unknown-linux-musl";
x86_64-linux = "x86_64-unknown-linux-gnu";
aarch64-linux = "aarch64-unknown-linux-gnu";
}
."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
# the platform-specific, statically linked binary — which is also
# zstd-compressed
buck2-src =
let
name = "buck2-${version}-${platform-suffix}.zst";
hash = buildHashes."buck2-${stdenv.hostPlatform.system}";
url = "https://github.com/facebook/buck2/releases/download/${version}/buck2-${platform-suffix}.zst";
in
fetchurl { inherit name url hash; };
# rust-project, which is used to provide IDE integration Buck2 Rust projects,
# is part of the official distribution
rust-project-src =
let
name = "rust-project-${version}-${platform-suffix}.zst";
hash = buildHashes."rust-project-${stdenv.hostPlatform.system}";
url = "https://github.com/facebook/buck2/releases/download/${version}/rust-project-${platform-suffix}.zst";
in
fetchurl { inherit name url hash; };
# compatible version of buck2 prelude; this is exported via passthru.prelude
# for downstream consumers to use when they need to automate any kind of
# tooling
prelude-src =
let
prelude-hash = "892cb85f5fc3258c7e4f89a836821ec4b8c7ee44";
name = "buck2-prelude-${version}.tar.gz";
hash = buildHashes."_prelude";
url = "https://github.com/facebook/buck2-prelude/archive/${prelude-hash}.tar.gz";
in
fetchurl { inherit name url hash; };
.${stdenv.hostPlatform.system};
in
stdenv.mkDerivation {
stdenv.mkDerivation (finalAttrs: {
pname = "buck2";
version = "unstable-${version}"; # TODO (aseipp): kill 'unstable' once a non-prerelease is made
version = "unstable-${buildHashes.version}"; # TODO (aseipp): kill 'unstable' once a non-prerelease is made
srcs = [
buck2-src
rust-project-src
# the platform-specific binary — which is also
# zstd-compressed
(fetchurl {
url = "https://github.com/facebook/buck2/releases/download/${lib.removePrefix "unstable-" finalAttrs.version}/buck2-${platform-suffix}.zst";
hash = archHashes.buck2;
})
# rust-project, which is used to provide IDE integration Buck2 Rust projects,
# is part of the official distribution
(fetchurl {
url = "https://github.com/facebook/buck2/releases/download/${lib.removePrefix "unstable-" finalAttrs.version}/rust-project-${platform-suffix}.zst";
hash = archHashes.rust-project;
})
];
unpackCmd = "unzstd $curSrc -o $(stripHash $curSrc)";
sourceRoot = ".";
strictDeps = true;
nativeBuildInputs = [
installShellFiles
autoPatchelfHook
zstd
];
doCheck = true;
dontConfigure = true;
dontStrip = true;
buildInputs = [
#225963
stdenv.cc.cc.libgcc or null
];
unpackPhase = ''
runHook preUnpack
unzstd ${buck2-src} -o ./buck2
unzstd ${rust-project-src} -o ./rust-project
runHook postUnpack
'';
buildPhase = ''
runHook preBuild
chmod +x ./buck2 && chmod +x ./rust-project
runHook postBuild
'';
checkPhase = ''
runHook preCheck
./buck2 --version && ./rust-project --version
runHook postCheck
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install -D buck2 $out/bin/buck2
install -D rust-project $out/bin/rust-project
install -D buck2* "$out/bin/buck2"
install -D rust-project* "$out/bin/rust-project"
runHook postInstall
'';
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd buck2 \
--bash <( $out/bin/buck2 completion bash ) \
--fish <( $out/bin/buck2 completion fish ) \
--zsh <( $out/bin/buck2 completion zsh )
'';
# Have to put this at a weird stage because if it is put in
# postInstall, preFixup, or postFixup, autoPatchelf wouldn't
# have run yet
preInstallCheck =
let
emulator = stdenv.hostPlatform.emulator buildPackages;
in
lib.optionalString (stdenv.hostPlatform.emulatorAvailable buildPackages) ''
installShellCompletion --cmd buck2 \
--bash <(${emulator} $out/bin/buck2 completion bash ) \
--fish <(${emulator} $out/bin/buck2 completion fish ) \
--zsh <(${emulator} $out/bin/buck2 completion zsh )
'';
doInstallCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
nativeInstallCheckInputs = [ versionCheckHook ];
# TODO: When --version returns a real output, remove this.
# Currently it just spits out a hash
preVersionCheck = "version=buck2";
passthru = {
prelude = prelude-src;
updateScript = ./update.sh;
tests = testers.testVersion {
package = buck2;
# NOTE (aseipp): the buck2 --version command doesn't actually print out
# the given version tagged in the release, but a hash, but not the git
# hash; the entire version logic is bizarrely specific to buck2, and needs
# to be reworked the open source build to behave like expected. in the
# mean time, it *does* always print out 'buck2 <hash>...' so we can just
# match on "buck2"
version = "buck2";
# compatible version of buck2 prelude; this is exported via passthru.prelude
# for downstream consumers to use when they need to automate any kind of
# tooling
prelude = fetchurl {
url = "https://github.com/facebook/buck2-prelude/archive/${buildHashes.preludeGit}.tar.gz";
hash = buildHashes.preludeFod;
};
updateScript = ./update.nu;
};
meta = {
description = "Fast, hermetic, multi-language build system";
homepage = "https://buck2.build";
changelog = "https://github.com/facebook/buck2/releases/tag/${version}";
changelog = "https://github.com/facebook/buck2/releases/tag/${lib.removePrefix "unstable-" finalAttrs.version}";
license = with lib.licenses; [
asl20 # or
mit
];
mainProgram = "buck2";
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
maintainers = with lib.maintainers; [
thoughtpolice
lf-
@@ -176,4 +154,4 @@ stdenv.mkDerivation {
"aarch64-darwin"
];
};
}
})
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env nix-shell
#! nix-shell -I ./.
#! nix-shell -i nu
#! nix-shell -p nushell nix
const ARCHES = [
{ name: "x86_64-linux", target: "x86_64-unknown-linux-gnu" },
{ name: "x86_64-darwin", target: "x86_64-apple-darwin" },
{ name: "aarch64-linux", target: "aarch64-unknown-linux-gnu" },
{ name: "aarch64-darwin", target: "aarch64-apple-darwin" },
];
const MANIFEST = "pkgs/by-name/bu/buck2/hashes.json"
def main [] {
let version = http get "https://api.github.com/repos/facebook/buck2/releases"
| sort-by -r created_at
| where prerelease == true and name != "latest"
| first
| get name
let preludeHash = http get $"https://github.com/facebook/buck2/releases/download/($version)/prelude_hash" | decode | str trim
let preludeFod = run-external "nix" "--extra-experimental-features" "nix-command" "store" "prefetch-file" "--json" $"https://github.com/facebook/buck2-prelude/archive/($preludeHash).tar.gz" | from json | get hash
print $"Newest version: ($version)"
print $"Newest prelude hash: ($preludeHash)"
let hashes = $ARCHES | par-each {
|arch|
{
$arch.name: {
"buck2": (run-external "nix" "--extra-experimental-features" "nix-command" "store" "prefetch-file" "--json" $"https://github.com/facebook/buck2/releases/download/($version)/buck2-($arch.target).zst" | from json | get hash),
"rust-project": (run-external "nix" "--extra-experimental-features" "nix-command" "store" "prefetch-file" "--json" $"https://github.com/facebook/buck2/releases/download/($version)/rust-project-($arch.target).zst" | from json | get hash),
}
}
} | reduce { |val, accum| $accum | merge $val }
let new_manifest = $hashes
| insert "version" $version
| insert "preludeGit" $preludeHash
| insert "preludeFod" $preludeFod
$new_manifest
| to json
| append "\n"
| str join
| save -f $MANIFEST
}
-56
View File
@@ -1,56 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=./. -i bash -p curl jq nix-prefetch common-updater-scripts nix coreutils
# shellcheck shell=bash
set -euo pipefail
VERSION=$(curl -s https://api.github.com/repos/facebook/buck2/releases \
| jq -r 'sort_by(.created_at) | reverse |
(map
(select ((.prerelease == true) and (.name != "latest"))) |
first
) | .name')
PRELUDE_HASH=$(curl -sLo - "https://github.com/facebook/buck2/releases/download/${VERSION}/prelude_hash")
PRELUDE_DL_URL="https://github.com/facebook/buck2-prelude/archive/${PRELUDE_HASH}.tar.gz"
echo "Latest buck2 prerelease: $VERSION"
echo "Compatible buck2-prelude hash: $PRELUDE_HASH"
ARCHS=(
"x86_64-linux:x86_64-unknown-linux-musl"
"x86_64-darwin:x86_64-apple-darwin"
"aarch64-linux:aarch64-unknown-linux-musl"
"aarch64-darwin:aarch64-apple-darwin"
)
NFILE=pkgs/by-name/bu/buck2/package.nix
HFILE=pkgs/by-name/bu/buck2/hashes.json
rm -f "$HFILE" && touch "$HFILE"
PRELUDE_SHA256HASH="$(nix-prefetch-url --type sha256 "$PRELUDE_DL_URL")"
PRELUDE_SRIHASH="$(nix --extra-experimental-features nix-command hash to-sri --type sha256 "$PRELUDE_SHA256HASH")"
printf "{ \"_comment\": \"@generated by pkgs/by-name/bu/buck2/update.sh\"\n" >> "$HFILE"
printf ", \"_prelude\": \"$PRELUDE_SRIHASH\"\n" >> "$HFILE"
for arch in "${ARCHS[@]}"; do
IFS=: read -r arch_name arch_target <<< "$arch"
sha256hash="$(nix-prefetch-url --type sha256 "https://github.com/facebook/buck2/releases/download/${VERSION}/buck2-${arch_target}.zst")"
srihash="$(nix --extra-experimental-features nix-command hash to-sri --type sha256 "$sha256hash")"
echo ", \"buck2-$arch_name\": \"$srihash\"" >> "$HFILE"
IFS=: read -r arch_name arch_target <<< "$arch"
sha256hash="$(nix-prefetch-url --type sha256 "https://github.com/facebook/buck2/releases/download/${VERSION}/rust-project-${arch_target}.zst")"
srihash="$(nix --extra-experimental-features nix-command hash to-sri --type sha256 "$sha256hash")"
echo ", \"rust-project-$arch_name\": \"$srihash\"" >> "$HFILE"
done
echo "}" >> "$HFILE"
sed -i \
'0,/version\s*=\s*".*";/s//version = "'"$VERSION"'";/' \
"$NFILE"
sed -i \
'0,/prelude-hash\s*=\s*".*";/s//prelude-hash = "'"$PRELUDE_HASH"'";/' \
"$NFILE"
echo "Done; wrote $HFILE and updated version in $NFILE."
+5 -5
View File
@@ -17,7 +17,7 @@
}:
stdenvNoCC.mkDerivation rec {
version = "1.2.20";
version = "1.2.21";
pname = "bun";
src =
@@ -87,19 +87,19 @@ stdenvNoCC.mkDerivation rec {
sources = {
"aarch64-darwin" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-aarch64.zip";
hash = "sha256-QE9abdH2BLQOs7FW1Bl7uNOYuybgrkyKyOeqSQ9+I18=";
hash = "sha256-/YhmMLoVxIQjatXz8islXSh8Pu+NO8JvyAmFEDXATOw=";
};
"aarch64-linux" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-aarch64.zip";
hash = "sha256-mNLgssCUIVaRcrTUa2+BN4wtvdd0gOuyfzmJ3U5y4Ys=";
hash = "sha256-DkyeVIdqFg6RgSrjxi02z71o8g4VjLcy9joNa3WUKHs=";
};
"x86_64-darwin" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-x64-baseline.zip";
hash = "sha256-li1ZeAHkLjxi+/b2O/8edqoaRxpYluvYMZeC8QzgiWE=";
hash = "sha256-Qm1N3h5Rg0aNMf+G7RPAjW8p7wlcia5QtfX1IP3u2RY=";
};
"x86_64-linux" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-x64.zip";
hash = "sha256-Tp7cTLoMfBYjooi+AeU7veEaTQc/LPM5yrAmYnhYtUg=";
hash = "sha256-WU9FTVHOVxmdQyDIXL1JW+nAVO8XquvKXmyQir/aYXk=";
};
};
updateScript = writeShellScript "update-bun" ''
-1
View File
@@ -71,7 +71,6 @@ stdenv.mkDerivation (finalAttrs: {
description = "Easy to use, multi OS streaming tool";
homepage = "https://danielnoethen.de/butt/";
license = lib.licenses.gpl2;
maintainers = with lib.maintainers; [ ehmry ];
mainProgram = "butt";
platforms = lib.platforms.linux;
};
-1
View File
@@ -17,6 +17,5 @@ buildNimPackage (finalAttrs: {
description = "Tool to translate Ansi C code to Nim";
mainProgram = "c2nim";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ehmry ];
};
})
+5 -4
View File
@@ -15,14 +15,14 @@ let
"cli"
"desktop"
];
version = "0.50.1";
version = "0.51.0";
cli = fetchurl {
url = "https://caido.download/releases/v${version}/caido-cli-v${version}-linux-x86_64.tar.gz";
hash = "sha256-mHB0nyU0nQg7duPcQf3NNz5vcnIfZcPLkAc+LoWdH58=";
hash = "sha256-xMA7Q2VS73xG8/b3jAVz/HMmh8024nOxjcoh6bo/Cws=";
};
desktop = fetchurl {
url = "https://caido.download/releases/v${version}/caido-desktop-v${version}-linux-x86_64.AppImage";
hash = "sha256-mVK/valleYH3qZdxRBCbmC7MTEE/Cn6MJwZviMgHL08=";
hash = "sha256-kkwwaVqk2DGmnEM8ZQrCvhTSreT4HoiZ1rhheyqZfec=";
};
appimageContents = appimageTools.extractType2 {
inherit pname version;
@@ -42,7 +42,8 @@ let
install -m 444 -D ${appimageContents}/caido.png \
$out/share/icons/hicolor/512x512/apps/caido.png
wrapProgram $out/bin/caido \
--set WEBKIT_DISABLE_COMPOSITING_MODE 1
--set WEBKIT_DISABLE_COMPOSITING_MODE 1 \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
'';
};
+3 -3
View File
@@ -14,16 +14,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "tauri";
version = "2.7.1";
version = "2.8.3";
src = fetchFromGitHub {
owner = "tauri-apps";
repo = "tauri";
tag = "tauri-cli-v${finalAttrs.version}";
hash = "sha256-0J55AvAvvqTVls4474GcgLPBtSC+rh8cXVKluMjAVBE=";
hash = "sha256-bubC2cGlZDam0IGGwB/GSiVt9LFfKmy0uZwwPhAPrl0=";
};
cargoHash = "sha256-nkY1ydc2VewRwY+B5nR68mz8Ff3FK1KoHE4dLzNtPkY=";
cargoHash = "sha256-LJYAVism63OVzAEJS8WeaL+XTpxOTCy22U5MUPu8rA4=";
nativeBuildInputs = lib.optionals (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isLinux) [
pkg-config
+2 -2
View File
@@ -6,13 +6,13 @@
buildGoModule rec {
pname = "cdncheck";
version = "1.1.33";
version = "1.1.34";
src = fetchFromGitHub {
owner = "projectdiscovery";
repo = "cdncheck";
tag = "v${version}";
hash = "sha256-T00lM/jA0+3z5RViQkzACNyUqsgSzYtdgGwNli+nm7w=";
hash = "sha256-I/wmKKrXFjaha2sq9l/zFJkkDf6DNNeSAOBcKmnOZNg=";
};
vendorHash = "sha256-/1REkZ5+sz/H4T4lXhloz7fu5cLv1GoaD3dlttN+Qd4=";
-1
View File
@@ -84,7 +84,6 @@ rustPlatform.buildRustPackage rec {
homepage = "https://github.com/cjdelisle/cjdns";
description = "Encrypted networking for regular people";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ ehmry ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
}
+3 -3
View File
@@ -7,12 +7,12 @@
}:
let
pname = "clickup";
version = "3.5.87";
version = "3.5.120";
src = fetchurl {
# Using archive.org because the website doesn't store older versions of the software.
url = "https://web.archive.org/web/20250419020454/https://desktop.clickup.com/linux";
hash = "sha256-+Et+N8ZR5pJ8dvsU/tZa+LLpatooTnq3D24c6t1NS18=";
url = "https://web.archive.org/web/20250802083833/https://desktop.clickup.com/linux";
hash = "sha256-LVHgXqTxDTsnVJ3zx74TzaSrEs2OD0wl0eioPd4+484=";
};
appimage = appimageTools.wrapType2 {
@@ -29,7 +29,6 @@ stdenv.mkDerivation rec {
downloadPage = "http://collapseos.org/files/";
homepage = "http://collapseos.org/";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ ehmry ];
mainProgram = "cos-serial";
};
}
@@ -27,7 +27,7 @@ php.buildComposerProject2 (finalAttrs: {
homepage = "https://github.com/maglnet/ComposerRequireChecker/";
changelog = "https://github.com/maglnet/ComposerRequireChecker/releases/tag/${finalAttrs.version}";
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [ ];
mainProgram = "composer-require-checker";
maintainers = [ lib.maintainers.patka ];
};
})
+3 -3
View File
@@ -21,12 +21,12 @@
rustPlatform.buildRustPackage {
pname = "crosvm";
version = "0-unstable-2025-08-18";
version = "0-unstable-2025-08-28";
src = fetchgit {
url = "https://chromium.googlesource.com/chromiumos/platform/crosvm";
rev = "44659aa08a8c89c3dad2e468ff57cdb639c80732";
hash = "sha256-bYTZ1R/WPUUZoxmdreFGaRt9epAI+mcIrEvs5RJPUeA=";
rev = "ce1281988c5639f2a6a4cc6c20c03eb44751de07";
hash = "sha256-zorrj6sENcjV+pa2VYhunu8LhxT3oOyDRreHX78HckI=";
fetchSubmodules = true;
};
+2 -2
View File
@@ -9,7 +9,7 @@ stdenvNoCC.mkDerivation rec {
version = "1.0";
src = fetchurl {
url = "https://github.com/NerdyPepper/curie/releases/download/v${version}/curie-v${version}.tar.gz";
url = "https://github.com/oppiliappan/curie/releases/download/v${version}/curie-v${version}.tar.gz";
hash = "sha256-B89GNbOmm3lY/cRWQJEFu/5morCM/WrRQb/m6covbt8=";
};
@@ -26,7 +26,7 @@ stdenvNoCC.mkDerivation rec {
meta = with lib; {
description = "Upscaled version of scientifica";
homepage = "https://github.com/NerdyPepper/curie";
homepage = "https://github.com/oppiliappan/curie";
license = licenses.ofl;
platforms = platforms.all;
maintainers = with maintainers; [ moni ];
+3 -3
View File
@@ -15,7 +15,7 @@
let
pname = "decent-sampler";
version = "1.13.5";
version = "1.13.10";
rlkey = "orvjprslmwn0dkfs0ncx6nxnm";
icon = fetchurl {
@@ -28,8 +28,8 @@ let
src = fetchzip {
# dropbox links: https://www.dropbox.com/sh/dwyry6xpy5uut07/AABBJ84bjTTSQWzXGG5TOQpfa\
url = "https://www.dropbox.com/scl/fo/a0i0udw7ggfwnjoi05hh3/AHWDqpqSKIsmfX6wyJdBhlU/Decent_Sampler-${version}-Linux-Static-x86_64.tar.gz?rlkey=${rlkey}&dl=0";
hash = "sha256-B7iw0NK74p1GXPS0wh+m3HyFsnqgODbt41rXZPo3/rE=";
url = "https://www.dropbox.com/scl/fo/a0i0udw7ggfwnjoi05hh3/ACdV5vrbMrsBIUbidqizaIk/Decent_Sampler-${version}-Linux-Static-x86_64.tar.gz?rlkey=${rlkey}&dl=0";
hash = "sha256-2LyBldjsD05bMyK/aI+Ivk3f3cErRiM7GJlwOGqT9VQ=";
};
nativeBuildInputs = [ copyDesktopItems ];
+3 -3
View File
@@ -29,17 +29,17 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "deno";
version = "2.4.4";
version = "2.4.5";
src = fetchFromGitHub {
owner = "denoland";
repo = "deno";
tag = "v${finalAttrs.version}";
fetchSubmodules = true; # required for tests
hash = "sha256-Zeml0hubyNK3wU29xNKwiOPHjLzbGryNhZ2/geoCpXs=";
hash = "sha256-kzY/ZT5Ld6oQnl8vHBaMfdAgZljTcWCFafIbuRS21ro=";
};
cargoHash = "sha256-oWbCv7uwqAeiDzCQ4fc3Yh+FxUJH/ar9A2y9qx95XjE=";
cargoHash = "sha256-A1LABL99mXson3gw8CaDbMH4afzyGMcaK0A8+aeK7T0=";
patches = [
# Patch out the remote upgrade (deno update) check.
-1
View File
@@ -32,7 +32,6 @@ buildGoModule rec {
meta = src.meta // {
description = "Extensive, fast, and accurate command-line image dithering tool";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ ehmry ];
mainProgram = "didder";
};
}
+2 -2
View File
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec {
version = "0.2.7";
buildInputs = [ ncurses ];
src = fetchFromGitHub {
owner = "NerdyPepper";
owner = "oppiliappan";
repo = "dijo";
rev = "v${version}";
sha256 = "sha256-g+A8BJxqoAvm9LTLrLnClVGtFJCQ2gT0mDGAov/6vXE=";
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
meta = with lib; {
description = "Scriptable, curses-based, digital habit tracker";
homepage = "https://github.com/NerdyPepper/dijo";
homepage = "https://github.com/oppiliappan/dijo";
license = licenses.mit;
maintainers = [ ];
mainProgram = "dijo";
@@ -21,6 +21,5 @@ buildGoModule rec {
homepage = "https://dnslink.org/";
license = lib.licenses.mit;
mainProgram = "dnslink";
maintainers = with lib.maintainers; [ ehmry ];
};
}
-1
View File
@@ -142,7 +142,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3;
maintainers = with maintainers; [
chuangzhu
ehmry
];
platforms = platforms.linux;
};
+1 -1
View File
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
description = "Graphical editor for ACLs and extended attributes";
homepage = "https://rofi.roger-ferrer.org/eiciel/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ keysmashes ];
maintainers = with maintainers; [ ];
platforms = platforms.linux;
mainProgram = "eiciel";
};
-1
View File
@@ -41,7 +41,6 @@ buildGoModule rec {
description = "Implementation of ERIS for Go";
homepage = "https://codeberg.org/eris/eris-go";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ ehmry ];
mainProgram = "eris-go";
};
}
-1
View File
@@ -35,7 +35,6 @@ buildNimPackage (
meta = final.src.meta // {
homepage = "https://codeberg.org/eris/nim-eris";
license = lib.licenses.unlicense;
maintainers = with lib.maintainers; [ ehmry ];
mainProgram = "eriscmd";
badPlatforms = lib.platforms.darwin;
};

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