Merge c4b0401802 into haskell-updates

This commit is contained in:
nixpkgs-ci[bot]
2026-03-04 00:28:25 +00:00
committed by GitHub
313 changed files with 3953 additions and 2451 deletions
+3
View File
@@ -869,6 +869,9 @@
"tar-files": [
"index.html#tar-files"
],
"x86_64-darwin-26.05": [
"release-notes.html#x86_64-darwin-26.05"
],
"zip-files": [
"index.html#zip-files"
],
+26
View File
@@ -12,6 +12,27 @@
- Ruby default version has been updated from 3.3 to 3.4.
Refer to the [upstream release announcement](https://www.ruby-lang.org/en/news/2024/12/25/ruby-3-4-0-released/) for details.
- []{#x86_64-darwin-26.05}
**This will be the last release of Nixpkgs to support `x86_64-darwin`.**
Platform support will be maintained and binaries built until Nixpkgs 26.05 goes out of support at the end of 2026.
For 26.11, due to Apples deprecation of the platform and limited build infrastructure and developer time, we will no longer build packages for `x86_64-darwin` or support building them from source.
By the time of 26.11s release, Homebrew will offer only limited [Tier 3](https://docs.brew.sh/Support-Tiers#tier-3) support for the platform, but MacPorts will likely continue to support it for a long time.
We also recommend users consider installing NixOS, which should continue to run on essentially all Intel Macs, especially after Apple stops security support for macOS 26 in 2028.
A warning will be displayed for `x86_64-darwin` users; you can set [](#opt-allowDeprecatedx86_64Darwin) in the [Nixpkgs configuration](https://nixos.org/manual/nixpkgs/stable/#chap-packageconfig) to silence it.
The {file}`~/.config/nixpkgs/config.nix` file will not work for users of flakes, who can instead replace `nixpkgs.legacyPackages.x86_64-darwin` with
```nix
import nixpkgs {
system = "x86_64-darwin";
config.allowDeprecatedx86_64Darwin = true;
}
```
nix-darwin users can set [`nixpkgs.config.allowDeprecatedx86_64Darwin`](https://nix-darwin.github.io/nix-darwin/manual/index.html#opt-nixpkgs.config) in their system configurations.
- The Factor programming language has been updated to Version 0.101 bringing various improvements to UI rendering and HiDPI support as well as support for Unicode 17.0.0.
Starting from Version 0.100, the Factor VM is compiled with Clang.
@@ -66,6 +87,8 @@
- `cargo-codspeed` has been updated from `3.0.5` to `4.2.0`. Version `4.0.0` includes breaking changes. For more information read the [changelog for 4.0.0](https://github.com/CodSpeedHQ/codspeed-rust/releases/tag/v4.0.0).
- `commafeed` has been updated to version 7.0.0, which includes changes impacting its security. Please see [upstream's release notes](https://github.com/Athou/commafeed/releases/tag/7.0.0) for details.
- `corepack_latest` has been removed, as Corepack is no longer distributed with Node.js.
- `nodePackages.browser-sync` has been removed, as it was unmaintained within nixpkgs.
@@ -173,6 +196,9 @@
- `python3packages.pillow-avif-plugin` has been removed as the functionality is included in `python3packages.pillow` directly since version 11.3.
- `light` has been removed because it was unmaintained.
`brightnessctl` and `acpilight` provide similar functionality.
- `services.openssh.settings.AcceptEnv` now explicitly defined as an option that takes a list of strings, to facilitate option merging. Setting it to a string value is no longer supported.
- `nodejs-slim` has a `npm` and a `corepack` outputs, and `nodejs` no longer has a `libv8` output.
+12 -6
View File
@@ -3684,6 +3684,12 @@
githubId = 6375609;
name = "Bob van der Linden";
};
bodier123 = {
email = "brubacher.1@gmail.com";
github = "bodier123";
githubId = 71633864;
name = "Bodie";
};
bodil = {
email = "nix@bodil.org";
github = "bodil";
@@ -4291,12 +4297,6 @@
}
];
};
cameroncuttingedge = {
email = "buckets-taxiway5l@icloud.com";
github = "cameroncuttingedge";
githubId = 109548666;
name = "Cameron Byte";
};
camerondugan = {
email = "cameron.dugan@protonmail.com";
github = "camerondugan";
@@ -4836,6 +4836,12 @@
githubId = 1438690;
name = "Chris Pickard";
};
chrisportela = {
email = "chris@chrisportela.com";
github = "chrisportela";
githubId = 505649;
name = "Chris Portela";
};
chrispwill = {
email = "chris@chrispwill.com";
github = "ChrisPWill";
@@ -708,7 +708,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
The port can be specified in [`services.nextcloud.config.dbhost`](#opt-services.nextcloud.config.dbhost).
- `services.kavita` now uses the free-form option `services.kavita.settings` for the application settings file.
The options `services.kavita.ipAddresses` and `services.kavita.port` now exist at `services.kavita.settings.IpAddresses`
The options `services.kavita.ipAdresses` and `services.kavita.port` now exist at `services.kavita.settings.IpAddresses`
and `services.kavita.settings.IpAddresses`. The file at `services.kavita.tokenKeyFile` now needs to contain a secret with
512+ bits instead of 128+ bits.
@@ -135,7 +135,7 @@
- [QGroundControl], a ground station support and configuration manager for the PX4 and APM Flight Stacks. Available as [programs.qgroundcontrol](options.html#opt-programs.qgroundcontrol.enable).
- [Eintopf](https://eintopf.info), a community event and calendar web application. Available as [services.eintopf](options.html#opt-services.eintopf.enable).
- [Eintopf](https://eintopf.info), a community event and calendar web application. Available as `services.eintopf`.
- [`pay-respects`](https://codeberg.org/iff/pay-respects), a terminal command correction program, alternative to `thefuck`, written in Rust. Available as [programs.pay-respects](options.html#opt-programs.pay-respects).
@@ -66,6 +66,8 @@
- [Shoko](https://shokoanime.com), an anime management system. Available as [services.shoko](#opt-services.shoko.enable).
- [perses](https://perses.dev/), the open dashboard tool for Prometheus and other data sources. Available as [services.perses](#opt-services.perses.enable).
- [Drasl](https://github.com/unmojang/drasl), an alternative authentication server for Minecraft. Available as [services.drasl](#opt-services.drasl.enable).
## Backward Incompatibilities {#sec-release-26.05-incompatibilities}
@@ -78,12 +80,16 @@
- `sing-box` has been updated to 1.13.0, which has removed some deprecated options. See [upstream documentation](https://sing-box.sagernet.org/configuration/) for details and migration options.
- `services.statsd` has been removed because the packages it relies on do not exist anymore in nixpkgs.
- `services.tandoor-recipes` now uses a sub-directory for media files by default starting with `26.05`. Existing setups should move media files out of the data directory and adjust `services.tandoor-recipes.extraConfig.MEDIA_ROOT` accordingly. See [Migrating media files for pre 26.05 installations](#module-services-tandoor-recipes-migrating-media).
- `rustic` was upgraded to `0.11.x`, which contains breaking [changes to command-line parameters and configuration file](https://rustic.cli.rs/docs/breaking_changes.html#0110).
- The packages `iw` and `wirelesstools` (`iwconfig`, `iwlist`, etc.) are no longer installed implicitly if wireless networking has been enabled.
- `services.uptime` has been removed because the package it relies on does not exist anymore in nixpkgs.
- `services.kubernetes.addons.dns.coredns` has been renamed to `services.kubernetes.addons.dns.corednsImage` and now expects a
package instead of attrs. Now, by default, nixpkgs.coredns in conjunction with dockerTools.buildImage is used, instead
of pulling the upstream container image from Docker Hub. If you want the old behavior, you can set:
@@ -104,6 +110,8 @@ of pulling the upstream container image from Docker Hub. If you want the old beh
- `systemd.services.stalwart` owned by `stalwart:stalwart`. The `user` and `group` are configurable via `services.stalwart.user` and `services.stalwart.group`, respectively. By default, if `stateVersion` is older than `26.05`, will fallback to legacy value of `stalwart-mail` for both `user` and `group`.
- Default value for `services.stalwart.dataDir` has changed to `/var/lib/stalwart`. If `stateVersion` is older than `26.05`, will fallback to legacy value of `/var/lib/stalwart-mail`.
- `services.eintopf` has been renamed to `services.lauti` to align with upstream re-brand as a community online calendar.
- `services.oauth2-proxy.clientSecret` and `services.oauth2-proxy.cookie.secret` have been replaced with `services.oauth2-proxy.clientSecretFile` and `services.oauth2-proxy.cookie.secretFile` respectively. This was done to ensure secrets don't get made world-readable.
- [`services.grafana.settings.security.secret_key`](#opt-services.grafana.settings.security.secret_key) doesn't have a
@@ -141,6 +149,8 @@ See <https://github.com/NixOS/nixpkgs/issues/481673>.
- support for `ecryptfs` in nixpkgs has been removed.
- `programs.light` was removed from nixpkgs due to the corresponding package being unmaintained upstream. `brightnessctl` and `programs.acpilight` offer replacements.
- The `networking.wireless` module has been security hardened by default: the `wpa_supplicant` daemon now runs under an unprivileged user with restricted access to the system.
As part of these changes, `/etc/wpa_supplicant.conf` has been deprecated: the NixOS-generated configuration file is now linked to `/etc/wpa_supplicant/nixos.conf` and `/etc/wpa_supplicant/imperative.conf` has been added for imperatively configuring `wpa_supplicant` or when using [allowAuxiliaryImperativeNetworks](#opt-networking.wireless.allowAuxiliaryImperativeNetworks).
@@ -203,6 +213,8 @@ See <https://github.com/NixOS/nixpkgs/issues/481673>.
- [services.resolved](#opt-services.resolved.enable) module was converted to RFC42-style settings. The moved options have also been renamed to match the upstream names. Aliases mean current configs will continue to function, but users should move to the new options as convenient.
- `systemd.sleep.extraConfig` was replaced by [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md)-compliant `systemd.sleep.settings.Sleep`, which is used to generate the `sleep.conf` configuration file. See {manpage}`sleep.conf.d(5)` for available options.
- Support for Bluetooth audio based on `bluez-alsa` has been added to the `hardware.alsa` module. It can be enabled with the new [enableBluetooth](#opt-hardware.alsa.enableBluetooth) option.
- `services.openssh` now supports generating host SSH keys by setting `services.openssh.generateHostKeys = true` while leaving `services.openssh.enable` disabled. This is particularly useful for systems that have no need of an SSH daemon but want SSH host keys for other purposes such as using agenix or sops-nix.
+12 -7
View File
@@ -1115,14 +1115,19 @@ in
-> !cfg.allowNoPasswordLogin
-> any id (
mapAttrsToList (
name: cfg:
(name == "root" || cfg.group == "wheel" || elem "wheel" cfg.extraGroups)
name: user:
(
name == "root"
|| user.group == "wheel"
|| elem "wheel" user.extraGroups
|| elem name (cfg.groups.wheel.members or [ ])
)
&& (
allowsLogin cfg.hashedPassword
|| cfg.password != null
|| cfg.hashedPasswordFile != null
|| cfg.openssh.authorizedKeys.keys != [ ]
|| cfg.openssh.authorizedKeys.keyFiles != [ ]
allowsLogin user.hashedPassword
|| user.password != null
|| user.hashedPasswordFile != null
|| user.openssh.authorizedKeys.keys != [ ]
|| user.openssh.authorizedKeys.keyFiles != [ ]
)
) cfg.users
++ [
+2 -4
View File
@@ -256,7 +256,6 @@
./programs/lazygit.nix
./programs/less.nix
./programs/liboping.nix
./programs/light.nix
./programs/lix.nix
./programs/localsend.nix
./programs/mdevctl.nix
@@ -1038,6 +1037,7 @@
./services/monitoring/opentelemetry-collector.nix
./services/monitoring/osquery.nix
./services/monitoring/parsedmarc.nix
./services/monitoring/perses.nix
./services/monitoring/pgscv.nix
./services/monitoring/prometheus/alertmanager-gotify-bridge.nix
./services/monitoring/prometheus/alertmanager-irc-relay.nix
@@ -1057,7 +1057,6 @@
./services/monitoring/scrutiny.nix
./services/monitoring/smartd.nix
./services/monitoring/snmpd.nix
./services/monitoring/statsd.nix
./services/monitoring/sysstat.nix
./services/monitoring/teamviewer.nix
./services/monitoring/telegraf.nix
@@ -1069,7 +1068,6 @@
./services/monitoring/unpoller.nix
./services/monitoring/ups.nix
./services/monitoring/uptime-kuma.nix
./services/monitoring/uptime.nix
./services/monitoring/vlagent.nix
./services/monitoring/vmagent.nix
./services/monitoring/vmalert.nix
@@ -1625,7 +1623,6 @@
./services/web-apps/drasl.nix
./services/web-apps/drupal.nix
./services/web-apps/echoip.nix
./services/web-apps/eintopf.nix
./services/web-apps/engelsystem.nix
./services/web-apps/ente.nix
./services/web-apps/fediwall.nix
@@ -1680,6 +1677,7 @@
./services/web-apps/lanraragi.nix
./services/web-apps/lasuite-docs.nix
./services/web-apps/lasuite-meet.nix
./services/web-apps/lauti.nix
./services/web-apps/lemmy.nix
./services/web-apps/librechat.nix
./services/web-apps/librespeed.nix
-92
View File
@@ -1,92 +0,0 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.programs.light;
in
{
options = {
programs.light = {
enable = lib.mkOption {
default = false;
type = lib.types.bool;
description = ''
Whether to install Light backlight control command
and udev rules granting access to members of the "video" group.
'';
};
brightnessKeys = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Whether to enable brightness control with keyboard keys.
This is mainly useful for minimalistic (desktop) environments. You
may want to leave this disabled if you run a feature-rich desktop
environment such as KDE, GNOME or Xfce as those handle the
brightness keys themselves. However, enabling brightness control
with this setting makes the control independent of X, so the keys
work in non-graphical ttys, so you might want to consider using this
instead of the default offered by the desktop environment.
Enabling this will turn on {option}`services.actkbd`.
'';
};
step = lib.mkOption {
type = lib.types.int;
default = 10;
description = ''
The percentage value by which to increase/decrease brightness.
'';
};
minBrightness = lib.mkOption {
type = lib.types.numbers.between 0 100;
default = 0.1;
description = ''
The minimum authorized brightness value, e.g. to avoid the
display going dark.
'';
};
};
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ pkgs.light ];
services.udev.packages = [ pkgs.light ];
services.actkbd = lib.mkIf cfg.brightnessKeys.enable {
enable = true;
bindings =
let
light = "${pkgs.light}/bin/light";
step = toString cfg.brightnessKeys.step;
minBrightness = toString cfg.brightnessKeys.minBrightness;
in
[
{
keys = [ 224 ];
events = [ "key" ];
# -N is used to ensure that value >= minBrightness
command = "${light} -N ${minBrightness} && ${light} -U ${step}";
}
{
keys = [ 225 ];
events = [ "key" ];
command = "${light} -A ${step}";
}
];
};
};
}
+1 -3
View File
@@ -16,9 +16,7 @@ in
programs.npm = {
enable = lib.mkEnableOption "{command}`npm` global config";
package = lib.mkPackageOption pkgs [ "nodePackages" "npm" ] {
example = "nodePackages_13_x.npm";
};
package = lib.mkPackageOption pkgs "nodejs" { };
npmrc = lib.mkOption {
type = lib.types.lines;
+10
View File
@@ -235,6 +235,9 @@ in
"Atlassian software has been removed, as support for the Atlassian Server products ended in February 2024 and there was insufficient interest in maintaining the Atlassian Data Center replacements"
)
(mkRemovedOptionModule [ "services" "kippo" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "programs" "light" ]
"The corresponding package was removed from nixpkgs due to being unmaintained upstream. `brightnessctl` and `hardware.acpilight` offer replacements."
)
(mkRemovedOptionModule [ "services" "lshd" ]
"The corresponding package was removed from nixpkgs as it had no maintainer in Nixpkgs and hasn't seen an upstream release in over a decades."
)
@@ -316,6 +319,9 @@ in
the program being unmaintained. The options `programs.msmtp.*` can be
used instead.
'')
(mkRemovedOptionModule [ "services" "statsd" ] ''
The statsd module was removed because the packages it uses have been removed from nixpkgs.
'')
(mkRemovedOptionModule [ "services" "sourcehut" ] ''
The sourcehut packages and the corresponding module have been removed due to being broken and unmaintained.
'')
@@ -325,6 +331,10 @@ in
(mkRemovedOptionModule [ "services" "unifi-video" ]
"The unifi-video package and the corresponding module have been removed as the software has been unsupported since 2021 and requires a MongoDB version that has reached end of life."
)
(mkRemovedOptionModule [
"services"
"uptime"
] "The package for services.uptime has been removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [
"services"
@@ -0,0 +1,131 @@
{
pkgs,
lib,
config,
utils,
...
}:
let
inherit (lib)
getExe
mkOption
mkEnableOption
mkPackageOption
mkIf
types
;
cfg = config.services.perses;
settingsFormat = pkgs.formats.yaml { };
configPath = "/run/perses/config.yaml";
secretsReplacement = utils.genJqSecretsReplacement {
loadCredential = true;
} cfg.settings configPath;
in
{
options.services.perses = {
enable = mkEnableOption "perses";
package = mkPackageOption pkgs "perses" { };
port = mkOption {
type = types.port;
default = 8080;
description = ''
Perses Web interface port.
'';
};
listenAddress = mkOption {
type = types.str;
default = "";
description = ''
Address to listen on. Empty string will listen on all interfaces.
'';
};
settings = mkOption {
type = types.submodule {
freeformType = settingsFormat.type;
};
description = ''
Perses settings. See <https://perses.dev/perses/docs/configuration/configuration/> for available options.
You can specify secret values in this configuration by setting `somevalue._secret = "/path/to/file"` instead of setting `somevalue` directly.
'';
default = { };
};
extraOptions = mkOption {
type = types.listOf types.str;
default = [ ];
example = [
"-web.telemetry-path=/metrics"
];
description = "Additional options passed to perses daemon.";
};
};
config = mkIf cfg.enable {
systemd.services.perses = {
description = "Perses Daemon";
wantedBy = [ "multi-user.target" ];
after = [ "networking.target" ];
preStart = secretsReplacement.script;
serviceConfig = rec {
ExecStart = utils.escapeSystemdExecArgs (
[
(getExe cfg.package)
"-config=${configPath}"
"-web.listen-address=${cfg.listenAddress}:${toString cfg.port}"
]
++ cfg.extraOptions
);
User = "perses";
DynamicUser = true;
Restart = "on-failure";
RuntimeDirectory = "perses";
RuntimeDirectoryMode = "0755";
StateDirectory = "perses";
WorkingDirectory = "%S/${StateDirectory}";
LoadCredential = secretsReplacement.credentials;
# Hardening
AmbientCapabilities = mkIf (cfg.port < 1024) [ "CAP_NET_BIND_SERVICE" ];
CapabilityBoundingSet = if (cfg.port < 1024) then [ "CAP_NET_BIND_SERVICE" ] else [ "" ];
LockPersonality = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateTmp = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectSystem = "full";
RemoveIPC = true;
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
];
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
UMask = "0027";
};
};
environment.systemPackages = [ cfg.package ];
};
}
@@ -1,154 +0,0 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.statsd;
isBuiltinBackend =
name:
builtins.elem name [
"graphite"
"console"
"repeater"
];
backendsToPackages =
let
mkMap = list: name: if isBuiltinBackend name then list else list ++ [ pkgs.nodePackages.${name} ];
in
lib.foldl mkMap [ ];
configFile = pkgs.writeText "statsd.conf" ''
{
address: "${cfg.listenAddress}",
port: "${toString cfg.port}",
mgmt_address: "${cfg.mgmt_address}",
mgmt_port: "${toString cfg.mgmt_port}",
backends: [${
lib.concatMapStringsSep "," (
name: if (isBuiltinBackend name) then ''"./backends/${name}"'' else ''"${name}"''
) cfg.backends
}],
${lib.optionalString (cfg.graphiteHost != null) ''graphiteHost: "${cfg.graphiteHost}",''}
${lib.optionalString (cfg.graphitePort != null) ''graphitePort: "${toString cfg.graphitePort}",''}
console: {
prettyprint: false
},
log: {
backend: "stdout"
},
automaticConfigReload: false${lib.optionalString (cfg.extraConfig != null) ","}
${cfg.extraConfig}
}
'';
deps = pkgs.buildEnv {
name = "statsd-runtime-deps";
pathsToLink = [ "/lib" ];
ignoreCollisions = true;
paths = backendsToPackages cfg.backends;
};
in
{
###### interface
options.services.statsd = {
enable = lib.mkEnableOption "statsd";
listenAddress = lib.mkOption {
description = "Address that statsd listens on over UDP";
default = "127.0.0.1";
type = lib.types.str;
};
port = lib.mkOption {
description = "Port that stats listens for messages on over UDP";
default = 8125;
type = lib.types.port;
};
mgmt_address = lib.mkOption {
description = "Address to run management TCP interface on";
default = "127.0.0.1";
type = lib.types.str;
};
mgmt_port = lib.mkOption {
description = "Port to run the management TCP interface on";
default = 8126;
type = lib.types.port;
};
backends = lib.mkOption {
description = "List of backends statsd will use for data persistence";
default = [ ];
example = [
"graphite"
"console"
"repeater"
"statsd-librato-backend"
"statsd-influxdb-backend"
];
type = lib.types.listOf lib.types.str;
};
graphiteHost = lib.mkOption {
description = "Hostname or IP of Graphite server";
default = null;
type = lib.types.nullOr lib.types.str;
};
graphitePort = lib.mkOption {
description = "Port of Graphite server (i.e. carbon-cache).";
default = null;
type = lib.types.nullOr lib.types.port;
};
extraConfig = lib.mkOption {
description = "Extra configuration options for statsd";
default = "";
type = lib.types.nullOr lib.types.str;
};
};
###### implementation
config = lib.mkIf cfg.enable {
assertions = map (backend: {
assertion = !isBuiltinBackend backend -> lib.hasAttrByPath [ backend ] pkgs.nodePackages;
message = "Only builtin backends (graphite, console, repeater) or backends enumerated in `pkgs.nodePackages` are allowed!";
}) cfg.backends;
users.users.statsd = {
uid = config.ids.uids.statsd;
description = "Statsd daemon user";
};
systemd.services.statsd = {
description = "Statsd Server";
wantedBy = [ "multi-user.target" ];
environment = {
NODE_PATH = "${deps}/lib/node_modules";
};
serviceConfig = {
ExecStart = "${pkgs.statsd}/bin/statsd ${configFile}";
User = "statsd";
};
};
environment.systemPackages = [ pkgs.statsd ];
};
}
@@ -1,122 +0,0 @@
{
config,
options,
pkgs,
lib,
...
}:
let
inherit (lib)
literalExpression
mkOption
mkEnableOption
mkIf
mkMerge
types
optional
;
cfg = config.services.uptime;
opt = options.services.uptime;
configDir = pkgs.runCommand "config" { preferLocalBuild = true; } (
if cfg.configFile != null then
''
mkdir $out
ext=`echo ${cfg.configFile} | grep -o \\..*`
ln -sv ${cfg.configFile} $out/default$ext
ln -sv /var/lib/uptime/runtime.json $out/runtime.json
''
else
''
mkdir $out
cat ${pkgs.nodePackages.node-uptime}/lib/node_modules/node-uptime/config/default.yaml > $out/default.yaml
cat >> $out/default.yaml <<EOF
autoStartMonitor: false
mongodb:
connectionString: 'mongodb://localhost/uptime'
EOF
ln -sv /var/lib/uptime/runtime.json $out/runtime.json
''
);
in
{
options.services.uptime = {
configFile = mkOption {
description = ''
The uptime configuration file
If mongodb: server != localhost, please set usesRemoteMongo = true
If you only want to run the monitor, please set enableWebService = false
and enableSeparateMonitoringService = true
If autoStartMonitor: false (recommended) and you want to run both
services, please set enableSeparateMonitoringService = true
'';
type = types.nullOr types.path;
default = null;
};
usesRemoteMongo = mkOption {
description = "Whether the configuration file specifies a remote mongo instance";
default = false;
type = types.bool;
};
enableWebService = mkEnableOption "the uptime monitoring program web service";
enableSeparateMonitoringService = mkEnableOption "the uptime monitoring service" // {
default = cfg.enableWebService;
defaultText = literalExpression "config.${opt.enableWebService}";
};
nodeEnv = mkOption {
description = "The node environment to run in (development, production, etc.)";
type = types.str;
default = "production";
};
};
config = mkMerge [
(mkIf cfg.enableWebService {
systemd.services.uptime = {
description = "uptime web service";
wantedBy = [ "multi-user.target" ];
environment = {
NODE_CONFIG_DIR = configDir;
NODE_ENV = cfg.nodeEnv;
NODE_PATH = "${pkgs.nodePackages.node-uptime}/lib/node_modules/node-uptime/node_modules";
};
preStart = "mkdir -p /var/lib/uptime";
serviceConfig.ExecStart = "${pkgs.lib.getExe pkgs.nodejs-slim} ${pkgs.nodePackages.node-uptime}/lib/node_modules/node-uptime/app.js";
};
services.mongodb.enable = mkIf (!cfg.usesRemoteMongo) true;
})
(mkIf cfg.enableSeparateMonitoringService {
systemd.services.uptime-monitor = {
description = "uptime monitoring service";
wantedBy = [ "multi-user.target" ];
requires = optional cfg.enableWebService "uptime.service";
after = optional cfg.enableWebService "uptime.service";
environment = {
NODE_CONFIG_DIR = configDir;
NODE_ENV = cfg.nodeEnv;
NODE_PATH = "${pkgs.nodePackages.node-uptime}/lib/node_modules/node-uptime/node_modules";
};
# Ugh, need to wait for web service to be up
preStart = if cfg.enableWebService then "sleep 1s" else "mkdir -p /var/lib/uptime";
serviceConfig.ExecStart = "${pkgs.lib.getExe pkgs.nodejs-slim} ${pkgs.nodePackages.node-uptime}/lib/node_modules/node-uptime/monitor.js";
};
})
];
}
+1 -1
View File
@@ -61,7 +61,7 @@ in
'';
serviceConfig = {
ExecStart = "${pkgs.nodePackages.peerflix-server}/bin/peerflix-server";
ExecStart = "${pkgs.peerflix-server}/bin/peerflix-server";
User = "peerflix";
};
};
@@ -187,6 +187,9 @@ in
NoNewPrivileges = true;
ProtectSystem = "strict";
ReadWritePaths =
lib.optional (lib.hasPrefix "/" cfg.dataDir) cfg.dataDir
++ lib.optional (cfg.options.calibreLibrary != null) cfg.options.calibreLibrary;
PrivateTmp = true;
PrivateDevices = true;
PrivateIPC = true;
+2 -2
View File
@@ -15,12 +15,12 @@ in
{
imports = [
(lib.mkChangedOptionModule
[ "services" "kavita" "ipAddresses" ]
[ "services" "kavita" "ipAdresses" ]
[ "services" "kavita" "settings" "IpAddresses" ]
(
config:
let
value = lib.getAttrFromPath [ "services" "kavita" "ipAddresses" ] config;
value = lib.getAttrFromPath [ "services" "kavita" "ipAdresses" ] config;
in
lib.concatStringsSep "," value
)
@@ -9,13 +9,30 @@ with lib;
let
cfg = config.services.eintopf;
cfg = config.services.lauti;
useLegacyDefault = lib.versionOlder config.system.stateVersion "26.05";
default = if useLegacyDefault then "eintopf" else "lauti";
in
{
options.services.eintopf = {
enable = mkEnableOption "Lauti (Eintopf) community event calendar web app";
imports = [
# since 0.12.0 (2025-05-26) release, upstream re-branded project to 'stalwart' due to inclusion of collaboration features (CalDAV, CardDAV, and WebDAV)
# https://github.com/stalwartlabs/stalwart/releases/tag/v0.12.0
(lib.mkRenamedOptionModule [ "services" "eintopf" ] [ "services" "lauti" ])
];
options.services.lauti = {
enable = mkEnableOption "Lauti community event calendar web app";
dataDir = lib.mkOption {
type = lib.types.path;
default = if useLegacyDefault then "/var/lib/eintopf" else "/var/lib/lauti";
description = ''
Data directory for Lauti
'';
};
settings = mkOption {
type = types.attrsOf types.str;
@@ -27,9 +44,9 @@ in
'';
example = literalExpression ''
{
EINTOPF_ADDR = ":1234";
EINTOPF_ADMIN_EMAIL = "admin@example.org";
EINTOPF_TIMEZONE = "Europe/Berlin";
LAUTI_ADDR = ":1234";
LAUTI_ADMIN_EMAIL = "admin@example.org";
LAUTI_TIMEZONE = "Europe/Berlin";
}
'';
};
@@ -47,7 +64,7 @@ in
config = mkIf cfg.enable {
systemd.services.eintopf = {
systemd.services.lauti = {
description = "Community event calendar web app";
wantedBy = [ "multi-user.target" ];
after = [ "network-online.target" ];
@@ -55,8 +72,8 @@ in
environment = cfg.settings;
serviceConfig = {
ExecStart = lib.getExe pkgs.lauti;
WorkingDirectory = "/var/lib/eintopf";
StateDirectory = "eintopf";
WorkingDirectory = cfg.dataDir;
StateDirectory = default;
EnvironmentFile = [ cfg.secrets ];
# hardening
+2 -2
View File
@@ -128,7 +128,7 @@ in
To support uploading of images for avatars and document attachments an
s3-compatible storage can be provided. AWS S3 is recommended for
redundancy however if you want to keep all file storage local an
alternative such as [minio](https://github.com/minio/minio)
alternative such as [garage](https://garagehq.deuxfleurs.fr/)
can be used.
Local filesystem storage can also be used.
@@ -139,7 +139,7 @@ in
{
accessKey = "...";
secretKeyFile = "/somewhere";
uploadBucketUrl = "https://minio.example.com";
uploadBucketUrl = "https://garage.example.com";
uploadBucketName = "outline";
region = "us-east-1";
}
+37 -3
View File
@@ -1,7 +1,6 @@
{
config,
lib,
pkgs,
utils,
...
}:
@@ -14,12 +13,15 @@ let
elem
isList
literalExpression
mapAttrs'
mapAttrsToList
mkIf
mkMerge
mkOption
mkOrder
mkRenamedOptionModule
mkRemovedOptionModule
nameValuePair
optionalAttrs
types
;
@@ -132,6 +134,27 @@ in
};
};
dnsDelegates = mkOption {
description = ''
dns-delegate files to be created.
See {manpage}`systemd.dns-delegate(5)` for more info.
'';
default = { };
type = types.attrsOf (
types.submodule {
options.Delegate = mkOption {
description = ''
Settings option for systemd dns-delegate files.
See {manpage}`systemd.dns-delegate(5)` for all available options.
'';
type = types.submodule {
freeformType = types.attrsOf unitOption;
};
};
}
);
};
};
boot.initrd.services.resolved.enable = mkOption {
@@ -167,7 +190,12 @@ in
systemd.services.systemd-resolved = {
wantedBy = [ "sysinit.target" ];
aliases = [ "dbus-org.freedesktop.resolve1.service" ];
reloadTriggers = [ config.environment.etc."systemd/resolved.conf".source ];
reloadTriggers = [
config.environment.etc."systemd/resolved.conf".source
]
++ mapAttrsToList (
name: _: config.environment.etc."systemd/dns-delegate.d/${name}.dns-delegate".source
) cfg.dnsDelegates;
stopIfChanged = false;
};
@@ -180,7 +208,13 @@ in
}
// optionalAttrs dnsmasqResolve {
"dnsmasq-resolv.conf".source = "/run/systemd/resolve/resolv.conf";
};
}
// mapAttrs' (
name: value:
nameValuePair "systemd/dns-delegate.d/${name}.dns-delegate" {
text = settingsToSections (transformSettings value);
}
) cfg.dnsDelegates;
# If networkmanager is enabled, ask it to interface with resolved.
networking.networkmanager.dns = "systemd-resolved";
+16 -10
View File
@@ -470,13 +470,17 @@ in
'';
};
sleep.extraConfig = mkOption {
default = "";
type = types.lines;
example = "HibernateDelaySec=1h";
sleep.settings.Sleep = mkOption {
default = { };
type = lib.types.submodule {
freeformType = types.attrsOf unitOption;
};
example = {
HibernateDelaySec = "1h";
};
description = ''
Extra config options for systemd sleep state logic.
See {manpage}`sleep.conf.d(5)` man page for available options.
Options for systemd sleep state logic. See {manpage}`sleep.conf.d(5)` man page
for available options.
'';
};
@@ -637,10 +641,7 @@ in
"systemd/system.conf".text = settingsToSections cfg.settings;
"systemd/sleep.conf".text = ''
[Sleep]
${cfg.sleep.extraConfig}
'';
"systemd/sleep.conf".text = settingsToSections cfg.sleep.settings;
"systemd/user-generators" = {
source = hooks "user-generators" cfg.user.generators;
@@ -878,6 +879,11 @@ in
NixOS does not officially support this configuration and might cause your system to be unbootable in future versions. You are on your own.
'')
(mkRemovedOptionModule [ "systemd" "extraConfig" ] "Use systemd.settings.Manager instead.")
(mkRemovedOptionModule [
"systemd"
"sleep"
"extraConfig"
] "Use systemd.sleep.settings.Sleep instead.")
(lib.mkRenamedOptionModule
[ "systemd" "watchdog" "device" ]
[ "systemd" "settings" "Manager" "WatchdogDevice" ]
+1
View File
@@ -1249,6 +1249,7 @@ in
peerflix = runTest ./peerflix.nix;
peering-manager = runTest ./web-apps/peering-manager.nix;
peertube = handleTestOn [ "x86_64-linux" ] ./web-apps/peertube.nix { };
perses = runTest ./perses.nix;
pgadmin4 = runTest ./pgadmin4.nix;
pgbackrest = import ./pgbackrest { inherit runTest; };
pgbouncer = runTest ./pgbouncer.nix;
+7 -7
View File
@@ -5,20 +5,20 @@
}:
{
name = "eintopf";
name = "lauti";
meta.maintainers = with lib.maintainers; [ onny ];
nodes = {
eintopf = {
services.eintopf.enable = true;
lauti = {
services.lauti.enable = true;
};
};
testScript = ''
eintopf.start
eintopf.wait_for_unit("eintopf.service")
eintopf.wait_for_open_port(3333)
eintopf.succeed("curl -sSfL http://eintopf:3333 | grep 'No events available'")
lauti.start
lauti.wait_for_unit("lauti.service")
lauti.wait_for_open_port(3333)
lauti.succeed("curl -sSfL http://lauti:3333 | grep 'No events available'")
'';
}
+65
View File
@@ -0,0 +1,65 @@
{ pkgs, lib, ... }:
{
name = "perses";
meta.maintainers = with lib.maintainers; [ fooker ];
nodes.prometheus = {
services.prometheus.enable = true;
networking.firewall.allowedTCPPorts = [ 9090 ];
};
nodes.machine = {
services.perses = {
enable = true;
settings.provisioning.folders = [
(pkgs.writeTextDir "perses-test-provision-project.yaml" ''
kind: "Project"
metadata:
name: "my-project"
'')
(pkgs.writeTextDir "perses-test-provision-datasource.yaml" ''
kind: "Datasource"
metadata:
name: "my-prometheus"
project: "my-project"
spec:
default: true
plugin:
kind: "PrometheusDatasource"
spec:
proxy:
kind: "HTTPProxy"
spec:
url: "http://prometheus:9090/"
'')
];
};
};
testScript = ''
start_all()
prometheus.wait_for_unit("prometheus.service")
prometheus.wait_for_open_port(9090)
with subtest("Perses starts"):
machine.wait_for_unit("perses.service")
machine.wait_for_open_port(8080)
machine.succeed("percli login http://127.0.0.1:8080")
machine.succeed("percli version")
machine.succeed("percli config")
machine.succeed("percli plugin list | grep 'Prometheus'")
with subtest("Query resources"):
machine.succeed("percli get projects | grep my-project")
machine.succeed("percli project my-project")
machine.succeed("percli get datasources | grep my-prometheus")
machine.succeed("curl --fail -s 127.0.0.1:8080/api/v1/projects/my-project/datasources/my-prometheus")
with subtest("Datasource check"):
machine.succeed("curl --fail -s http://127.0.0.1:8080/proxy/projects/my-project/datasources/my-prometheus/api/v1/status/config")
'';
}
+65 -12
View File
@@ -36,13 +36,48 @@
};
};
nodes.delegate_server =
{ lib, config, ... }:
let
delegateZone = pkgs.writeTextDir "delegated.example.org.zone" ''
@ SOA ns.delegated.example.org. noc.delegated.example.org. 2019031301 86400 7200 3600000 172800
test A ${(lib.head config.networking.interfaces.eth1.ipv4.addresses).address}
test AAAA ${(lib.head config.networking.interfaces.eth1.ipv6.addresses).address}
'';
in
{
networking.firewall.enable = false;
networking.useDHCP = false;
networking.interfaces.eth1.ipv6.addresses = lib.mkForce [
{
address = "fd00::3";
prefixLength = 64;
}
];
services.knot = {
enable = true;
settings = {
server.listen = [
"0.0.0.0@53"
"::@53"
];
template.default.storage = delegateZone;
zone."delegated.example.org".file = "delegated.example.org.zone";
};
};
};
nodes.client =
{ nodes, ... }:
let
inherit (lib.head nodes.server.networking.interfaces.eth1.ipv4.addresses) address;
serverAddress = (lib.head nodes.server.networking.interfaces.eth1.ipv4.addresses).address;
delegateAddress =
(lib.head nodes.delegate_server.networking.interfaces.eth1.ipv4.addresses).address;
in
{
networking.nameservers = [ address ];
networking.nameservers = [ serverAddress ];
networking.interfaces.eth1.ipv6.addresses = lib.mkForce [
{
address = "fd00::2";
@@ -51,6 +86,12 @@
];
services.resolved.enable = true;
services.resolved.settings.Resolve.FallbackDNS = [ ];
services.resolved.dnsDelegates.example-org = {
Delegate = {
DNS = delegateAddress;
Domains = [ "delegated.example.org" ];
};
};
networking.useNetworkd = true;
networking.useDHCP = false;
systemd.network.networks."40-eth0".enable = false;
@@ -69,23 +110,35 @@
let
address4 = (lib.head nodes.server.networking.interfaces.eth1.ipv4.addresses).address;
address6 = (lib.head nodes.server.networking.interfaces.eth1.ipv6.addresses).address;
delegateAddress4 =
(lib.head nodes.delegate_server.networking.interfaces.eth1.ipv4.addresses).address;
delegateAddress6 =
(lib.head nodes.delegate_server.networking.interfaces.eth1.ipv6.addresses).address;
in
#python
''
start_all()
server.wait_for_unit("multi-user.target")
delegate_server.wait_for_unit("multi-user.target")
def test_client():
query = client.succeed("resolvectl query example.com")
assert "${address4}" in query
assert "${address6}" in query
client.succeed("ping -4 -c 1 example.com")
client.succeed("ping -6 -c 1 example.com")
def test_resolve(domain, expected_addrs):
query = client.succeed(f"resolvectl query {domain}")
for addr in expected_addrs:
assert addr in query, f"Expected {addr} in: {query}"
client.succeed(f"ping -4 -c 1 {domain}")
client.succeed(f"ping -6 -c 1 {domain}")
with subtest("resolve in initrd"):
client.wait_for_unit("initrd.target")
test_resolve("example.com", ["${address4}", "${address6}"])
client.wait_for_unit("initrd.target")
test_client()
client.switch_root()
client.wait_for_unit("multi-user.target")
test_client()
with subtest("resolve after switch-root"):
client.wait_for_unit("multi-user.target")
test_resolve("example.com", ["${address4}", "${address6}"])
with subtest("dns-delegate resolves delegated subdomain"):
test_resolve("test.delegated.example.org", ["${delegateAddress4}", "${delegateAddress6}"])
'';
}
@@ -0,0 +1,254 @@
#!/usr/bin/env nix-shell
#! nix-shell -i python3 -p nix git
import argparse
import contextlib
import dataclasses
import datetime
import logging
import os
import pathlib
import shutil
import subprocess
import sys
import urllib.request
@dataclasses.dataclass
class EmacsOverlay:
git_url : str = f'https://github.com/nix-community/emacs-overlay'
raw_url : str = f'https://raw.githubusercontent.com/nix-community/emacs-overlay'
# The field declaration here is a hack around the error:
# ValueError: mutable default <class 'dict'> for field elisp_packages_set is not allowed: use default_factory
# See more at https://peps.python.org/pep-0557/#mutable-default-values
elisp_packages_set : dict[str, dict] = dataclasses.field(default_factory = lambda: {
'elpa': {
'location': 'repos/elpa',
'basename': 'elpa-generated.nix',
'nix_attrs': ['elpaPackages']
},
'elpa-devel': {
'location': 'repos/elpa',
'basename': 'elpa-devel-generated.nix',
'nix_attrs': ['elpaDevelPackages']
},
'melpa': {
'location': 'repos/melpa',
'basename': 'recipes-archive-melpa.json',
'nix_attrs': ['melpaPackages',
'melpaStablePackages']
},
'nongnu': {
'location': 'repos/nongnu',
'basename': 'nongnu-generated.nix',
'nix_attrs': ['nongnuPackages']
},
'nongnu-devel': {
'location': 'repos/nongnu',
'basename': 'nongnu-devel-generated.nix',
'nix_attrs': ['nongnuDevelPackages']
},
})
def master_sha (self) -> str:
'''Return the SHA of current master tip.'''
cmdline = ['git', 'ls-remote', '--branches', self.git_url, 'refs/heads/master']
result = subprocess.run(cmdline, capture_output = True, text = True)
return result.stdout.split()[0]
@dataclasses.dataclass
class HereDirectory:
path : pathlib.Path = pathlib.Path('.').resolve()
def git_root(self) -> pathlib.Path:
'''Returns the root directory of Git repository.'''
cmdline = ['git', 'rev-parse', '--show-toplevel']
result = subprocess.run(cmdline, capture_output = True, text = True)
return pathlib.Path(result.stdout.rstrip()).resolve()
def main (emacs_overlay : EmacsOverlay,
here_directory : HereDirectory,
argument_parser : argparse.ArgumentParser) -> None:
'''The entry point.'''
args = argument_parser.parse_args()
if args.commit == None:
sha = emacs_overlay.master_sha()
else:
sha = args.commit
match args.loglevel.lower():
case 'debug':
loglevel = logging.DEBUG
case 'info':
loglevel = logging.INFO
case _:
loglevel = logging.INFO
logger = get_logger(loglevel = loglevel)
datestring = datetime.datetime.today().strftime('%Y-%m-%d')
# The loops are decoupled because each phase interferes with the next ones;
# e.g. it is pretty possible that an Elisp package updated in fetch_fileset
# breaks the check because of another Elisp package.
for name in emacs_overlay.elisp_packages_set:
fetch_fileset(name, sha,
emacs_overlay = emacs_overlay,
here_directory = here_directory,
logger = logger)
for name in emacs_overlay.elisp_packages_set:
check_fileset(name,
emacs_overlay = emacs_overlay,
here_directory = here_directory,
logger = logger)
for name in emacs_overlay.elisp_packages_set:
commit_fileset(name, sha, datestring = datestring,
emacs_overlay = emacs_overlay,
here_directory = here_directory,
logger = logger)
def get_argument_parser() -> argparse.ArgumentParser:
'''Return a getopt-style parser for command-line arguments.'''
parser = argparse.ArgumentParser(
description = 'Fetch and commit Elisp package sets from nix-community/emacs-overlay',
)
parser.add_argument(
'--commit',
help = 'Commit to be fetched, in SHA format. If not specified, retrieve the master tip.',
default = None
)
parser.add_argument(
'--loglevel',
help = 'Level of noisiness of logging messages. Values currently supported: INFO (default), DEBUG.',
default = 'InFo'
)
return parser
def get_logger (loglevel: int) -> logging.Logger:
'''Return a basic logging facility to emit messages over console (stdout).'''
logger = logging.getLogger('update-from-overlay')
# Set the lowest level here, so that it does not clobber the one provided by
# the function argument
logger.setLevel(logging.DEBUG)
console_formatter = logging.Formatter(fmt='%(asctime)s - %(levelname)s - %(funcName)s - %(message)s',
datefmt='[%Y-%m-%d %H:%M:%S]')
console_handler = logging.StreamHandler(stream = sys.stdout)
console_handler.setLevel(loglevel)
console_handler.setFormatter(console_formatter)
logger.addHandler(console_handler)
return logger
def fetch_fileset (name: str, sha: str,
emacs_overlay : EmacsOverlay,
here_directory : HereDirectory,
logger : logging.Logger) -> None:
'''Fetch a fileset from emacs overlay.
Arguments:
name -- The name of fileset.
sha -- The commit SHA of emacs-overlay from which the files are retrieved.
'''
logger.debug('BEGIN')
location = emacs_overlay.elisp_packages_set[name]['location']
basename = emacs_overlay.elisp_packages_set[name]['basename']
url = f'{emacs_overlay.raw_url}/{sha}/{location}/{basename}'
destination = pathlib.Path(here_directory.path, basename).resolve()
logger.debug(f'Getting {url}')
with urllib.request.urlopen (url) as input_stream, open(destination, 'wb') as output_file:
logger.info(f'Installing {destination}')
shutil.copyfileobj(input_stream, output_file)
logger.debug('END')
def check_fileset (name: str,
emacs_overlay : EmacsOverlay,
here_directory : HereDirectory,
logger : logging.Logger) -> None:
'''Smoke-test the fileset.
Arguments:
name -- The name of fileset.
'''
logger.debug('BEGIN')
for nix_attr in emacs_overlay.elisp_packages_set[name]['nix_attrs']:
cmdline = ['nix-instantiate', '--show-trace', here_directory.git_root(),
'-A', f'emacsPackages.{nix_attr}']
environment = os.environ
environment['NIXPKGS_ALLOW_BROKEN'] = '1'
logger.info(f'Testing {nix_attr}')
# TODO: capture the output (to put it in the logfile).
result = subprocess.run(cmdline, capture_output = True, text = True)
logger.debug(f'''
Shell Command: {result.args}
Output:
{result.stdout}''')
logger.debug('END')
def commit_fileset (name: str, sha: str, datestring : str | None,
emacs_overlay : EmacsOverlay,
here_directory : HereDirectory,
logger : logging.Logger) -> None:
'''Commit the fileset.
Arguments:
name -- The name of fileset.
sha -- The commit SHA of emacs-overlay from which the files are retrieved.
datestring -- The date to be written on commit message. If None, use the current time.
'''
logger.debug('BEGIN')
nix_attrs = emacs_overlay.elisp_packages_set[name]['nix_attrs']
basename = emacs_overlay.elisp_packages_set[name]['basename']
if datestring == None:
datestring = datetime.datetime.today().strftime('%Y-%m-%d')
logger.debug(f'Date string not provided, using {datestring}')
else:
logger.debug(f'Date string was provided: {datestring}')
cmdline_verify = ['git', 'diff', '--exit-code', '--quiet', '--', basename]
result_verify = subprocess.run(cmdline_verify)
if result_verify.returncode != 0:
attrs = ', '.join(nix_attrs)
commit_message = f'''{attrs}: Updated at {datestring} (from emacs-overlay)
emacs-overlay commit: {sha}
'''
cmdline_commit = ['git', 'commit', '--message', commit_message, '--', basename]
result_commit = subprocess.run(cmdline_commit, capture_output = True, text = True)
logger.info(f'File {basename} committed')
logger.debug(f'''
Shell Command: {result_commit.args}
Output:
{result_commit.stdout}''')
else:
logger.info(f'File {basename} not modified, skipping')
logger.debug('END')
if __name__ == '__main__':
emacs_overlay = EmacsOverlay()
here_directory = HereDirectory()
argument_parser = get_argument_parser()
with contextlib.chdir(here_directory.path):
main(emacs_overlay = emacs_overlay,
here_directory = here_directory,
argument_parser = argument_parser)
@@ -128,11 +128,10 @@ lib.extendMkDerivation {
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,$pname,share/pixmaps,share/icons/hicolor/scalable/apps}
mkdir -p $out/{bin,$pname,share/icons/hicolor/scalable/apps,share/icons/hicolor/128x128/apps}
cp -a . $out/$pname
[[ -f $out/$pname/bin/${loName}.png ]] && ln -s $out/$pname/bin/${loName}.png $out/share/pixmaps/${pname}.png
[[ -f $out/$pname/bin/${loName}.svg ]] && ln -s $out/$pname/bin/${loName}.svg $out/share/pixmaps/${pname}.svg \
&& ln -s $out/$pname/bin/${loName}.svg $out/share/icons/hicolor/scalable/apps/${pname}.svg
[[ -f $out/$pname/bin/${loName}.png ]] && ln -s $out/$pname/bin/${loName}.png $out/share/icons/hicolor/128x128/apps/${pname}.png
[[ -f $out/$pname/bin/${loName}.svg ]] && ln -s $out/$pname/bin/${loName}.svg $out/share/icons/hicolor/scalable/apps/${pname}.svg
cp ${libdbm}/lib/libdbm.so $out/$pname/bin/libdbm.so
cp ${fsnotifier}/bin/fsnotifier $out/$pname/bin/fsnotifier
@@ -14139,6 +14139,19 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
screensaver-nvim = buildVimPlugin {
pname = "screensaver.nvim";
version = "0-unstable-2026-03-02";
src = fetchFromGitHub {
owner = "Root-lee";
repo = "screensaver.nvim";
rev = "38cf0b8a96b5f4a5e765ce32d43a416441462179";
hash = "sha256-4eiGIhy/J7wZm++wMx4zAKp5qeDQCApwPSVm8P5w5O0=";
};
meta.homepage = "https://github.com/Root-lee/screensaver.nvim/";
meta.hydraPlatforms = [ ];
};
scretch-nvim = buildVimPlugin {
pname = "scretch.nvim";
version = "1.2.3-unstable-2025-09-11";
@@ -19247,6 +19260,19 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
vim-hypr-nav = buildVimPlugin {
pname = "vim-hypr-nav";
version = "0-unstable-2023-11-29";
src = fetchFromGitHub {
owner = "nuchs";
repo = "vim-hypr-nav";
rev = "6ab4865a7eb5aad35305298815a4563c9d48556a";
hash = "sha256-V4a9D3HpT1SZUrUc1XrC6SsrtKmIcFxdSVmq0Gwt/Ik=";
};
meta.homepage = "https://github.com/nuchs/vim-hypr-nav/";
meta.hydraPlatforms = [ ];
};
vim-iced-coffee-script = buildVimPlugin {
pname = "vim-iced-coffee-script";
version = "0-unstable-2013-12-26";
@@ -3303,6 +3303,14 @@ assertNoAdditions {
dependencies = [ self.plenary-nvim ];
};
screensaver-nvim = super.screensaver-nvim.overrideAttrs (old: {
meta = old.meta // {
description = "Screensaver plugin for Neovim";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ m3l6h ];
};
});
scretch-nvim = super.scretch-nvim.overrideAttrs {
};
@@ -4124,6 +4132,10 @@ assertNoAdditions {
buildInputs = [ vim ];
};
vim-hypr-nav = super.vim-hypr-nav.overrideAttrs {
runtimeDeps = [ jq ];
};
vim-isort = super.vim-isort.overrideAttrs {
postPatch = ''
substituteInPlace autoload/vimisort.vim \
@@ -1086,6 +1086,7 @@ https://github.com/lewis6991/satellite.nvim/,HEAD,
https://github.com/cenk1cenk2/schema-companion.nvim/,HEAD,
https://github.com/davidgranstrom/scnvim/,HEAD,
https://github.com/tiagovla/scope.nvim/,HEAD,
https://github.com/Root-lee/screensaver.nvim/,HEAD,
https://github.com/0xJohnnyboy/scretch.nvim/,HEAD,
https://github.com/Xuyuanp/scrollbar.nvim/,,
https://github.com/cakebaker/scss-syntax.vim/,,
@@ -1478,6 +1479,7 @@ https://github.com/vim-utils/vim-husk/,,
https://github.com/hylang/vim-hy/,HEAD,
https://github.com/w0ng/vim-hybrid/,,
https://github.com/kristijanhusak/vim-hybrid-material/,,
https://github.com/nuchs/vim-hypr-nav/,HEAD,
https://github.com/noc7c9/vim-iced-coffee-script/,,
https://github.com/RRethy/vim-illuminate/,,
https://github.com/preservim/vim-indent-guides/,,
@@ -4322,8 +4322,8 @@ let
mktplcRef = {
publisher = "sonarsource";
name = "sonarlint-vscode";
version = "4.43.0";
hash = "sha256-cpd8+fbp57l+XYBuDnz95lmKzJ8IUHu937KWHsLXrPk=";
version = "4.44.0";
hash = "sha256-6P29hCcOpEWNXSArnMPiWVwbbyhzlS1LCh3uSDWEfJo=";
};
meta.license = lib.licenses.lgpl3Only;
};
@@ -80,7 +80,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
platforms = builtins.attrNames supported;
maintainers = [
lib.maintainers.jraygauthier
lib.maintainers.jfchevrette
];
};
}
+6 -10
View File
@@ -21,13 +21,13 @@ assert
stdenv.mkDerivation (finalAttrs: {
pname = "box64";
version = "0.3.8";
version = "0.4.0";
src = fetchFromGitHub {
owner = "ptitSeb";
repo = "box64";
tag = "v${finalAttrs.version}";
hash = "sha256-PVzv1790UhWbqLmw/93+mU3Gw8lQek7NBls4LXks4wQ=";
hash = "sha256-ihg7sos2pyyZjXiYMct/gg/ianiu0yagNtXio+A7J3c=";
};
# Setting cpu doesn't seem to work (or maybe isn't enough / gets overwritten by the wrapper's arch flag?), errors about unsupported instructions for target
@@ -82,20 +82,16 @@ stdenv.mkDerivation (finalAttrs: {
$out/bin/box64 -v
echo Checking if Dynarec option was respected
$out/bin/box64 -v | grep ${lib.optionalString (!withDynarec) "-v"} Dynarec
$out/bin/box64 -v 2>&1 | grep ${lib.optionalString (!withDynarec) "-v"} Dynarec
runHook postInstallCheck
'';
passthru = {
updateScript = gitUpdater { rev-prefix = "v"; };
tests.hello =
runCommand "box64-test-hello" { nativeBuildInputs = [ finalAttrs.finalPackage ]; }
# There is no actual "Hello, world!" with any of the logging enabled, and with all logging disabled it's hard to
# tell what problems the emulator has run into.
''
BOX64_NOBANNER=0 BOX64_LOG=1 box64 ${lib.getExe hello-x86_64} --version | tee $out
'';
tests.hello = runCommand "box64-test-hello" { nativeBuildInputs = [ finalAttrs.finalPackage ]; } ''
BOX64_LOG=1 box64 ${lib.getExe hello-x86_64} --version 2>&1 | tee $out
'';
};
meta = {
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "mame2003-plus";
version = "0-unstable-2026-01-16";
version = "0-unstable-2026-02-27";
src = fetchFromGitHub {
owner = "libretro";
repo = "mame2003-plus-libretro";
rev = "b9b7bfaa2d9e40ca5b94af1f6e9ec77332e4f6c3";
hash = "sha256-92lHdfYlITWPO4uVzVf3l+rm3RPyUu7/dO6h9t/+A4Q=";
rev = "3a69de934a184cda6551c64ab4b503b0c2958634";
hash = "sha256-+/semhVh3TgqHYYhzFjOy7cjzQgFxoWxlgz9e34Zvt4=";
};
makefile = "Makefile";
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "puae";
version = "0-unstable-2025-11-02";
version = "0-unstable-2026-02-27";
src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-uae";
rev = "0043cf9c061bd9b81dbc1869c2761017139cfc63";
hash = "sha256-xi/7zT+4LNfSMwfA+rvxdvsgpQRHceK6Heqrcy84RVk=";
rev = "bea8c084beaf576f54dc1be42d715d424265cda2";
hash = "sha256-CU/BVXys7VBra4qaMBjTgKQP1hke7+wqJ2RMYUXIXlo=";
};
makefile = "Makefile";
@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage rec {
pname = "kubectl-view-allocations";
version = "1.0.0";
version = "1.1.0";
src = fetchFromGitHub {
owner = "davidB";
repo = "kubectl-view-allocations";
tag = version;
hash = "sha256-R4pxbIUY9QEsblbVv2/QbWZv7A/ZDQmUnOCYB34RkdE=";
hash = "sha256-AZsieePjIFY3xXG39tfwSvRcNgLdvEQSKALXgRCkuc4=";
};
cargoHash = "sha256-liExE40Ldel1G4RT3P1y5Da65RJSrc7HD+52SwW0oeg=";
cargoHash = "sha256-0bStmuLFkYsyd7rJlHA7/rXGtlh2CvjXWPnDwoq33v4=";
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
@@ -472,13 +472,13 @@
"vendorHash": "sha256-mzDFyk2oImRXt72kFV5Ln++ScgoecpJEJtzUKjvCaws="
},
"grafana_grafana": {
"hash": "sha256-EO18AHTtuchRpHxcXa5shmCpoLR91Ows8doBUTjollI=",
"hash": "sha256-ski6B1mZCILcMM6JBWHx0IelYmx0UdDwPYi13PSgIAo=",
"homepage": "https://registry.terraform.io/providers/grafana/grafana",
"owner": "grafana",
"repo": "terraform-provider-grafana",
"rev": "v4.25.0",
"rev": "v4.26.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-5+nBYEAdiyNYsZsWvghciCYixQB3ojRlpSiSdjNWDHY="
"vendorHash": "sha256-64XspOrtBa97fj9DXUQb6siecDfBQETqKvfwckjzU3c="
},
"gridscale_gridscale": {
"hash": "sha256-FAKvQ/MEod5Ck0PG4ffQ+gQp6zZ0JDRXPOrOiDpWMls=",
@@ -508,13 +508,13 @@
"vendorHash": "sha256-ukDTmgzd4aJ2SJ27qofCtagRTWlP9foF/WwrTkmZEI4="
},
"hashicorp_awscc": {
"hash": "sha256-eJ4GiOkohhbuwsKtvoDlUM933F3Fd3b5HMLG3mjHBvA=",
"hash": "sha256-nyHKE0bpu7vbOE8uDwqaFjeAdXeMf324FjPb6stRiFU=",
"homepage": "https://registry.terraform.io/providers/hashicorp/awscc",
"owner": "hashicorp",
"repo": "terraform-provider-awscc",
"rev": "v1.68.0",
"rev": "v1.73.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-udGQHfLQ/gc73ZhbO7Wko5MUhkeFpIvSGCDgPkYAG38="
"vendorHash": "sha256-NKuuX63rVjUk/+cqR4o/nWIsyNS2uUrAu/9fG3aWBwc="
},
"hashicorp_azuread": {
"hash": "sha256-BkQwLkGu8Xmb4laoXOLDbSPyya5v8HBBNIya5hUBlV8=",
@@ -1031,11 +1031,11 @@
"vendorHash": "sha256-ofzbDmivXgH1i1Gjhpyp0bk3FDs5SnxwoRuNAWyMqyI="
},
"opentelekomcloud_opentelekomcloud": {
"hash": "sha256-ak1shQaEyxYHAwZKg5ELh9y7nvpfwuPk3TGDpcm3GY4=",
"hash": "sha256-EVHAWkNScPJCwHvmW1Lt/9qVwYjxDxtTTa3SC1dLSXw=",
"homepage": "https://registry.terraform.io/providers/opentelekomcloud/opentelekomcloud",
"owner": "opentelekomcloud",
"repo": "terraform-provider-opentelekomcloud",
"rev": "v1.36.59",
"rev": "v1.36.60",
"spdx": "MPL-2.0",
"vendorHash": "sha256-WPVk+wlAK6O2xXjyXekYu9svpEg0AFz9EnDGGTS9I3c="
},
@@ -42,14 +42,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "telegram-desktop-unwrapped";
version = "6.5.1";
version = "6.6.1";
src = fetchFromGitHub {
owner = "telegramdesktop";
repo = "tdesktop";
rev = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-y2sf2wDJ6dYxRdDLKIr78z9tPBIoh2WICg4zJBmb85Q=";
hash = "sha256-qFKOY+SS5aQcZhIP2MChDy8gRK7ynKAXCm3Ifzub41w=";
};
nativeBuildInputs = [
File diff suppressed because it is too large Load Diff
@@ -86,6 +86,7 @@ stdenv.mkDerivation (finalAttrs: {
(cmakeBool "ENABLE_MAC" false) # requires xcodebuild
(cmakeBool "ENABLE_QT" (enableQt5 || enableQt6))
(cmakeBool "INSTALL_LIB" installLib)
(cmakeBool "RUN_CLANG_TIDY" false)
]
++ optionals stdenv.hostPlatform.isDarwin [
# Transmission sets this to 10.13 if not explicitly specified, see https://github.com/transmission/transmission/blob/0be7091eb12f4eb55f6690f313ef70a66795ee72/CMakeLists.txt#L7-L16.
@@ -24,13 +24,13 @@
stdenv.mkDerivation {
pname = "pulseview";
version = "0.4.2-unstable-2025-05-15";
version = "0.5.0-unstable-2025-11-10";
src = fetchFromGitHub {
owner = "sigrokproject";
repo = "pulseview";
rev = "e2fe9dfb91c7de85c410922ee9268c3f526bcc54";
hash = "sha256-b9pqtsF5J9MA7XMIgFZltrVqi64ZPObBTiaws3zSDRg=";
rev = "af02198741b4e57c9f9b796bd5e6c0f2ae9f2f2b";
hash = "sha256-4K3sMCTlFnu8iiokMYc1O7jNVQ7vTtSiT2dCpLRC44s=";
};
nativeBuildInputs = [
+10 -10
View File
@@ -1,28 +1,28 @@
{
"stable": {
"linux": {
"version": "8.12.2",
"version": "8.12.5",
"sources": {
"x86_64": {
"url": "https://downloads.1password.com/linux/tar/stable/x86_64/1password-8.12.2.x64.tar.gz",
"hash": "sha256-vJ+GwQjlDCn6723q1+/xFUFkN9XjI9/0eCftmYQgS1s="
"url": "https://downloads.1password.com/linux/tar/stable/x86_64/1password-8.12.5.x64.tar.gz",
"hash": "sha256-oa94KXgl4R/HElxSs8CLI5mvpT/4AYHfvODkGr3itJU="
},
"aarch64": {
"url": "https://downloads.1password.com/linux/tar/stable/aarch64/1password-8.12.2.arm64.tar.gz",
"hash": "sha256-V639cHbGZD/Fvaqa4c5jpei3jF9kNPST8LeYogS4fr8="
"url": "https://downloads.1password.com/linux/tar/stable/aarch64/1password-8.12.5.arm64.tar.gz",
"hash": "sha256-/y8pU8iXLgKGq2tcIMIiRnO4hiXR6rTPp8jTI43St5g="
}
}
},
"darwin": {
"version": "8.12.2",
"version": "8.12.5",
"sources": {
"x86_64": {
"url": "https://downloads.1password.com/mac/1Password-8.12.2-x86_64.zip",
"hash": "sha256-IYxOVYoeKBsuDo5pS/LcjFNZsdyUL7Jb1QORj2BEB3Y="
"url": "https://downloads.1password.com/mac/1Password-8.12.5-x86_64.zip",
"hash": "sha256-jAaCSPpm3T7uC6y0A5BF821Q050f/P00kWlvYa0Hn5s="
},
"aarch64": {
"url": "https://downloads.1password.com/mac/1Password-8.12.2-aarch64.zip",
"hash": "sha256-Z4h2E8dCNA1O+SZGtguueZ36mHbJ11yxMSYiNTpM25U="
"url": "https://downloads.1password.com/mac/1Password-8.12.5-aarch64.zip",
"hash": "sha256-G4IOVxfaEyzhe74e/IbNt2TSPAgNcF1wri/Pbi4Xr7I="
}
}
}
+9 -22
View File
@@ -10,43 +10,30 @@
stdenv.mkDerivation {
pname = "acgtk";
version = "2.1.0";
version = "2.2.0";
src = fetchFromGitLab {
domain = "gitlab.inria.fr";
owner = "acg";
repo = "dev/acgtk";
tag = "release-2.1.0";
hash = "sha256-XuPcubt1lvnQio+km6MhmDu41NXNVXKKpzGd/Y1XzLo=";
tag = "release-2.2.0";
hash = "sha256-cDP41a3CHh+KW2PAZ3WTRA2HTXKhb8mMCTNddv6M8Bg=";
};
# Compatibility with fmt 0.10.0
patches = [
(fetchpatch {
url = "https://gitlab.inria.fr/ACG/dev/ACGtk/-/commit/613454b376d10974f539ab398a269be061c5bc9c.patch";
hash = "sha256-l/V8oEgntnFtrhpTQSk7PkpaX+dBq4izG/tloCQRbDY=";
})
];
# Compatibility with logs 0.8.0
postPatch = ''
substituteInPlace src/utils/dune \
--replace-warn 'logs mtime' 'logs logs.fmt mtime'
'';
strictDeps = true;
nativeBuildInputs = with ocamlPackages; [
dune
findlib
menhir
ocaml
findlib
dune
];
buildInputs = with ocamlPackages; [
ansiterminal
cairo2
cmdliner
dune-site
fmt
logs
menhirLib
@@ -59,12 +46,12 @@ stdenv.mkDerivation {
buildPhase = ''
runHook preBuild
dune build --profile=release ''${enableParallelBuilding:+-j $NIX_BUILD_CORES}
dune build -p acgtk --profile=release ''${enableParallelBuilding:+-j $NIX_BUILD_CORES}
runHook postBuild
'';
installPhase = ''
dune install --prefix $out --libdir $OCAMLFIND_DESTDIR
dune install -p acgtk --prefix $out --libdir $OCAMLFIND_DESTDIR
'';
meta = {
@@ -72,6 +59,6 @@ stdenv.mkDerivation {
description = "Toolkit for developing ACG signatures and lexicon";
license = lib.licenses.cecill20;
inherit (ocamlPackages.ocaml.meta) platforms;
maintainers = with lib.maintainers; [ jirkamarsik ];
maintainers = with lib.maintainers; [ tournev ];
};
}
+4 -4
View File
@@ -5,7 +5,7 @@
"packages": {
"": {
"dependencies": {
"@sourcegraph/amp": "^0.0.1771812469-gd3302f"
"@sourcegraph/amp": "^0.0.1772531288-g7d96a6"
}
},
"node_modules/@napi-rs/keyring": {
@@ -228,9 +228,9 @@
}
},
"node_modules/@sourcegraph/amp": {
"version": "0.0.1771812469-gd3302f",
"resolved": "https://registry.npmjs.org/@sourcegraph/amp/-/amp-0.0.1771812469-gd3302f.tgz",
"integrity": "sha512-wZp/VNPvzsBPWVfjeO6oZF853VzA+uQNoUHeEToEINB+Nq0YFqx+OD6Eo4pbi0E29NdYzfMdvOJOkDMcp0Spdw==",
"version": "0.0.1772531288-g7d96a6",
"resolved": "https://registry.npmjs.org/@sourcegraph/amp/-/amp-0.0.1772531288-g7d96a6.tgz",
"integrity": "sha512-h3MxHL/L0c8SD7NIdwpE7M1FWxd9OG7u8FjiLITVdtQg39cJmBoU+auOqJO5DfpsVxxUqhuatm0F6ldXzNbb9A==",
"license": "Amp Commercial License",
"dependencies": {
"@napi-rs/keyring": "1.1.9"
+3 -3
View File
@@ -9,11 +9,11 @@
buildNpmPackage (finalAttrs: {
pname = "amp-cli";
version = "0.0.1771812469-gd3302f";
version = "0.0.1772531288-g7d96a6";
src = fetchzip {
url = "https://registry.npmjs.org/@sourcegraph/amp/-/amp-${finalAttrs.version}.tgz";
hash = "sha256-q4qgMNcNGWAqAQBWeD0YnNN1DBrMcjzRo/+NwarJy4U=";
hash = "sha256-BZ4o4AWGiV/1oxFqvGc9wy92Gi8dedeuMRSOHLQHPnA=";
};
postPatch = ''
@@ -45,7 +45,7 @@ buildNpmPackage (finalAttrs: {
chmod +x bin/amp-wrapper.js
'';
npmDepsHash = "sha256-7Z+yToC5wABI8blCLMGkqVgPOSe/D7AZIfgn9vnP6cM=";
npmDepsHash = "sha256-2etugV/fdw/AjznYjEfCSXTv1tkomcNK9UJT7/1T8KY=";
propagatedBuildInputs = [
ripgrep
+3 -3
View File
@@ -12,7 +12,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "arti";
version = "2.0.0";
version = "2.1.0";
src = fetchFromGitLab {
domain = "gitlab.torproject.org";
@@ -20,10 +20,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "core";
repo = "arti";
tag = "arti-v${finalAttrs.version}";
hash = "sha256-eqCQwBP/QLxBwjGvksFwNwNSCng/pf19DiBQ+tA4a7M=";
hash = "sha256-+VAuMeGaAZUaDktBvv6KIs7wklenr38emgJHbLWA2sU=";
};
cargoHash = "sha256-0CxlvTetxXM+xe6r98T6hzoD/IGfYkI9TqqUe+u1U2I=";
cargoHash = "sha256-4ii9Cr5ZNXuy4sKdOeZQat8N0kdR0E1TS3Q6nuV+ZHw=";
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ pkg-config ];
+3 -3
View File
@@ -8,16 +8,16 @@
buildGoModule (finalAttrs: {
pname = "auth0-cli";
version = "1.27.2";
version = "1.28.0";
src = fetchFromGitHub {
owner = "auth0";
repo = "auth0-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-Se3jLcMU+KDkaF5UY18KWs/Q+YK3782e7cKc9BxaYqY=";
hash = "sha256-FqMfnousaJg0u8W3o2lR8REIGFThq3vhsQFN1Je65Q8=";
};
vendorHash = "sha256-Us6NJiSfOK1BBRyrYil26HGaZAgum6k3B5LdV60rCeA=";
vendorHash = "sha256-PrcGZ1UJb9fsp7ZsAAxH5VzumDwn/mkyoKVvniuPQrg=";
ldflags = [
"-s"
+2 -2
View File
@@ -6,13 +6,13 @@
}:
buildGoModule (finalAttrs: {
pname = "bitrise";
version = "2.38.0";
version = "2.39.1";
src = fetchFromGitHub {
owner = "bitrise-io";
repo = "bitrise";
rev = "v${finalAttrs.version}";
hash = "sha256-WF6+HgGePOvwdo1nU75ifnH8Fddk1vmSyNOOQER4awo=";
hash = "sha256-/jD4FZTeT+RgNEJZqNZaSIsL1lSECdE6/fNyg1DJDYE=";
};
# many tests rely on writable $HOME/.bitrise and require network access
-2
View File
@@ -5,7 +5,6 @@
pkg-config,
gnutls,
libedit,
texinfo,
libcap,
libseccomp,
pps-tools,
@@ -31,7 +30,6 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
gnutls
libedit
texinfo
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libcap
+5 -1
View File
@@ -7,6 +7,7 @@
cinny,
desktop-file-utils,
wrapGAppsHook3,
makeBinaryWrapper,
pkg-config,
openssl,
glib-networking,
@@ -53,7 +54,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
postInstall =
lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p "$out/bin"
ln -sf "$out/Applications/Cinny.app/Contents/MacOS/Cinny" "$out/bin/cinny"
makeWrapper "$out/Applications/Cinny.app/Contents/MacOS/Cinny" "$out/bin/cinny"
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
desktop-file-edit \
@@ -75,6 +76,9 @@ rustPlatform.buildRustPackage (finalAttrs: {
desktop-file-utils
pkg-config
wrapGAppsHook3
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
makeBinaryWrapper
];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
+3 -3
View File
@@ -8,17 +8,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "codebook";
version = "0.3.30";
version = "0.3.31";
src = fetchFromGitHub {
owner = "blopker";
repo = "codebook";
tag = "v${finalAttrs.version}";
hash = "sha256-TpHaUtNU6U3OlA7YmqY4roB/NdusMffZCsPkoi/lPUM=";
hash = "sha256-pe+u4scmoVgKJupqXejwq1mDpaq5QrTozVcbGfUkXJk=";
};
buildAndTestSubdir = "crates/codebook-lsp";
cargoHash = "sha256-hxPgYGBq+KZfEyFiHQG31cNEN6A6hUgKRgZXIHOGalw=";
cargoHash = "sha256-T6MCQZ8mWMMsI7+LoHTHZZyMaEq8taME3vWtrfKlzAY=";
env = {
CARGO_PROFILE_RELEASE_LTO = "fat";
+4 -4
View File
@@ -5,7 +5,7 @@
"packages": {
"": {
"dependencies": {
"codebuff": "^1.0.615"
"codebuff": "^1.0.623"
}
},
"node_modules/@isaacs/fs-minipass": {
@@ -30,9 +30,9 @@
}
},
"node_modules/codebuff": {
"version": "1.0.615",
"resolved": "https://registry.npmjs.org/codebuff/-/codebuff-1.0.615.tgz",
"integrity": "sha512-AT/26v1mINZyCJurlvTqQo7ga7EGH9UtC+IHppVAnwDZ9XNzZim5/y4EfDUHUnJM5tH1mCnWwsYQVk4X0BeNkw==",
"version": "1.0.623",
"resolved": "https://registry.npmjs.org/codebuff/-/codebuff-1.0.623.tgz",
"integrity": "sha512-2X9DAYduW0uWmEgXFPnq1fS+/aqsFiW38eHSDy2b0Zs18qx623VBx/Stu39sSWrwj20nH0Gzua1YYXXzxoen9A==",
"cpu": [
"x64",
"arm64"
+3 -3
View File
@@ -6,14 +6,14 @@
buildNpmPackage rec {
pname = "codebuff";
version = "1.0.615";
version = "1.0.623";
src = fetchzip {
url = "https://registry.npmjs.org/codebuff/-/codebuff-${version}.tgz";
hash = "sha256-4nO7OFr4NDwUo70wHKRJGiGRvKaqOXog0evn5kotxY8=";
hash = "sha256-UWYEgtxBIau8a0VN24J+ms4czUj0Dt0PVVq5v5RLfFc=";
};
npmDepsHash = "sha256-VoxULd9oOMvR8LLl6F6XuSM6nkqe+7mXgVFjWjeqdNE=";
npmDepsHash = "sha256-kcbYnpyXHLAaVZkay1254SghxdFy/cuUpyt8hLDSISI=";
postPatch = ''
cp ${./package-lock.json} package-lock.json
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p nodePackages.npm nix-update
#!nix-shell -i bash -p nodejs nix-update
set -euo pipefail
+6 -4
View File
@@ -9,15 +9,16 @@
unzip,
nixosTests,
writeText,
stdenv,
}:
let
version = "6.2.0";
version = "7.0.0";
src = fetchFromGitHub {
owner = "Athou";
repo = "commafeed";
tag = version;
hash = "sha256-M5p3nzlEIuIEMADZyQUqE6WAzlMmP/e4Zh9J8nbhZ9Q=";
hash = "sha256-hoRaegcpimIYfUv81txgXSSdwX8iCU4K5EtZMyozjFQ=";
};
frontend = buildNpmPackage {
@@ -27,7 +28,7 @@ let
sourceRoot = "${src.name}/commafeed-client";
npmDepsHash = "sha256-XkUlsRdqIXwVExvSofZJLKMUSzjxJRRpV549UTP9Cjo=";
npmDepsHash = "sha256-z6W0xyOpGbTogqZ0UgVQMNPXjwLW0ulpwLBtXvf00bQ=";
nativeBuildInputs = [ biome ];
@@ -53,7 +54,7 @@ maven.buildMavenPackage {
pname = "commafeed";
mvnHash = "sha256-vZ7BPA2N3jgRnTwF3k9En2Pn+zTrXbtB9FGbmU4wJgY=";
mvnHash = "sha256-YY/etqDtnobarg8Cj4vDv7rmzPrOqz6YCyAxjIQlzeU=";
mvnJdk = jdk25;
mvnParameters = lib.escapeShellArgs [
@@ -100,5 +101,6 @@ maven.buildMavenPackage {
license = lib.licenses.asl20;
mainProgram = "commafeed";
maintainers = [ ];
broken = stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isAarch64;
};
}
+3 -3
View File
@@ -7,7 +7,7 @@
git,
}:
let
version = "1.1.10";
version = "1.1.11";
in
rustPlatform.buildRustPackage {
pname = "committed";
@@ -17,10 +17,10 @@ rustPlatform.buildRustPackage {
owner = "crate-ci";
repo = "committed";
tag = "v${version}";
hash = "sha256-shYfKpQl0hv9m/x9UuWFksdNB6mkeQPFPP16vGxUbVw=";
hash = "sha256-6uWiZRvR7QszZQbGwo+fPbKtr+wsIHVl6iomODz2cu0=";
};
cargoHash = "sha256-CK/vYcxYXE/hEq1h9mgwrYyeS36hfiYC8WDJN9iNH6s=";
cargoHash = "sha256-qV5WaszJ/VeC6XkgBim3IRmDCU7ieAIGl7Vr5t1F8Ow=";
nativeCheckInputs = [
git
+3 -3
View File
@@ -11,16 +11,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "convco";
version = "0.6.2";
version = "0.6.3";
src = fetchFromGitHub {
owner = "convco";
repo = "convco";
rev = "v${finalAttrs.version}";
hash = "sha256-giVaDOYYH3YE9Gy0byt92vGEfyM4rTjpHDsKm5lqlP4=";
hash = "sha256-fJrP4XtlUX0RvH8T76YxqUCM/R+QvUpsaumn3Z1SOh0=";
};
cargoHash = "sha256-DTeZDpS3OaGcem9AaAPFN+2AWuqWSGfk2KknbcgFzi0=";
cargoHash = "sha256-ySTXy8Jqw/EZl/olbWjMaDD8dryUFyWFvyapfvglFHI=";
nativeBuildInputs = [
cmake
+3 -3
View File
@@ -13,11 +13,11 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "copybara";
version = "20260216";
version = "20260302";
src = fetchurl {
url = "https://github.com/google/copybara/releases/download/v${finalAttrs.version}/copybara_deploy.jar";
hash = "sha256-M36kpWy2LWUQt4gGBQexY+ZmYaJbwJDEu/QcdLhEBxQ=";
hash = "sha256-hThILMYr9XoTMOvTBEySLivEc0iPTD0Vhmpi8hwl5zY=";
};
nativeBuildInputs = [
@@ -69,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "https://github.com/google/copybara";
changelog = "https://github.com/google/copybara/releases/tag/v${finalAttrs.version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ cameroncuttingedge ];
maintainers = [ ];
platforms = lib.platforms.all;
mainProgram = "copybara";
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
+3 -3
View File
@@ -25,16 +25,16 @@
let
self = rustPlatform.buildRustPackage {
pname = "czkawka";
version = "10.0.0";
version = "11.0.1";
src = fetchFromGitHub {
owner = "qarmin";
repo = "czkawka";
tag = self.version;
hash = "sha256-r6EdTv95R8+XhaoA9OeqnGGl09kz8kMJaDPDRV6wQe8=";
hash = "sha256-ke6N3vuKPGolfh6XpAg3/9dtwd09eX53fN2klUwwNwQ=";
};
cargoHash = "sha256-o4XjHJ7eCckTXqjz1tS4OSCP8DZzjxfWoMMy5Gab2rI=";
cargoHash = "sha256-fx2ZH4I2WYCdMgNoKQuBBEJrPjmgTRPeVM2L+TWYn54=";
nativeBuildInputs = [
gobject-introspection
+2 -2
View File
@@ -10,11 +10,11 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "daisydisk";
version = "4.33.2";
version = "4.33.3";
src = fetchzip {
url = "https://daisydiskapp.com/download/DaisyDisk.zip";
hash = "sha256-YkXjaDbnwkQUsfhzCA5xQ6C6NGjQV6qj7znyjcKgwIg=";
hash = "sha256-2QhaY4oQV+bkvcyC88Zsk7eZJ6dySsb5G2+juH8HNjI=";
stripRoot = false;
};
+3 -3
View File
@@ -55,7 +55,7 @@ let
davinci = (
stdenv.mkDerivation rec {
pname = "davinci-resolve${lib.optionalString studioVariant "-studio"}";
version = "20.3.1";
version = "20.3.2";
nativeBuildInputs = [
appimageTools.appimage-exec
@@ -77,9 +77,9 @@ let
outputHashAlgo = "sha256";
outputHash =
if studioVariant then
"sha256-JaP0O+bSc9wd2YTqRwRQo35kdDkq//5WMb+7MtC9S/A="
"sha256-wUrx/cMIyMI+sYi8n8xHH4Q7c0MSAoGbpI0E1NtzcXg="
else
"sha256-3mZWP58UZYS4U1f9M3TZ9wyto0cGy+KdB+GIJlvCVng=";
"sha256-q3/QFUFmTuToIhc+r9L5/DCqpRjbLfECVxhlburly7M=";
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
+17
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
pkg-config,
spdlog,
@@ -35,6 +36,22 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-CK7YEtJtrx/Mto72RHT4Qjg5StO28Et+FeCYxk5T+8s=";
};
patches = [
# Fix wrong span extent in _lift_bc_interior_facets
# https://github.com/FEniCS/dolfinx/pull/4102
(fetchpatch {
url = "https://github.com/FEniCS/dolfinx/commit/6daca34a075a6dcdfdf77feb13d55d5dbd20e4dd.patch";
hash = "sha256-b/C1MqslS2OBCt+kK/+vJjW8pmsJx2FQ36qDtFA1ewI=";
includes = [ "cpp/dolfinx/fem/assemble_vector_impl.h" ];
})
# Fix hdf5 interface for rank 1
# https://github.com/FEniCS/dolfinx/pull/4043
(fetchpatch {
url = "https://github.com/FEniCS/dolfinx/commit/fce7c44f220d4cb94c5149ad28cd1ab00909c319.patch";
hash = "sha256-EVm4Rx5UO/3pKIVvjgYAkN+i5QR+u0Nxwxotlf41t+Q=";
})
];
nativeBuildInputs = [
cmake
pkg-config
+2 -2
View File
@@ -10,13 +10,13 @@
}:
buildGoModule (finalAttrs: {
pname = "drasl";
version = "3.4.2";
version = "3.4.3";
src = fetchFromGitHub {
owner = "unmojang";
repo = "drasl";
tag = "v${finalAttrs.version}";
hash = "sha256-SOH6WXhBBx5JShr18Q0SyDFYVE7LMRUONdCJ1NB2HRQ=";
hash = "sha256-kisClBALEESxuGh2gtwCyB02/SrYvabouaApho7z7GY=";
};
nativeBuildInputs = [
+9 -5
View File
@@ -2,6 +2,7 @@
lib,
stdenvNoCC,
fetchFromGitHub,
installFonts,
python3,
ttfautohint-nox,
}:
@@ -16,7 +17,13 @@ stdenvNoCC.mkDerivation (finalAttrs: {
hash = "sha256-ajieKhTeH6yv2qiE2xqnHFoMS65//4ZKiccAlC2PXGQ=";
};
outputs = [
"out"
"webfont"
];
nativeBuildInputs = [
installFonts
(python3.withPackages (p: [ p.fontforge ]))
ttfautohint-nox
];
@@ -32,13 +39,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
runHook postBuild
'';
# installFonts adds a hook to `postInstall` that installs fonts
# into the correct directories
installPhase = ''
runHook preInstall
install -Dm644 build/*.ttf -t $out/share/fonts/truetype
install -Dm644 build/*.otf -t $out/share/fonts/opentype
install -Dm644 build/*.woff -t $out/share/fonts/woff
runHook postInstall
'';
+26 -13
View File
@@ -33,14 +33,14 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "edk2";
version = "202511";
version = "202602";
srcWithVendoring = fetchFromGitHub {
owner = "tianocore";
repo = "edk2";
tag = "edk2-stable${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-R/rgz8dWcDYVoiM67K2UGuq0xXbjjJYBPtJ1FmfGIaU=";
hash = "sha256-TeMGpqVpXYRaeLjjg/aWHjtvfJpEfauA7Xg7dfe3XNg=";
};
src = applyPatches {
@@ -55,20 +55,33 @@ stdenv.mkDerivation (finalAttrs: {
})
./fix-cross-compilation-antlr-dlg.patch
# fix compatibility with nasm 3.01 (https://github.com/tianocore/edk2/pull/11691)
# TODO: remove when updating beyond 202511
(fetchpatch {
name = "UefiCpuPkg-CpuExceptionHandlerLib-fix-push-instructions.patch";
url = "https://github.com/tianocore/edk2/commit/9ccf8751a74f26142e584c7b7c7572a182b67997.patch";
hash = "sha256-0aqpuQDxLdbSJMBXzY/57GzL2wLn0m8dkT7X6uXtKMg=";
})
];
# FIXME: unvendor OpenSSL again once upstream updates
# to a compatible version.
# Upstream PR: https://github.com/tianocore/edk2/pull/10946
postPatch = ''
# de-vendor OpenSSL
rm -r CryptoPkg/Library/OpensslLib/openssl
mkdir -p CryptoPkg/Library/OpensslLib/openssl
(
cd CryptoPkg/Library/OpensslLib/openssl
tar --strip-components=1 -xf ${buildPackages.openssl_3_5.src}
# Apply OpenSSL patches.
${lib.pipe buildPackages.openssl_3_5.patches [
(builtins.filter (
patch:
!builtins.elem (baseNameOf patch) [
# Exclude patches not required in this context.
"nix-ssl-cert-file.patch"
"openssl-disable-kernel-detection.patch"
"use-etc-ssl-certs-darwin.patch"
"use-etc-ssl-certs.patch"
]
))
(map (patch: "patch -p1 < ${patch}\n"))
lib.concatStrings
]}
)
# enable compilation using Clang
# https://bugzilla.tianocore.org/show_bug.cgi?id=4620
substituteInPlace BaseTools/Conf/tools_def.template --replace-fail \
+6 -1
View File
@@ -48,7 +48,12 @@ rustPlatform.buildRustPackage (finalAttrs: {
};
postPatch = ''
jq '.plugins.updater.endpoints = [ ] | .bundle.createUpdaterArtifacts = false' src-tauri/tauri.conf.json | sponge src-tauri/tauri.conf.json
# disable updater and disable mac codesigning
jq '
.plugins.updater.endpoints = [ ] |
.bundle.createUpdaterArtifacts = false |
.bundle.macOS.signingIdentity = null
' src-tauri/tauri.conf.json | sponge src-tauri/tauri.conf.json
'';
cargoRoot = "src-tauri";
+2 -2
View File
@@ -7,11 +7,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "entr";
version = "5.7";
version = "5.8";
src = fetchurl {
url = "https://eradman.com/entrproject/code/entr-${finalAttrs.version}.tar.gz";
hash = "sha256-kMXZQ4IMcM7zfrQaOCpupPXdf9le/vE7K1Ug0yD10Gc=";
hash = "sha256-3Jor3FVrK+kAwdjN9DLeJkkt5a8/+t4ADUv9l/MSK/s=";
};
postPatch = ''
+2 -2
View File
@@ -19,7 +19,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "erofs-utils";
version = "1.9";
version = "1.9.1";
outputs = [
"out"
"man"
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchurl {
url = "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/snapshot/erofs-utils-${finalAttrs.version}.tar.gz";
hash = "sha256-0byEtdYLyuEhp/V+qX1BVRiQh+F4+BJ/MIRtn1N8nXM=";
hash = "sha256-qe9atnxLjS0+ntcfOc0Ai9plMUKnINijlaNvERDQxDI=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -33,14 +33,14 @@ let
in
python.pkgs.buildPythonApplication rec {
pname = "esphome";
version = "2026.2.2";
version = "2026.2.4";
pyproject = true;
src = fetchFromGitHub {
owner = "esphome";
repo = "esphome";
tag = version;
hash = "sha256-VfiIeuwvc7CLuR3SjHH8foS2b4bKVOw/bjOYnDnmWkw=";
hash = "sha256-SN9XfXFFogxKwstcS4ZQxJEGHpLpjyGzRWz2X0XQdIc=";
};
patches = [
+5
View File
@@ -18,6 +18,11 @@ python3Packages.buildPythonApplication (finalAttrs: {
hash = "sha256-y4BhU2kSn+RWqc5+pJQFhbwfat9cMWD0ED0EXJp25cY=";
};
patches = [
# https://github.com/etesync/etesync-dav/pull/365
./radicale-3-6-compat.patch
];
build-system = with python3Packages; [ setuptools ];
pythonRelaxDeps = [ "radicale" ];
@@ -0,0 +1,72 @@
diff --git a/etesync_dav/radicale/storage.py b/etesync_dav/radicale/storage.py
index d6312b1..8d4b0e1 100644
--- a/etesync_dav/radicale/storage.py
+++ b/etesync_dav/radicale/storage.py
@@ -22,6 +22,8 @@ from contextlib import contextmanager
import etesync as api
import vobject
+import radicale
+from packaging.version import Version
from radicale import pathutils
from radicale.item import Item, get_etag
from radicale.storage import (
@@ -421,7 +423,10 @@ class Collection(BaseCollection):
href_mapper = HrefMapper(content=etesync_item._cache_obj, href=href)
href_mapper.save(force_insert=True)
- return self._get(href)
+ uploaded = self._get(href)
+ if Version(radicale.VERSION) >= Version("3.5.5"):
+ return (uploaded, item)
+ return uploaded
def delete(self, href=None):
"""Delete an item.
diff --git a/etesync_dav/radicale/storage_etebase_collection.py b/etesync_dav/radicale/storage_etebase_collection.py
index 1ccc6dd..0f68561 100644
--- a/etesync_dav/radicale/storage_etebase_collection.py
+++ b/etesync_dav/radicale/storage_etebase_collection.py
@@ -1,6 +1,8 @@
import re
import vobject
+import radicale
+from packaging.version import Version
from radicale import pathutils
from radicale.item import Item
from radicale.storage import (
@@ -294,7 +296,10 @@ class Collection(BaseCollection):
href_mapper = HrefMapper(content=etesync_item.cache_item, href=href)
href_mapper.save(force_insert=True)
- return self._get(href)
+ uploaded = self._get(href)
+ if Version(radicale.VERSION) >= Version("3.5.5"):
+ return (uploaded, item)
+ return uploaded
def delete(self, href=None):
"""Delete an item.
diff --git a/etesync_dav/radicale/web.py b/etesync_dav/radicale/web.py
index 869624f..6b4c515 100644
--- a/etesync_dav/radicale/web.py
+++ b/etesync_dav/radicale/web.py
@@ -12,6 +12,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+import radicale
+from packaging.version import Version
from radicale import web
from etesync_dav.mac_helpers import has_ssl
@@ -31,6 +33,8 @@ class Web(web.BaseWeb):
environ["wsgi.url_scheme"] = "https"
body = list(app(environ, start_response))[0]
ret_response.append(body)
+ if Version(radicale.VERSION) >= Version("3.5.10"):
+ ret_response.append(None) # xml_request field
return tuple(ret_response)
def get(self, environ, base_prefix, path, user):
+2 -2
View File
@@ -20,7 +20,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "exiv2";
version = "0.28.7";
version = "0.28.8";
outputs = [
"out"
@@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "exiv2";
repo = "exiv2";
tag = "v${finalAttrs.version}";
hash = "sha256-a7nPjDjTcwsQeypARvy2rRsv9jpasSSxSyCTLWNDDtA=";
hash = "sha256-9Qe+lNBO24qQyKDXe7RMCqoDa61iha2QFhRpLJlCSMo=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "faudio";
version = "26.02";
version = "26.03";
src = fetchFromGitHub {
owner = "FNA-XNA";
repo = "FAudio";
tag = finalAttrs.version;
hash = "sha256-m7kIzdgRfYQ+OEIH6+VlbLpTMINRb6u/5aSWjbjYiTg=";
hash = "sha256-sJR3GdTC5/bTGj4J1ENxGn+U3l2vcqEgAb//btpJxnA=";
};
nativeBuildInputs = [ cmake ];
+3 -15
View File
@@ -2,6 +2,7 @@
lib,
stdenvNoCC,
fetchFromGitHub,
installFonts,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
@@ -15,22 +16,9 @@ stdenvNoCC.mkDerivation (finalAttrs: {
hash = "sha256-owzoM0zfKYxLJCQbL1eUE0cdSLVmm+QNRUGxbsNJ37I=";
};
sourceRoot = "fonts";
sourceRoot = "source/fonts";
setSourceRoot = "sourceRoot=$(pwd)";
installPhase = ''
runHook preInstall
find . -type f -iname '*.ttf' | while read f; do
d="$out/share/fonts/truetype/figtree/$(basename "$f")"
install -Dm644 -D "$f" "$d"
done
find . -type f -iname '*.otf' | while read f; do
d="$out/share/fonts/opentype/figtree/$(basename "$f")"
install -Dm644 -D "$f" "$d"
done
runHook postInstall
'';
nativeBuildInputs = [ installFonts ];
meta = {
homepage = "https://github.com/erikdkennedy/figtree";
+45 -26
View File
@@ -86,20 +86,20 @@ let
in
linkFarm name [
{
name = "flow_syntax-0.1.0-X8jOoU8VAQCOYNTiuB7y2aIBP1V3OXXHa8WvE3eXtpDK";
name = "flow_syntax-0.6.0-X8jOoWgVAQBBTuGGE9r1ECSDFzi8z6_XNCW1oF5B4fL8";
path = fetchZigArtifact {
name = "syntax";
url = "git+https://github.com/neurocyte/flow-syntax?ref=master#10b92330cf0ecaa39a52d3a8d190f7fb384b7b09";
hash = "sha256-w6h8KN6oNS5PPTgOfMlCz3aRH6o2CY2Fl/LnUd1PVq8=";
rev = "10b92330cf0ecaa39a52d3a8d190f7fb384b7b09";
url = "git+https://github.com/neurocyte/flow-syntax?ref=master#6992eddeb9a4a013886db0cbca2156686d01efe4";
hash = "sha256-TJJTGiQbdzVNQAjKg9R1NP9kXqEcMNy33rwqnQG8se4=";
rev = "6992eddeb9a4a013886db0cbca2156686d01efe4";
};
}
{
name = "tree_sitter-0.22.4-150-g7e3f5726-z0LhyI7XuS7mSbx26jCz5VkJ_c1oL8vvC6WBgx0Idkpg";
name = "tree_sitter-0.22.4-150-g7e3f5726-z0LhyGeG1y67PeOltaplVkxRNT2jMMexQhbUlrh0vdxM";
path = fetchZigArtifact {
name = "tree_sitter";
url = "https://github.com/neurocyte/tree-sitter/releases/download/master-3cfb01c2f3349791a500f59bcc89b867d017d5b8/source.tar.gz";
hash = "sha256-2vIwHvTyXAjLT6qC1zrtCM1OjSJAta4z/2MkctSbl2g=";
url = "https://github.com/neurocyte/tree-sitter/releases/download/master-6e2827ee231e220467bf04d2a2746faff5cb204a/source.tar.gz";
hash = "sha256-k8eOWun2ANzWJOa8XAakXN4Vldgwzly3FESYAlsbVVw=";
};
}
{
@@ -138,12 +138,21 @@ linkFarm name [
};
}
{
name = "thespian-0.0.1-owFOjjMiBgCXFa9f0-RKTDgWwYzQp1Mnec_p6hsGXj_G";
name = "thespian-0.0.1-owFOjlgiBgC8w4XqkCOegxz5vMy6kNErcssWQWf2QHeE";
path = fetchZigArtifact {
name = "thespian";
url = "git+https://github.com/neurocyte/thespian?ref=master#6eadc0fe29795f88752f3b6f296dc582b16cb5a1";
hash = "sha256-+Jlg6ai/C0/0/Ou4b/SErtQR8AkEylG0kNwA+qw9bDU=";
rev = "6eadc0fe29795f88752f3b6f296dc582b16cb5a1";
url = "git+https://github.com/neurocyte/thespian?ref=master#7da13f44e8462d1ac0cac87c6f00cc4fcb62b0f9";
hash = "sha256-FDrgVtZQg+sFsMYE2TGOv1Xl6QqzE8+WtuKRulVnKjo=";
rev = "7da13f44e8462d1ac0cac87c6f00cc4fcb62b0f9";
};
}
{
name = "cbor-1.0.0-RcQE_HwwAQAiNkKC9ezLxHUMkWgHeVa3QyTfv4hi3VZR";
path = fetchZigArtifact {
name = "cbor";
url = "git+https://github.com/neurocyte/cbor?ref=master#b6fc137250b7d3f70459652ee78c7b6cd9ad2826";
hash = "sha256-axyiz0+WqM9HCz9xbyl/UtdwJsKC/LIiQPZn/SdzxDU=";
rev = "b6fc137250b7d3f70459652ee78c7b6cd9ad2826";
};
}
{
@@ -173,11 +182,11 @@ linkFarm name [
};
}
{
name = "N-V-__8AAKhUIwB6OywBocsytyvp6XiVu4fZwzFJHjumxGLY";
name = "N-V-__8AAOKzJACguNxU76WX9M7RIhOYGuLnlasJ1-GDdhqT";
path = fetchZigArtifact {
name = "themes";
url = "https://github.com/neurocyte/flow-themes/releases/download/master-638f6f95c391420f0f140599ed5f87cc37834559/flow-themes.tar.gz";
hash = "sha256-CnG0htnCQBoyMGXGguyRUonbseBAgSKwWTm3pH6CXks=";
url = "https://github.com/neurocyte/flow-themes/releases/download/master-c6c7f18cfb2e3945cd0b71dab24271465074dbc3/flow-themes.tar.gz";
hash = "sha256-h4oVrZqXwsQa57ywc8Ez7c2Fur4MhyJ8xyRTpKUJh9E=";
};
}
{
@@ -189,29 +198,30 @@ linkFarm name [
};
}
{
name = "vaxis-0.5.1-BWNV_PIfCQBrMQyEAPPSOyupQYEud7vTs0jXEq5drkC9";
name = "vaxis-0.5.1-BWNV_PJJCQArtOy_n76jGWoqoBpnM5FKElA_i1IaYYcF";
path = fetchZigArtifact {
name = "vaxis";
url = "git+https://github.com/neurocyte/libvaxis?ref=main#4debeaf0774a6db5de8bab212335fae795086035";
hash = "sha256-bfcOR5vzytKHbQHR6z71G+GE+iuEUuM23+38y6V+6Ss=";
rev = "4debeaf0774a6db5de8bab212335fae795086035";
url = "git+https://github.com/neurocyte/libvaxis?ref=main#95034c7114601178467b42e69588cdd4c1d39eb1";
hash = "sha256-IuToUtK3WdoOy+UzYy5OlXNR5E3DUSO5VwZvSIF28qc=";
rev = "95034c7114601178467b42e69588cdd4c1d39eb1";
};
}
{
name = "zigimg-0.1.0-8_eo2vHnEwCIVW34Q14Ec-xUlzIoVg86-7FU2ypPtxms";
name = "zigimg-0.1.0-8_eo2vUZFgAAtN1c6dAO5DdqL0d4cEWHtn6iR5ucZJti";
path = fetchZigArtifact {
name = "zigimg";
url = "https://github.com/ivanstepanovftw/zigimg/archive/d7b7ab0ba0899643831ef042bd73289510b39906.tar.gz";
hash = "sha256-LB7Xa6KzVRRUSwwnyWM+y6fDG+kIDjfnoBDJO1obxVM=";
url = "git+https://github.com/zigimg/zigimg#eab2522c023b9259db8b13f2f90d609b7437e5f6";
hash = "sha256-e42T/ZmRzuzWAhwWkcWScukcOd6rNZ1VK1wk0XGTVKs=";
rev = "eab2522c023b9259db8b13f2f90d609b7437e5f6";
};
}
{
name = "zg-0.15.2-oGqU3AtAtAI7gs7zPvzg2_TlVIqi9wCNEw7DLvD5OvDN";
name = "uucode-0.1.0-ZZjBPj96QADXyt5sqwBJUnhaDYs_qBeeKijZvlRa0eqM";
path = fetchZigArtifact {
name = "zg";
url = "git+https://codeberg.org/neurocyte/zg?ref=master#cdcab8b9ea3458efd710008055d993c5dbdb1af7";
hash = "sha256-dCaDTiZX62SZfJHMZn2IfwADbRegpNIM7u/dBPZ580k=";
rev = "cdcab8b9ea3458efd710008055d993c5dbdb1af7";
name = "uucode";
url = "git+https://github.com/jacobsandlund/uucode#5f05f8f83a75caea201f12cc8ea32a2d82ea9732";
hash = "sha256-sHPh+TQSdUGus/QTbj7KSJJkTuNTrK4VNmQDjS30Lf8=";
rev = "5f05f8f83a75caea201f12cc8ea32a2d82ea9732";
};
}
{
@@ -232,4 +242,13 @@ linkFarm name [
rev = "5587b16fa040573846a6bf531301f6206d31a6bf";
};
}
{
name = "diffz-0.0.1-G2tlIezMAQBwGNGDs7Hn_N25dWSjEzgR_FAx9GFAvCuZ";
path = fetchZigArtifact {
name = "diffz";
url = "git+https://github.com/ziglibs/diffz.git#fbdf690b87db6b1142bbce6d4906f90b09ce60bb";
hash = "sha256-zzKnlKQ0Sz8aqJifSSlZImU3jY3QXLBDIfVDBmKcpVc=";
rev = "fbdf690b87db6b1142bbce6d4906f90b09ce60bb";
};
}
]
+9 -10
View File
@@ -8,21 +8,18 @@
stdenv.mkDerivation (finalAttrs: {
pname = "flow-control";
version = "0.6.0";
version = "0.7.2";
src = fetchFromGitHub {
owner = "neurocyte";
repo = "flow";
tag = "v${finalAttrs.version}";
hash = "sha256-868FK3wr/fjXzrQJ4YVDBvzNuX818lufEx/K0fvJdWo=";
hash = "sha256-5+F0DKb4LXtcMXNutUSJuIe7cdBoFUoJhCs8vbm20jg=";
};
deps = callPackage ./build.zig.zon.nix {
zig = zig_0_15;
};
postConfigure = ''
ln -s ${
callPackage ./build.zig.zon.nix {
zig = zig_0_15;
}
} $ZIG_GLOBAL_CACHE_DIR/p
'';
nativeBuildInputs = [ zig_0_15 ];
@@ -30,8 +27,10 @@ stdenv.mkDerivation (finalAttrs: {
dontSetZigDefaultFlags = true;
zigBuildFlags = [
"--system"
"${finalAttrs.deps}"
"-Dcpu=baseline"
"-Doptimize=ReleaseSafe"
"-Doptimize=ReleaseFast"
];
env.VERSION = finalAttrs.version;
+2 -2
View File
@@ -11,14 +11,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "fna3d";
version = "26.02";
version = "26.03";
src = fetchFromGitHub {
owner = "FNA-XNA";
repo = "FNA3D";
tag = finalAttrs.version;
fetchSubmodules = true;
hash = "sha256-Gwuml5ZR3m7PEqfYz/BySN9/lsb5Rbej9v0fMfUxt/I=";
hash = "sha256-P28rm36xG3/IydUKFk6Q7m0D9jpcMtAlfdLpXOrISs4=";
};
cmakeFlags = [
+57
View File
@@ -0,0 +1,57 @@
{
asciidoc,
asciidoctor,
deutex,
fetchFromGitHub,
lib,
nix-update-script,
python3,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "freedoom";
version = "0.13.0";
src = fetchFromGitHub {
owner = "freedoom";
repo = "freedoom";
tag = "v${finalAttrs.version}";
hash = "sha256-uOLyh/epVxv3/N+6P1glBX1ZkGWzHWGaERYZRSL/3AU=";
};
strictDeps = true;
nativeBuildInputs = [
(python3.withPackages (ps: with ps; [ pillow ]))
asciidoc
asciidoctor
deutex
];
preBuild = ''
patchShebangs .
'';
makeFlags = [ "prefix=$(out)" ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Game based on the Doom engine";
longDescription = ''
Freedoom is a complete, free content first person shooter game,
based on the Doom engine.
Freedoom is not a program - rather, it consists of the levels,
artwork, sound effects and music that make up the game. To play
Freedoom, [it must be paired with an
engine](https://github.com/freedoom/freedoom#How-to-play) that
can play it.
'';
homepage = "https://freedoom.github.io";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ yiyu ];
platforms = lib.platforms.all;
};
})
+3 -3
View File
@@ -9,16 +9,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "fselect";
version = "0.9.2";
version = "0.9.3";
src = fetchFromGitHub {
owner = "jhspetersson";
repo = "fselect";
rev = finalAttrs.version;
sha256 = "sha256-S9WlDpa9Qe3GVVC/L5KAyekH1NegdDttJ6HH5rwI6Dk=";
sha256 = "sha256-NNDWKjO0A6ETIC+6Eg6LqyrwwErbP8362YzzNJYgtlE=";
};
cargoHash = "sha256-q7FBKzVH2EtP2PjrU8bvQTrzvMZ0T+Cgk7o+lpyuTPc=";
cargoHash = "sha256-lDN3b5skS5+e1Lz3StBqW+yTN2dVxy9bWZ5z69o5z7s=";
nativeBuildInputs = [ installShellFiles ];
buildInputs = lib.optional stdenv.hostPlatform.isDarwin libiconv;
+2 -2
View File
@@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "ft2-clone";
version = "2.05";
version = "2.07";
src = fetchFromGitHub {
owner = "8bitbubsy";
repo = "ft2-clone";
rev = "v${finalAttrs.version}";
hash = "sha256-wMR0S8knfMncjRVDExXkfKGJlDGOjrgAh+bbe0023dw=";
hash = "sha256-g32teMDOv+lYmZNJNCnjlHszFb7cjKLWMHVuxHZvAHo=";
};
nativeBuildInputs = [ cmake ];
+3 -3
View File
@@ -18,16 +18,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "gelly";
version = "0.18.2";
version = "0.18.3";
src = fetchFromGitHub {
owner = "Fingel";
repo = "gelly";
tag = "v${finalAttrs.version}";
hash = "sha256-95mpAfS6upV3p0LoieMWwVUnSLn7KistMlegRclZJvw=";
hash = "sha256-JDCy6RILbEXRL6Oq2UBrkhdLeEx4aHWrrF5EPkY8pXg=";
};
cargoHash = "sha256-+Itmi463TVDfutqPNoxGy1lE/Iv8Qc7d5jXqe9GW4Qg=";
cargoHash = "sha256-MmwPCUdZJWBYmMbNklaejkSyTB+x1GwnHLInYxA/1sc=";
nativeBuildInputs = [
pkg-config
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
homepage = "https://github.com/andrewring/github-distributed-owners";
changelog = "https://github.com/andrewring/github-distributed-owners/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ cameroncuttingedge ];
maintainers = [ ];
mainProgram = "github-distributed-owners";
};
})
+2 -2
View File
@@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "glaze";
version = "7.0.0";
version = "7.1.0";
src = fetchFromGitHub {
owner = "stephenberry";
repo = "glaze";
tag = "v${finalAttrs.version}";
hash = "sha256-bYXXQmrVnrBTW/r+fgRBPYfKGPtHvEDw0Sk6BYTMm/4=";
hash = "sha256-W48BDsxUrFjjqUFwBcBqHr5Y7h+BtGGWdioGukBqzbE=";
};
nativeBuildInputs = [ cmake ];
+4 -2
View File
@@ -1,6 +1,7 @@
{
lib,
perlPackages,
libiec61850,
nix,
dmidecode,
pciutils,
@@ -15,13 +16,13 @@
perlPackages.buildPerlPackage rec {
pname = "glpi-agent";
version = "1.15";
version = "1.16";
src = fetchFromGitHub {
owner = "glpi-project";
repo = "glpi-agent";
tag = version;
hash = "sha256-+zHTlxfkZ1x21ePZUni7lbRJQ/NUDeoZnvOzM+yzG3M=";
hash = "sha256-JocNClbFH6fSZJDAVQCPaRvHrkLboNbQVTpyHjOV7go=";
};
postPatch = ''
@@ -101,6 +102,7 @@ perlPackages.buildPerlPackage rec {
sed -e "s|./lib|$out/lib|" -i "$cur"
wrapProgram "$cur" --prefix PATH : ${
lib.makeBinPath [
libiec61850
nix
dmidecode
pciutils
+1 -1
View File
@@ -93,7 +93,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
description = "Intuitive text extraction tool (OCR) for GNOME desktop";
license = lib.licenses.mit;
mainProgram = "frog";
maintainers = [ ];
maintainers = [ lib.maintainers.axodentally ];
platforms = lib.platforms.linux;
};
})
+2 -2
View File
@@ -14,13 +14,13 @@
buildGo125Module (finalAttrs: {
pname = "go-arch-lint";
version = "1.13.0";
version = "1.14.0";
src = fetchFromGitHub {
owner = "fe3dback";
repo = "go-arch-lint";
tag = "v${finalAttrs.version}";
hash = "sha256-TtYeowoL8NEOw1coiLHJ/epcFMaxT4zsBSsnLgmhKDc=";
hash = "sha256-AMPqMtBg1RjbqlfAHz193q1SFeqDmF7WrjvX2psqVro=";
};
vendorHash = "sha256-2n7OjF4gl+qq9M5EtU0nmgWwRPZ3YvmLQDAgJ8w9S1M=";
+2 -2
View File
@@ -8,13 +8,13 @@
buildGoModule (finalAttrs: {
pname = "go-httpbin";
version = "2.20.0";
version = "2.21.0";
src = fetchFromGitHub {
owner = "mccutchen";
repo = "go-httpbin";
tag = "v${finalAttrs.version}";
hash = "sha256-FXD5XgvdQ5b6AcDC2VJPSDJXjb6RwOskPNtBV4fy6Pc=";
hash = "sha256-QJskXXieiFr406WI8gGtgcoL4pHEVzNOwM6JyYk+0EA=";
};
vendorHash = null;
@@ -6,13 +6,13 @@
buildGoModule (finalAttrs: {
pname = "goimports-reviser";
version = "3.11.0";
version = "3.12.6";
src = fetchFromGitHub {
owner = "incu6us";
repo = "goimports-reviser";
rev = "v${finalAttrs.version}";
hash = "sha256-5v10DmJovyDyfAlgLuO4uCKRDZGIUxGLHFJRHsGmSm4=";
hash = "sha256-QFnTiFINWprGuBrRwLFMexIbv6Xu+tq7rTVif7YvLsc=";
};
vendorHash = "sha256-aTPzvqIwjZzEq9LHFdebIgbKMwsBOqLbpEWB7rN7cYY=";
+5 -5
View File
@@ -184,11 +184,11 @@ let
linux = stdenvNoCC.mkDerivation (finalAttrs: {
inherit pname meta passthru;
version = "145.0.7632.116";
version = "145.0.7632.159";
src = fetchurl {
url = "https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${finalAttrs.version}-1_amd64.deb";
hash = "sha256-lGMopGtpLp3g0PVIfRIACNP6yRarzQDIsuctNbiqCCo=";
hash = "sha256-xi7xUT9BSvF7g690gaEsubTwAN181Y08FSPD2+pFJdk=";
};
# With strictDeps on, some shebangs were not being patched correctly
@@ -302,11 +302,11 @@ let
darwin = stdenvNoCC.mkDerivation (finalAttrs: {
inherit pname meta passthru;
version = "145.0.7632.117";
version = "145.0.7632.160";
src = fetchurl {
url = "http://dl.google.com/release2/chrome/ej7xgqe26rn6kjtl4mhau5cs44_145.0.7632.117/GoogleChrome-145.0.7632.117.dmg";
hash = "sha256-OZWuV9s6vlCcxUXKmrJtMO6KRUadkmQKoMYXrDhKatU=";
url = "http://dl.google.com/release2/chrome/adfe2qymqnox7qjswrtl6gacr5ra_145.0.7632.160/GoogleChrome-145.0.7632.160.dmg";
hash = "sha256-OcjDKT8jgMg6MsIkAHYduDOJFMqK+prqlCaY4Att6RA=";
};
dontPatch = true;
+1 -1
View File
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
makeWrapper ${jre}/bin/java $out/bin/gpsprune \
--add-flags "-jar $out/share/java/gpsprune.jar"
mkdir -p $out/share/pixmaps
${unzip}/bin/unzip -p $src tim/prune/gui/images/window_icon_64.png > $out/share/pixmaps/gpsprune.png
${unzip}/bin/unzip -p $src tim/prune/gui/images/window_icon_64.png > $out/share/icons/hicolor/64x64/apps/gpsprune.png
runHook postInstall
'';
+2 -2
View File
@@ -7,14 +7,14 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "ha-mcp";
version = "6.6.1";
version = "6.7.1";
pyproject = true;
src = fetchFromGitHub {
owner = "homeassistant-ai";
repo = "ha-mcp";
tag = "v${finalAttrs.version}";
hash = "sha256-yAJbvfIH5ewRTip8whbOKxE479qAihESaiLFTnhpRkY=";
hash = "sha256-CQbjPEtCos0Fi6aAaIWSRMCUQKmjYviYkvJZzbCZg6Y=";
};
build-system = with python3Packages; [
+2 -8
View File
@@ -2,6 +2,7 @@
lib,
stdenvNoCC,
fetchzip,
installFonts,
}:
stdenvNoCC.mkDerivation rec {
@@ -14,14 +15,7 @@ stdenvNoCC.mkDerivation rec {
hash = "sha256-Oh8V72tYvVA6Sk0f9UTIkRQYjdUbEB/fmCSaRYfyoP8=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/fonts/truetype
mv *.ttf -t $out/share/fonts/truetype
runHook postInstall
'';
nativeBuildInputs = [ installFonts ];
meta = {
description = "UNICODE Han Nom Font Set";
+3 -3
View File
@@ -9,16 +9,16 @@
buildGoModule (finalAttrs: {
pname = "harbor-cli";
version = "0.0.17";
version = "0.0.18";
src = fetchFromGitHub {
owner = "goharbor";
repo = "harbor-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-uTXTRfxuEl1A9F9TrEWYvV4tVGPRoH01QRVsO8fBKg0=";
hash = "sha256-vR99rFCR/FMpASyCqjIvhWBNO+Va1sACtZxOGbJaiQg=";
};
vendorHash = "sha256-lGxv7BK4JZX9fyQEUooflBvcbul8LXkRvpySz4l5zAI=";
vendorHash = "sha256-A7Hgzzdu8zIkN/mvHTWU7ZRbInWor+dVtr9al3oyjk4=";
excludedPackages = [
"dagger"
+3 -3
View File
@@ -13,16 +13,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "hyprshell";
version = "4.9.2";
version = "4.9.4";
src = fetchFromGitHub {
owner = "H3rmt";
repo = "hyprshell";
tag = "v${finalAttrs.version}";
hash = "sha256-1nt+/cAtIsS/3O790W2aMUuPiMV6JEjC334Sw0SD804=";
hash = "sha256-GLNl/KujW97Lpn9fjMjt7ZwaBpgMJe1NTD94KxzNNlo=";
};
cargoHash = "sha256-WnmK7eUjXqNUWXeaXqloYeRSp/uvg8QoYbcotm5uEt4=";
cargoHash = "sha256-IQ15ZxUJzx+pEl0K8IDqDTp05TfBbjxUeTru42s/phw=";
nativeBuildInputs = [
wrapGAppsHook4
+1 -1
View File
@@ -70,7 +70,7 @@ stdenv.mkDerivation (finalAttrs: {
install -m755 -Dt $out/bin iaito
install -m644 -Dt $out/share/metainfo ../org.radare.iaito.appdata.xml
install -m644 -Dt $out/share/applications ../org.radare.iaito.desktop
install -m644 -Dt $out/share/pixmaps ../img/org.radare.iaito.svg
install -m644 -Dt $out/share/icons/hicolor/scalable/apps ../img/org.radare.iaito.svg
pushd ../../../translations
make install -j$NIX_BUILD_CORES PREFIX=$out
+8 -7
View File
@@ -9,17 +9,17 @@
makeWrapper,
nix-update-script,
}:
rustPlatform.buildRustPackage {
rustPlatform.buildRustPackage (finalAttrs: {
pname = "influxdb3";
version = "3.0.1";
version = "3.8.3";
src = fetchFromGitHub {
owner = "influxdata";
repo = "influxdb";
rev = "8daccb7ee8f82ffae99b25236af9645fd60e448b";
hash = "sha256-tHnLD5W3KQ1cILRHNmXAi4lvQQSBVUPxYCXmXLMLwIs=";
rev = "73f689bb31d5ca13c4f950fefb40d5f6e6163019";
hash = "sha256-+eNv+/LJUBTJEL+jhkAq9sMSzFBAnuNdEaUwdWFtEMA=";
};
cargoHash = "sha256-KnmaIbK/2tRXjCpOLHcadIX8Od7lVDOwZ+FgE+yFE+Q=";
cargoHash = "sha256-gICiNHbN85gKWY635zonJg6Fed5NeqDuzdQLBGkbm6g=";
nativeBuildInputs = [
makeWrapper
@@ -43,13 +43,14 @@ rustPlatform.buildRustPackage {
rm influxdb3_process/build.rs
'';
env.INFLUXDB3_BUILD_VERSION = finalAttrs.version;
buildNoDefaultFeatures = true;
buildFeatures = [
"aws"
"gcp"
"azure"
"jemalloc_replacing_malloc"
"system-py"
];
postInstall = ''
@@ -83,4 +84,4 @@ rustPlatform.buildRustPackage {
maintainers = with lib.maintainers; [ oddlama ];
mainProgram = "influxdb3";
};
}
})
+3 -3
View File
@@ -10,16 +10,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "inputplumber";
version = "0.74.2";
version = "0.75.0";
src = fetchFromGitHub {
owner = "ShadowBlip";
repo = "InputPlumber";
tag = "v${finalAttrs.version}";
hash = "sha256-M/U5XfxNmdBwwgEAVfH71VNif7GYh/vW4WycDgDKRQM=";
hash = "sha256-clTcP9BLy8+hO7epvOJeHBAOwPo50HD2EI95TekmQN8=";
};
cargoHash = "sha256-7P8hP1WZctoo2ABavCHelePPV/npJQczc+ifZwxHq+k=";
cargoHash = "sha256-3+nxRtiQWbm3M+FZyq2xPVgCc4/Ztybeq6RtuxF8FJs=";
nativeBuildInputs = [
pkg-config
+1 -1
View File
@@ -151,7 +151,7 @@ flutter338.buildFlutterApplication {
extraWrapProgramArgs = "--chdir $out/app/intiface-central";
postInstall = ''
install -Dm644 $out/app/intiface-central/data/flutter_assets/assets/icons/intiface_central_icon.png $out/share/pixmaps/intiface-central.png
install -Dm644 $out/app/intiface-central/data/flutter_assets/assets/icons/intiface_central_icon.png $out/share/icons/hicolor/512x512/apps/intiface-central.png
'';
desktopItems = [
+7 -4
View File
@@ -8,6 +8,7 @@
makeWrapper,
unzip,
xdg-utils,
imagemagick,
writeScript,
}:
@@ -40,13 +41,14 @@ stdenvNoCC.mkDerivation (finalAttrs: {
unzip
makeWrapper
copyDesktopItems
imagemagick
];
desktopItems = [
(makeDesktopItem {
name = "irpf";
exec = "irpf";
icon = "rfb64";
icon = "rfb";
desktopName = "Imposto de Renda Pessoa Física";
comment = "Programa Oficial da Receita para elaboração do IRPF";
categories = [ "Office" ];
@@ -72,9 +74,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
--set _JAVA_AWT_WM_NONREPARENTING 1 \
--set AWT_TOOLKIT MToolkit
mkdir -p $out/share/pixmaps
unzip -j lib/ppgd-icones-4.0.jar icones/rfb64.png -d $out/share/pixmaps
mkdir -p $out/share/icons/hicolor/{96x96,72x72,32x32}/apps
unzip -jp lib/ppgd-icones-4.0.jar icones/rfb64.png | magick - -background none -gravity center -extent 96x96 $out/share/icons/hicolor/96x96/apps/rfb.png
unzip -jp lib/ppgd-icones-4.0.jar icones/rfb48.png | magick - -background none -gravity center -extent 72x72 $out/share/icons/hicolor/72x72/apps/rfb.png
unzip -j lib/ppgd-icones-4.0.jar icones/rfb.png -d $out/share/icons/hicolor/32x32/apps
runHook postInstall
'';
+1 -1
View File
@@ -100,7 +100,7 @@ stdenv.mkDerivation (finalAttrs: {
];
postInstall = ''
install -D resources/icons/icon.png $out/share/pixmaps/jamesdsp.png
install -D resources/icons/icon.png $out/share/icons/hicolor/512x512/apps/jamesdsp.png
install -D resources/icons/icon.svg $out/share/icons/hicolor/scalable/apps/jamesdsp.svg
'';

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