mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-25 10:36:36 +03:00
Merge staging-next into staging
This commit is contained in:
commit
f970ef5718
55 changed files with 1588 additions and 7090 deletions
1
.github/labeler.yml
vendored
1
.github/labeler.yml
vendored
|
@ -181,6 +181,7 @@
|
|||
- pkgs/development/compilers/corretto/**/*
|
||||
- pkgs/development/compilers/graalvm/**/*
|
||||
- pkgs/development/compilers/openjdk/**/*
|
||||
- pkgs/by-name/op/openjfx/**/*
|
||||
- pkgs/development/compilers/semeru-bin/**/*
|
||||
- pkgs/development/compilers/temurin-bin/**/*
|
||||
- pkgs/development/compilers/zulu/**/*
|
||||
|
|
|
@ -20519,6 +20519,12 @@
|
|||
githubId = 18403034;
|
||||
name = "Shaddy";
|
||||
};
|
||||
shadowapex = {
|
||||
email = "shadowapex@gmail.com";
|
||||
github = "ShadowApex";
|
||||
githubId = 376460;
|
||||
name = "William Edwards";
|
||||
};
|
||||
shadowrz = {
|
||||
email = "shadowrz+nixpkgs@disroot.org";
|
||||
matrix = "@shadowrz:nixos.dev";
|
||||
|
|
|
@ -31,6 +31,8 @@
|
|||
|
||||
- [Bazecor](https://github.com/Dygmalab/Bazecor), the graphical configurator for Dygma Products.
|
||||
|
||||
- [Bonsai](https://git.sr.ht/~stacyharper/bonsai), a general-purpose event mapper/state machine primarily used to create complex key shortcuts, and as part of the [SXMO](https://sxmo.org/) desktop environment. Available as [services.bonsaid](#opt-services.bonsaid.enable).
|
||||
|
||||
- [scanservjs](https://github.com/sbs20/scanservjs/), a web UI for SANE scanners. Available at [services.scanservjs](#opt-services.scanservjs.enable).
|
||||
|
||||
- [Kimai](https://www.kimai.org/), a web-based multi-user time-tracking application. Available as [services.kimai](options.html#opt-services.kimai).
|
||||
|
@ -39,6 +41,8 @@
|
|||
|
||||
- [MaryTTS](https://github.com/marytts/marytts), an open-source, multilingual text-to-speech synthesis system written in pure Java. Available as [services.marytts](options.html#opt-services.marytts).
|
||||
|
||||
- [networking.modemmanager](options.html#opt-networking.modemmanager) has been split out of [networking.networkmanager](options.html#opt-networking.networkmanager). NetworkManager still enables ModemManager by default, but options exist now to run NetworkManager without ModemManager.
|
||||
|
||||
- [Conduwuit](https://conduwuit.puppyirl.gay/), a federated chat server implementing the Matrix protocol, forked from Conduit. Available as [services.conduwuit](#opt-services.conduwuit.enable).
|
||||
|
||||
- [Traccar](https://www.traccar.org/), a modern GPS Tracking Platform. Available as [services.traccar](#opt-services.traccar.enable).
|
||||
|
@ -61,6 +65,8 @@
|
|||
|
||||
- [nvidia-gpu](https://github.com/utkuozdemir/nvidia_gpu_exporter), a Prometheus exporter that scrapes `nvidia-smi` for GPU metrics. Available as [services.prometheus.exporters.nvidia-gpu](#opt-services.prometheus.exporters.nvidia-gpu.enable).
|
||||
|
||||
- [InputPlumber](https://github.com/ShadowBlip/InputPlumber/), an open source input router and remapper daemon for Linux. Available as [services.inputplumber](#opt-services.inputplumber.enable).
|
||||
|
||||
- [Buffyboard](https://gitlab.postmarketos.org/postmarketOS/buffybox/-/tree/master/buffyboard), a framebuffer on-screen keyboard. Available as [services.buffyboard](option.html#opt-services.buffyboard).
|
||||
|
||||
- [KanBoard](https://github.com/kanboard/kanboard), a project management tool that focuses on the Kanban methodology. Available as [services.kanboard](#opt-services.kanboard.enable).
|
||||
|
|
|
@ -509,6 +509,7 @@
|
|||
./services/desktops/ayatana-indicators.nix
|
||||
./services/desktops/bamf.nix
|
||||
./services/desktops/blueman.nix
|
||||
./services/desktops/bonsaid.nix
|
||||
./services/desktops/cpupower-gui.nix
|
||||
./services/desktops/deepin/deepin-anything.nix
|
||||
./services/desktops/deepin/dde-api.nix
|
||||
|
@ -604,6 +605,7 @@
|
|||
./services/hardware/handheld-daemon.nix
|
||||
./services/hardware/hddfancontrol.nix
|
||||
./services/hardware/illum.nix
|
||||
./services/hardware/inputplumber.nix
|
||||
./services/hardware/interception-tools.nix
|
||||
./services/hardware/iptsd.nix
|
||||
./services/hardware/irqbalance.nix
|
||||
|
@ -1135,6 +1137,7 @@
|
|||
./services/networking/miredo.nix
|
||||
./services/networking/mjpg-streamer.nix
|
||||
./services/networking/mmsd.nix
|
||||
./services/networking/modemmanager.nix
|
||||
./services/networking/monero.nix
|
||||
./services/networking/morty.nix
|
||||
./services/networking/mosquitto.nix
|
||||
|
|
32
nixos/modules/programs/autoenv.nix
Normal file
32
nixos/modules/programs/autoenv.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.programs.autoenv;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
programs.autoenv = {
|
||||
enable = lib.mkEnableOption "autoenv";
|
||||
package = lib.mkPackageOption pkgs "autoenv" { };
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ pkgs.autoenv ];
|
||||
|
||||
programs = {
|
||||
zsh.interactiveShellInit = ''
|
||||
source ${cfg.package}/share/autoenv/activate.sh
|
||||
'';
|
||||
|
||||
bash.interactiveShellInit = ''
|
||||
source ${cfg.package}/share/autoenv/activate.sh
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
168
nixos/modules/services/desktops/bonsaid.nix
Normal file
168
nixos/modules/services/desktops/bonsaid.nix
Normal file
|
@ -0,0 +1,168 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
json = pkgs.formats.json { };
|
||||
transitionType = lib.types.submodule {
|
||||
freeformType = json.type;
|
||||
options.type = lib.mkOption {
|
||||
type = lib.types.enum [
|
||||
"delay"
|
||||
"event"
|
||||
"exec"
|
||||
];
|
||||
description = ''
|
||||
Type of transition. Determines how bonsaid interprets the other options in this transition.
|
||||
'';
|
||||
};
|
||||
options.command = lib.mkOption {
|
||||
type = lib.types.nullOr (lib.types.listOf lib.types.str);
|
||||
default = null;
|
||||
description = ''
|
||||
Command to run when this transition is taken.
|
||||
This is executed inline by `bonsaid` and blocks handling of any other events until completion.
|
||||
To perform the command asynchronously, specify it like `[ "setsid" "-f" "my-command" ]`.
|
||||
|
||||
Only effects transitions with `type = "exec"`.
|
||||
'';
|
||||
};
|
||||
options.delay_duration = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.int;
|
||||
default = null;
|
||||
description = ''
|
||||
Nanoseconds to wait after the previous state change before performing this transition.
|
||||
This can be placed at the same level as a `type = "event"` transition to achieve a
|
||||
timeout mechanism.
|
||||
|
||||
Only effects transitions with `type = "delay"`.
|
||||
'';
|
||||
};
|
||||
options.event_name = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
Name of the event which should trigger this transition when received by `bonsaid`.
|
||||
Events are sent to `bonsaid` by running `bonsaictl -e <event_name>`.
|
||||
|
||||
Only effects transitions with `type = "event"`.
|
||||
'';
|
||||
};
|
||||
options.transitions = lib.mkOption {
|
||||
type = lib.types.listOf transitionType;
|
||||
default = [ ];
|
||||
description = ''
|
||||
List of transitions out of this state.
|
||||
If left empty, then this state is considered a terminal state and entering it will
|
||||
trigger an immediate transition back to the root state (after processing side effects).
|
||||
'';
|
||||
visible = "shallow";
|
||||
};
|
||||
};
|
||||
cfg = config.services.bonsaid;
|
||||
in
|
||||
{
|
||||
meta.maintainers = [ lib.maintainers.colinsane ];
|
||||
|
||||
options.services.bonsaid = {
|
||||
enable = lib.mkEnableOption "bonsaid";
|
||||
package = lib.mkPackageOption pkgs "bonsai" { };
|
||||
extraFlags = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [ ];
|
||||
description = ''
|
||||
Extra flags to pass to `bonsaid`, such as `[ "-v" ]` to enable verbose logging.
|
||||
'';
|
||||
};
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.listOf transitionType;
|
||||
description = ''
|
||||
State transition definitions. See the upstream [README](https://git.sr.ht/~stacyharper/bonsai)
|
||||
for extended documentation and a more complete example.
|
||||
'';
|
||||
example = [
|
||||
{
|
||||
type = "event";
|
||||
event_name = "power_button_pressed";
|
||||
transitions = [
|
||||
{
|
||||
# Hold power button for 600ms to trigger a command
|
||||
type = "delay";
|
||||
delay_duration = 600000000;
|
||||
transitions = [
|
||||
{
|
||||
type = "exec";
|
||||
command = [
|
||||
"swaymsg"
|
||||
"--"
|
||||
"output"
|
||||
"*"
|
||||
"power"
|
||||
"off"
|
||||
];
|
||||
# `transitions = []` marks this as a terminal state,
|
||||
# so bonsai will return to the root state immediately after executing the above command.
|
||||
transitions = [ ];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
# If the power button is released before the 600ms elapses, return to the root state.
|
||||
type = "event";
|
||||
event_name = "power_button_released";
|
||||
transitions = [ ];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
configFile = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = ''
|
||||
Path to a .json file specifying the state transitions.
|
||||
You don't need to set this unless you prefer to provide the json file
|
||||
yourself instead of using the `settings` option.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.bonsaid.configFile =
|
||||
let
|
||||
filterNulls =
|
||||
v:
|
||||
if lib.isAttrs v then
|
||||
lib.mapAttrs (_: filterNulls) (lib.filterAttrs (_: a: a != null) v)
|
||||
else if lib.isList v then
|
||||
lib.map filterNulls (lib.filter (a: a != null) v)
|
||||
else
|
||||
v;
|
||||
in
|
||||
lib.mkDefault (json.generate "bonsai_tree.json" (filterNulls cfg.settings));
|
||||
|
||||
# bonsaid is controlled by bonsaictl, so place the latter in the environment by default.
|
||||
# bonsaictl is typically invoked by scripts or a DE so this isn't strictly necesssary,
|
||||
# but it's helpful while administering the service generally.
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
systemd.user.services.bonsaid = {
|
||||
description = "Bonsai Finite State Machine daemon";
|
||||
documentation = [ "https://git.sr.ht/~stacyharper/bonsai" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = lib.escapeShellArgs (
|
||||
[
|
||||
(lib.getExe' cfg.package "bonsaid")
|
||||
"-t"
|
||||
cfg.configFile
|
||||
]
|
||||
++ cfg.extraFlags
|
||||
);
|
||||
Restart = "on-failure";
|
||||
RestartSec = "5s";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
37
nixos/modules/services/hardware/inputplumber.nix
Normal file
37
nixos/modules/services/hardware/inputplumber.nix
Normal file
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.inputplumber;
|
||||
in
|
||||
{
|
||||
options.services.inputplumber = {
|
||||
enable = lib.mkEnableOption "InputPlumber";
|
||||
package = lib.mkPackageOption pkgs "inputplumber" { };
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
systemd.services.inputplumber = {
|
||||
description = "InputPlumber Service";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
environment = {
|
||||
XDG_DATA_DIRS = "/run/current-system/sw/share";
|
||||
};
|
||||
restartIfChanged = true;
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${lib.getExe cfg.package}";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "5";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ shadowapex ];
|
||||
}
|
97
nixos/modules/services/networking/modemmanager.nix
Normal file
97
nixos/modules/services/networking/modemmanager.nix
Normal file
|
@ -0,0 +1,97 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.networking.modemmanager;
|
||||
in
|
||||
{
|
||||
meta = {
|
||||
maintainers = lib.teams.freedesktop.members;
|
||||
};
|
||||
|
||||
options = with lib; {
|
||||
networking.modemmanager = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to use ModemManager to manage modem devices.
|
||||
This is usually used by some higher layer manager such as NetworkManager
|
||||
but can be used standalone especially if using a modem for non-IP
|
||||
connectivity (e.g. GPS).
|
||||
'';
|
||||
};
|
||||
|
||||
package = mkPackageOption pkgs "modemmanager" { };
|
||||
|
||||
fccUnlockScripts = mkOption {
|
||||
type = types.listOf (
|
||||
types.submodule {
|
||||
options = {
|
||||
id = mkOption {
|
||||
type = types.str;
|
||||
description = "vid:pid of either the PCI or USB vendor and product ID";
|
||||
};
|
||||
path = mkOption {
|
||||
type = types.path;
|
||||
description = "Path to the unlock script";
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
default = [ ];
|
||||
example = literalExpression ''[{ id = "03f0:4e1d"; path = "''${pkgs.modemmanager}/share/ModemManager/fcc-unlock.available.d/03f0:4e1d"; }]'';
|
||||
description = ''
|
||||
List of FCC unlock scripts to enable on the system, behaving as described in
|
||||
https://modemmanager.org/docs/modemmanager/fcc-unlock/#integration-with-third-party-fcc-unlock-tools.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.etc = builtins.listToAttrs (
|
||||
map (
|
||||
e:
|
||||
lib.nameValuePair "ModemManager/fcc-unlock.d/${e.id}" {
|
||||
source = e.path;
|
||||
}
|
||||
) cfg.fccUnlockScripts
|
||||
);
|
||||
|
||||
systemd.services.ModemManager = {
|
||||
aliases = [ "dbus-org.freedesktop.ModemManager1.service" ];
|
||||
path = lib.optionals (cfg.fccUnlockScripts != [ ]) [
|
||||
pkgs.libqmi
|
||||
pkgs.libmbim
|
||||
];
|
||||
};
|
||||
|
||||
/*
|
||||
[modem-manager]
|
||||
Identity=unix-group:networkmanager
|
||||
Action=org.freedesktop.ModemManager*
|
||||
ResultAny=yes
|
||||
ResultInactive=no
|
||||
ResultActive=yes
|
||||
*/
|
||||
security.polkit.enable = true;
|
||||
security.polkit.extraConfig = ''
|
||||
polkit.addRule(function(action, subject) {
|
||||
if (
|
||||
subject.isInGroup("networkmanager")
|
||||
&& action.id.indexOf("org.freedesktop.ModemManager") == 0
|
||||
)
|
||||
{ return polkit.Result.YES; }
|
||||
});
|
||||
'';
|
||||
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
systemd.packages = [ cfg.package ];
|
||||
services.dbus.packages = [ cfg.package ];
|
||||
services.udev.packages = [ cfg.package ];
|
||||
};
|
||||
}
|
|
@ -1,4 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
|
@ -15,14 +20,10 @@ let
|
|||
plugins = "keyfile";
|
||||
inherit (cfg) dhcp dns;
|
||||
# If resolvconf is disabled that means that resolv.conf is managed by some other module.
|
||||
rc-manager =
|
||||
if config.networking.resolvconf.enable then "resolvconf"
|
||||
else "unmanaged";
|
||||
rc-manager = if config.networking.resolvconf.enable then "resolvconf" else "unmanaged";
|
||||
};
|
||||
keyfile = {
|
||||
unmanaged-devices =
|
||||
if cfg.unmanaged == [ ] then null
|
||||
else lib.concatStringsSep ";" cfg.unmanaged;
|
||||
unmanaged-devices = if cfg.unmanaged == [ ] then null else lib.concatStringsSep ";" cfg.unmanaged;
|
||||
};
|
||||
logging = {
|
||||
audit = config.security.audit.enable;
|
||||
|
@ -43,32 +44,29 @@ let
|
|||
ResultAny=yes
|
||||
ResultInactive=no
|
||||
ResultActive=yes
|
||||
|
||||
[modem-manager]
|
||||
Identity=unix-group:networkmanager
|
||||
Action=org.freedesktop.ModemManager*
|
||||
ResultAny=yes
|
||||
ResultInactive=no
|
||||
ResultActive=yes
|
||||
*/
|
||||
polkitConf = ''
|
||||
polkit.addRule(function(action, subject) {
|
||||
if (
|
||||
subject.isInGroup("networkmanager")
|
||||
&& (action.id.indexOf("org.freedesktop.NetworkManager.") == 0
|
||||
|| action.id.indexOf("org.freedesktop.ModemManager") == 0
|
||||
))
|
||||
&& action.id.indexOf("org.freedesktop.NetworkManager.") == 0
|
||||
)
|
||||
{ return polkit.Result.YES; }
|
||||
});
|
||||
'';
|
||||
|
||||
ns = xs: pkgs.writeText "nameservers" (
|
||||
concatStrings (map (s: "nameserver ${s}\n") xs)
|
||||
);
|
||||
ns = xs: pkgs.writeText "nameservers" (concatStrings (map (s: "nameserver ${s}\n") xs));
|
||||
|
||||
overrideNameserversScript = pkgs.writeScript "02overridedns" ''
|
||||
#!/bin/sh
|
||||
PATH=${with pkgs; makeBinPath [ gnused gnugrep coreutils ]}
|
||||
PATH=${
|
||||
with pkgs;
|
||||
makeBinPath [
|
||||
gnused
|
||||
gnugrep
|
||||
coreutils
|
||||
]
|
||||
}
|
||||
tmp=$(mktemp)
|
||||
sed '/nameserver /d' /etc/resolv.conf > $tmp
|
||||
grep 'nameserver ' /etc/resolv.conf | \
|
||||
|
@ -84,7 +82,15 @@ let
|
|||
};
|
||||
|
||||
macAddressOptWifi = mkOption {
|
||||
type = types.either types.str (types.enum [ "permanent" "preserve" "random" "stable" "stable-ssid" ]);
|
||||
type = types.either types.str (
|
||||
types.enum [
|
||||
"permanent"
|
||||
"preserve"
|
||||
"random"
|
||||
"stable"
|
||||
"stable-ssid"
|
||||
]
|
||||
);
|
||||
default = "preserve";
|
||||
example = "00:11:22:33:44:55";
|
||||
description = ''
|
||||
|
@ -100,7 +106,14 @@ let
|
|||
};
|
||||
|
||||
macAddressOptEth = mkOption {
|
||||
type = types.either types.str (types.enum [ "permanent" "preserve" "random" "stable" ]);
|
||||
type = types.either types.str (
|
||||
types.enum [
|
||||
"permanent"
|
||||
"preserve"
|
||||
"random"
|
||||
"stable"
|
||||
]
|
||||
);
|
||||
default = "preserve";
|
||||
example = "00:11:22:33:44:55";
|
||||
description = ''
|
||||
|
@ -114,9 +127,9 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
packages = [
|
||||
pkgs.modemmanager
|
||||
pkgs.networkmanager
|
||||
packages =
|
||||
[
|
||||
cfg.package
|
||||
]
|
||||
++ cfg.plugins
|
||||
++ lib.optionals (!delegateWireless && !enableIwd) [
|
||||
|
@ -148,12 +161,18 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
package = mkPackageOption pkgs "networkmanager" { };
|
||||
|
||||
connectionConfig = mkOption {
|
||||
type = with types; attrsOf (nullOr (oneOf [
|
||||
type =
|
||||
with types;
|
||||
attrsOf (
|
||||
nullOr (oneOf [
|
||||
bool
|
||||
int
|
||||
str
|
||||
]));
|
||||
])
|
||||
);
|
||||
default = { };
|
||||
description = ''
|
||||
Configuration for the [connection] section of NetworkManager.conf.
|
||||
|
@ -205,9 +224,7 @@ in
|
|||
check =
|
||||
p:
|
||||
lib.assertMsg
|
||||
(types.package.check p
|
||||
&& p ? networkManagerPlugin
|
||||
&& lib.isString p.networkManagerPlugin)
|
||||
(types.package.check p && p ? networkManagerPlugin && lib.isString p.networkManagerPlugin)
|
||||
''
|
||||
Package ‘${p.name}’, is not a NetworkManager plug-in.
|
||||
Those need to have a ‘networkManagerPlugin’ attribute.
|
||||
|
@ -223,7 +240,10 @@ in
|
|||
};
|
||||
|
||||
dhcp = mkOption {
|
||||
type = types.enum [ "dhcpcd" "internal" ];
|
||||
type = types.enum [
|
||||
"dhcpcd"
|
||||
"internal"
|
||||
];
|
||||
default = "internal";
|
||||
description = ''
|
||||
Which program (or internal library) should be used for DHCP.
|
||||
|
@ -231,7 +251,14 @@ in
|
|||
};
|
||||
|
||||
logLevel = mkOption {
|
||||
type = types.enum [ "OFF" "ERR" "WARN" "INFO" "DEBUG" "TRACE" ];
|
||||
type = types.enum [
|
||||
"OFF"
|
||||
"ERR"
|
||||
"WARN"
|
||||
"INFO"
|
||||
"DEBUG"
|
||||
"TRACE"
|
||||
];
|
||||
default = "WARN";
|
||||
description = ''
|
||||
Set the default logging verbosity level.
|
||||
|
@ -262,7 +289,10 @@ in
|
|||
macAddress = macAddressOptWifi;
|
||||
|
||||
backend = mkOption {
|
||||
type = types.enum [ "wpa_supplicant" "iwd" ];
|
||||
type = types.enum [
|
||||
"wpa_supplicant"
|
||||
"iwd"
|
||||
];
|
||||
default = "wpa_supplicant";
|
||||
description = ''
|
||||
Specify the Wi-Fi backend used for the device.
|
||||
|
@ -289,7 +319,12 @@ in
|
|||
};
|
||||
|
||||
dns = mkOption {
|
||||
type = types.enum [ "default" "dnsmasq" "systemd-resolved" "none" ];
|
||||
type = types.enum [
|
||||
"default"
|
||||
"dnsmasq"
|
||||
"systemd-resolved"
|
||||
"none"
|
||||
];
|
||||
default = "default";
|
||||
description = ''
|
||||
Set the DNS (`resolv.conf`) processing mode.
|
||||
|
@ -304,7 +339,8 @@ in
|
|||
};
|
||||
|
||||
dispatcherScripts = mkOption {
|
||||
type = types.listOf (types.submodule {
|
||||
type = types.listOf (
|
||||
types.submodule {
|
||||
options = {
|
||||
source = mkOption {
|
||||
type = types.path;
|
||||
|
@ -324,7 +360,8 @@ in
|
|||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
}
|
||||
);
|
||||
default = [ ];
|
||||
example = literalExpression ''
|
||||
[ {
|
||||
|
@ -358,28 +395,10 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
fccUnlockScripts = mkOption {
|
||||
type = types.listOf (types.submodule {
|
||||
options = {
|
||||
id = mkOption {
|
||||
type = types.str;
|
||||
description = "vid:pid of either the PCI or USB vendor and product ID";
|
||||
};
|
||||
path = mkOption {
|
||||
type = types.path;
|
||||
description = "Path to the unlock script";
|
||||
};
|
||||
};
|
||||
});
|
||||
default = [ ];
|
||||
example = literalExpression ''[{ id = "03f0:4e1d"; path = "''${pkgs.modemmanager}/share/ModemManager/fcc-unlock.available.d/03f0:4e1d"; }]'';
|
||||
description = ''
|
||||
List of FCC unlock scripts to enable on the system, behaving as described in
|
||||
https://modemmanager.org/docs/modemmanager/fcc-unlock/#integration-with-third-party-fcc-unlock-tools.
|
||||
'';
|
||||
};
|
||||
ensureProfiles = {
|
||||
profiles = with lib.types; mkOption {
|
||||
profiles =
|
||||
with lib.types;
|
||||
mkOption {
|
||||
type = attrsOf (submodule {
|
||||
freeformType = ini.type;
|
||||
|
||||
|
@ -473,14 +492,13 @@ in
|
|||
+ settings.main.no-auto-default = "*";
|
||||
};
|
||||
```
|
||||
''
|
||||
)
|
||||
'')
|
||||
(mkRemovedOptionModule [ "networking" "networkmanager" "enableFccUnlock" ] ''
|
||||
This option was removed, because using bundled FCC unlock scripts is risky,
|
||||
might conflict with vendor-provided unlock scripts, and should
|
||||
be a conscious decision on a per-device basis.
|
||||
Instead it's recommended to use the
|
||||
`networking.networkmanager.fccUnlockScripts` option.
|
||||
`networking.modemmanager.fccUnlockScripts` option.
|
||||
'')
|
||||
(mkRemovedOptionModule [ "networking" "networkmanager" "dynamicHosts" ] ''
|
||||
This option was removed because allowing (multiple) regular users to
|
||||
|
@ -493,9 +511,12 @@ in
|
|||
(mkRemovedOptionModule [ "networking" "networkmanager" "firewallBackend" ] ''
|
||||
This option was removed as NixOS is now using iptables-nftables-compat even when using iptables, therefore Networkmanager now uses the nftables backend unconditionally.
|
||||
'')
|
||||
(mkRenamedOptionModule
|
||||
[ "networking" "networkmanager" "fccUnlockScripts" ]
|
||||
[ "networking" "modemmanager" "fccUnlockScripts" ]
|
||||
)
|
||||
];
|
||||
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
@ -512,7 +533,8 @@ in
|
|||
|
||||
hardware.wirelessRegulatoryDatabase = true;
|
||||
|
||||
environment.etc = {
|
||||
environment.etc =
|
||||
{
|
||||
"NetworkManager/NetworkManager.conf".source = configFile;
|
||||
|
||||
# The networkmanager-l2tp plugin expects /etc/ipsec.secrets to include /etc/ipsec.d/ipsec.nm-l2tp.secrets;
|
||||
|
@ -521,27 +543,28 @@ in
|
|||
include ipsec.d/ipsec.nm-l2tp.secrets
|
||||
'';
|
||||
}
|
||||
// builtins.listToAttrs (map
|
||||
(pkg: nameValuePair "NetworkManager/${pkg.networkManagerPlugin}" {
|
||||
// builtins.listToAttrs (
|
||||
map (
|
||||
pkg:
|
||||
nameValuePair "NetworkManager/${pkg.networkManagerPlugin}" {
|
||||
source = "${pkg}/lib/NetworkManager/${pkg.networkManagerPlugin}";
|
||||
})
|
||||
cfg.plugins)
|
||||
// builtins.listToAttrs (map
|
||||
(e: nameValuePair "ModemManager/fcc-unlock.d/${e.id}" {
|
||||
source = e.path;
|
||||
})
|
||||
cfg.fccUnlockScripts)
|
||||
// optionalAttrs (cfg.appendNameservers != [ ] || cfg.insertNameservers != [ ])
|
||||
{
|
||||
}
|
||||
) cfg.plugins
|
||||
)
|
||||
// optionalAttrs (cfg.appendNameservers != [ ] || cfg.insertNameservers != [ ]) {
|
||||
"NetworkManager/dispatcher.d/02overridedns".source = overrideNameserversScript;
|
||||
}
|
||||
// listToAttrs (lib.imap1
|
||||
(i: s:
|
||||
{
|
||||
name = "NetworkManager/dispatcher.d/${dispatcherTypesSubdirMap.${s.type}}03userscript${lib.fixedWidthNumber 4 i}";
|
||||
value = { mode = "0544"; inherit (s) source; };
|
||||
})
|
||||
cfg.dispatcherScripts);
|
||||
// listToAttrs (
|
||||
lib.imap1 (i: s: {
|
||||
name = "NetworkManager/dispatcher.d/${
|
||||
dispatcherTypesSubdirMap.${s.type}
|
||||
}03userscript${lib.fixedWidthNumber 4 i}";
|
||||
value = {
|
||||
mode = "0544";
|
||||
inherit (s) source;
|
||||
};
|
||||
}) cfg.dispatcherScripts
|
||||
);
|
||||
|
||||
environment.systemPackages = packages;
|
||||
|
||||
|
@ -590,17 +613,19 @@ in
|
|||
wantedBy = [ "network-online.target" ];
|
||||
};
|
||||
|
||||
systemd.services.ModemManager = {
|
||||
aliases = [ "dbus-org.freedesktop.ModemManager1.service" ];
|
||||
path = lib.optionals (cfg.fccUnlockScripts != []) [ pkgs.libqmi pkgs.libmbim ];
|
||||
};
|
||||
|
||||
systemd.services.NetworkManager-dispatcher = {
|
||||
wantedBy = [ "network.target" ];
|
||||
restartTriggers = [ configFile overrideNameserversScript ];
|
||||
restartTriggers = [
|
||||
configFile
|
||||
overrideNameserversScript
|
||||
];
|
||||
|
||||
# useful binaries for user-specified hooks
|
||||
path = [ pkgs.iproute2 pkgs.util-linux pkgs.coreutils ];
|
||||
path = [
|
||||
pkgs.iproute2
|
||||
pkgs.util-linux
|
||||
pkgs.coreutils
|
||||
];
|
||||
aliases = [ "dbus-org.freedesktop.nm-dispatcher.service" ];
|
||||
};
|
||||
|
||||
|
@ -609,16 +634,18 @@ in
|
|||
wantedBy = [ "multi-user.target" ];
|
||||
before = [ "network-online.target" ];
|
||||
after = [ "NetworkManager.service" ];
|
||||
script = let
|
||||
script =
|
||||
let
|
||||
path = id: "/run/NetworkManager/system-connections/${id}.nmconnection";
|
||||
in ''
|
||||
in
|
||||
''
|
||||
mkdir -p /run/NetworkManager/system-connections
|
||||
'' + lib.concatMapStringsSep "\n"
|
||||
(profile: ''
|
||||
''
|
||||
+ lib.concatMapStringsSep "\n" (profile: ''
|
||||
${pkgs.envsubst}/bin/envsubst -i ${ini.generate (lib.escapeShellArg profile.n) profile.v} > ${path (lib.escapeShellArg profile.n)}
|
||||
'') (lib.mapAttrsToList (n: v: { inherit n v; }) cfg.ensureProfiles.profiles)
|
||||
+ ''
|
||||
${pkgs.networkmanager}/bin/nmcli connection reload
|
||||
${cfg.package}/bin/nmcli connection reload
|
||||
'';
|
||||
serviceConfig = {
|
||||
EnvironmentFile = cfg.ensureProfiles.environmentFiles;
|
||||
|
@ -654,13 +681,18 @@ in
|
|||
})
|
||||
|
||||
{
|
||||
modemmanager.enable = lib.mkDefault true;
|
||||
|
||||
networkmanager.connectionConfig = {
|
||||
"ethernet.cloned-mac-address" = cfg.ethernet.macAddress;
|
||||
"wifi.cloned-mac-address" = cfg.wifi.macAddress;
|
||||
"wifi.powersave" =
|
||||
if cfg.wifi.powersave == null then null
|
||||
else if cfg.wifi.powersave then 3
|
||||
else 2;
|
||||
if cfg.wifi.powersave == null then
|
||||
null
|
||||
else if cfg.wifi.powersave then
|
||||
3
|
||||
else
|
||||
2;
|
||||
};
|
||||
}
|
||||
];
|
||||
|
@ -670,7 +702,8 @@ in
|
|||
security.polkit.enable = true;
|
||||
security.polkit.extraConfig = polkitConf;
|
||||
|
||||
services.dbus.packages = packages
|
||||
services.dbus.packages =
|
||||
packages
|
||||
++ optional cfg.enableStrongSwan pkgs.strongswanNM
|
||||
++ optional (cfg.dns == "dnsmasq") pkgs.dnsmasq;
|
||||
|
||||
|
|
|
@ -512,6 +512,17 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
updateDaemon = {
|
||||
commandFlags = mkOption {
|
||||
type = types.str;
|
||||
default = "--quiet";
|
||||
description = ''
|
||||
Command-line flags passed to the update daemon.
|
||||
The default --quiet flag mutes all logging, including errors.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
|
@ -622,7 +633,7 @@ let
|
|||
serviceConfig = {
|
||||
User = "${cfg.user}";
|
||||
Group = "tt_rss";
|
||||
ExecStart = "${phpPackage}/bin/php ${cfg.root}/www/update.php --daemon --quiet";
|
||||
ExecStart = "${phpPackage}/bin/php ${cfg.root}/www/update.php --daemon ${cfg.updateDaemon.commandFlags}";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "60";
|
||||
SyslogIdentifier = "tt-rss";
|
||||
|
|
|
@ -1095,6 +1095,7 @@ in {
|
|||
trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
|
||||
tsm-client-gui = handleTest ./tsm-client-gui.nix {};
|
||||
ttyd = handleTest ./web-servers/ttyd.nix {};
|
||||
tt-rss = handleTest ./web-apps/tt-rss.nix {};
|
||||
txredisapi = handleTest ./txredisapi.nix {};
|
||||
tuptime = handleTest ./tuptime.nix {};
|
||||
turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {};
|
||||
|
|
22
nixos/tests/web-apps/tt-rss.nix
Normal file
22
nixos/tests/web-apps/tt-rss.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
import ../make-test-python.nix (
|
||||
{ ... }:
|
||||
{
|
||||
name = "tt-rss-nixos";
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.tt-rss = {
|
||||
enable = true;
|
||||
virtualHost = "localhost";
|
||||
selfUrlPath = "http://localhost/";
|
||||
singleUserMode = true;
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("tt-rss.service")
|
||||
machine.succeed("curl -sSfL http://localhost/ | grep 'Tiny Tiny RSS'")
|
||||
'';
|
||||
}
|
||||
)
|
|
@ -60,15 +60,7 @@ rustPlatform.buildRustPackage rec {
|
|||
};
|
||||
|
||||
buildType = "production";
|
||||
|
||||
cargoBuildFlags = [
|
||||
"-p"
|
||||
"polkadot"
|
||||
"-p"
|
||||
"polkadot-omni-node"
|
||||
"-p"
|
||||
"polkadot-parachain-bin"
|
||||
];
|
||||
buildAndTestSubdir = "polkadot";
|
||||
|
||||
# NOTE: tests currently fail to compile due to an issue with cargo-auditable
|
||||
# and resolution of features flags, potentially related to this:
|
||||
|
@ -100,8 +92,8 @@ rustPlatform.buildRustPackage rec {
|
|||
ROCKSDB_LIB_DIR = "${rocksdb}/lib";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Polkadot Node Implementation";
|
||||
homepage = "https://polkadot.network";
|
||||
description = "Implementation of a https://polkadot.network node in Rust based on the Substrate framework";
|
||||
homepage = "https://github.com/paritytech/polkadot-sdk";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [
|
||||
akru
|
||||
|
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
melpaBuild {
|
||||
pname = "edraw";
|
||||
version = "1.2.0-unstable-2024-10-04";
|
||||
version = "1.2.0-unstable-2024-12-18";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "misohena";
|
||||
repo = "el-easydraw";
|
||||
rev = "ad740d87e768052b0ef5b5e7f0822c7ac1b238fb";
|
||||
hash = "sha256-xdyDikE8fUQ12Ra5j5lQUHVLKpTYtvfn1DosusQt61Q=";
|
||||
rev = "1c46469d0ea3642958eaf7cea1016fcf05b4daec";
|
||||
hash = "sha256-Z7LPC112FXHtDop1HXPnR6S+cSqfEW1HuYS8YD/qM+c=";
|
||||
};
|
||||
|
||||
propagatedUserEnvPkgs = [ gzip ];
|
||||
|
|
|
@ -10,16 +10,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "aiken";
|
||||
version = "1.1.7";
|
||||
version = "1.1.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aiken-lang";
|
||||
repo = "aiken";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-dcJrLzdj4YK5CZ0jk+gqiqIj1ngq7443y8FVo6ajaz8=";
|
||||
hash = "sha256-Zu7t6DmQ9A7prv9ybhDgVPVisM0Dnf5CAXIXJHHEBGs=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-KtlqV/I9zqTlMStKQX7o14NuSOLf+dDoi/QJqirxqHY=";
|
||||
cargoHash = "sha256-AVLoGeq+Kld5iLndobcylyS1HAz0FryunTFiR8pR1f4=";
|
||||
|
||||
buildInputs =
|
||||
[ openssl ]
|
||||
|
|
35
pkgs/by-name/au/autoenv/package.nix
Normal file
35
pkgs/by-name/au/autoenv/package.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "autoenv";
|
||||
version = "0-unstable-2024-10-16";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hyperupcall";
|
||||
repo = "autoenv";
|
||||
rev = "90241f182d6a7c96e9de8a25c1eccaf2a2d1b43a";
|
||||
hash = "sha256-vZrsMPhuu+xPVAww04nKyoOl7k0upvpIaxeMrCikDio=";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share
|
||||
cp -R $src $out/share/autoenv
|
||||
chmod +x $out/share/autoenv
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Per-directory shell environments sourced from .env file";
|
||||
homepage = "https://github.com/hyperupcall/autoenv";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.all;
|
||||
maintainers = with lib.maintainers; [ clebs ];
|
||||
};
|
||||
})
|
|
@ -35,6 +35,7 @@ python.pkgs.buildPythonApplication rec {
|
|||
flask-limiter
|
||||
flask-login
|
||||
flask-principal
|
||||
flask-simpleldap
|
||||
flask-wtf
|
||||
iso-639
|
||||
jsonschema
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
stdenv,
|
||||
fetchFromGitLab,
|
||||
meson,
|
||||
mesonEmulatorHook,
|
||||
ninja,
|
||||
pkg-config,
|
||||
libadwaita,
|
||||
|
@ -51,7 +52,8 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
"devdoc"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
nativeBuildInputs =
|
||||
[
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
|
@ -63,6 +65,9 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
docbook-xsl-nons
|
||||
docbook_xml_dtd_43
|
||||
docutils
|
||||
]
|
||||
++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
|
||||
mesonEmulatorHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-nextest";
|
||||
version = "0.9.82";
|
||||
version = "0.9.87";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nextest-rs";
|
||||
repo = "nextest";
|
||||
rev = "cargo-nextest-${version}";
|
||||
hash = "sha256-dtZGTKC9C9akjcD56I2iafPnPEd5MKgoCjB0Rkc53o4=";
|
||||
hash = "sha256-J+84FZfrbv6jp2T9cYgodLZ+TgIAht+uJSVi5ULDGBU=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-3V9o4DmGG4gkqrRfZkcKTJe2Ld2ON9Ne2XJMOVUeFaA=";
|
||||
cargoHash = "sha256-eq+COE9UWDTHZK6dlNqGuoJMUKCNyP5UpAcpk0qAUJI=";
|
||||
|
||||
cargoBuildFlags = [ "-p" "cargo-nextest" ];
|
||||
cargoTestFlags = [ "-p" "cargo-nextest" ];
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
pkg-config,
|
||||
oniguruma,
|
||||
stdenv,
|
||||
apple-sdk_11,
|
||||
git,
|
||||
zlib,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
|
@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
|
|||
oniguruma
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
apple-sdk_11
|
||||
zlib
|
||||
];
|
||||
|
||||
nativeCheckInputs = [ git ];
|
||||
|
|
29
pkgs/by-name/es/esp-generate/package.nix
Normal file
29
pkgs/by-name/es/esp-generate/package.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "esp-generate";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "esp-rs";
|
||||
repo = "esp-generate";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-vfHORu0C3vK7a9jv1Wj+XjqM7mR8/t0N4x3hfARdxaw=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-hYgEZvRXXhgzuNuSu4ytrlWDwlVYX6R46agu+BxrbEo=";
|
||||
|
||||
meta = {
|
||||
description = "Template generation tool to create no_std applications targeting Espressif's chips";
|
||||
homepage = "https://github.com/esp-rs/esp-generate";
|
||||
license = with lib.licenses; [
|
||||
mit # or
|
||||
asl20
|
||||
];
|
||||
maintainers = [ lib.maintainers.eymeric ];
|
||||
};
|
||||
}
|
|
@ -3,7 +3,6 @@
|
|||
stdenv,
|
||||
fetchurl,
|
||||
boost,
|
||||
gfortran,
|
||||
lhapdf,
|
||||
ncurses,
|
||||
perl,
|
||||
|
@ -35,23 +34,26 @@ stdenv.mkDerivation rec {
|
|||
./yoda2_support.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
lhapdf # lhapdf-config
|
||||
yoda # yoda-config
|
||||
] ++ lib.optional withPython python;
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
boost
|
||||
gfortran
|
||||
gfortran.cc.lib
|
||||
lhapdf
|
||||
yoda
|
||||
]
|
||||
++ lib.optional withPython python
|
||||
++ lib.optional (withPython && python.isPy3k) ncurses;
|
||||
|
||||
propagatedNativeBuildInputs = lib.optional withPython [ swig ];
|
||||
propagatedBuildInputs =
|
||||
[
|
||||
zlib
|
||||
]
|
||||
++ lib.optional withPython [
|
||||
swig
|
||||
python.pkgs.distutils
|
||||
];
|
||||
|
||||
|
@ -68,6 +70,8 @@ stdenv.mkDerivation rec {
|
|||
"--with-yoda=${yoda}"
|
||||
] ++ lib.optional withPython "--enable-pyext";
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
doCheck = true;
|
||||
|
|
|
@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
|
|||
|
||||
buildInputs = [ perl ];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
|
@ -31,9 +33,15 @@ stdenv.mkDerivation rec {
|
|||
|
||||
doCheck = true;
|
||||
|
||||
nativeCheckInputs = [
|
||||
perl
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
patchShebangs ./test.sh
|
||||
runHook preCheck
|
||||
patchShebangs --build ./test.sh
|
||||
./test.sh
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -56,12 +56,10 @@ stdenv.mkDerivation rec {
|
|||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream-glib
|
||||
desktop-file-utils
|
||||
gettext
|
||||
gobject-introspection
|
||||
itstool
|
||||
libxml2
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
|
@ -72,6 +70,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
buildInputs = [
|
||||
adwaita-icon-theme
|
||||
appstream-glib
|
||||
enchant2
|
||||
folks
|
||||
gcr
|
||||
|
@ -91,6 +90,7 @@ stdenv.mkDerivation rec {
|
|||
libsecret
|
||||
libunwind
|
||||
libstemmer
|
||||
libxml2
|
||||
libytnef
|
||||
sqlite
|
||||
webkitgtk_4_1
|
||||
|
@ -109,6 +109,8 @@ stdenv.mkDerivation rec {
|
|||
"-Dcontractor=enabled" # install the contractor file (Pantheon specific)
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
# NOTE: Remove `build-auxyaml_to_json.py` when no longer needed, see:
|
||||
# https://gitlab.gnome.org/GNOME/geary/commit/f7f72143e0f00ca5e0e6a798691805c53976ae31#0cc1139e3347f573ae1feee5b73dbc8a8a21fcfa
|
||||
postPatch = ''
|
||||
|
|
136
pkgs/by-name/gl/glpi-agent/package.nix
Normal file
136
pkgs/by-name/gl/glpi-agent/package.nix
Normal file
|
@ -0,0 +1,136 @@
|
|||
{
|
||||
lib,
|
||||
perlPackages,
|
||||
nix,
|
||||
dmidecode,
|
||||
pciutils,
|
||||
usbutils,
|
||||
iproute2,
|
||||
nettools,
|
||||
fetchFromGitHub,
|
||||
makeWrapper,
|
||||
versionCheckHook,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
perlPackages.buildPerlPackage rec {
|
||||
pname = "glpi-agent";
|
||||
version = "1.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "glpi-project";
|
||||
repo = "glpi-agent";
|
||||
tag = version;
|
||||
hash = "sha256-WdQ+/ZnMCRqLZK64oJNoR9dtMPq+CghsA8NUwt3EpjA=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs bin
|
||||
|
||||
substituteInPlace lib/GLPI/Agent/Tools/Linux.pm \
|
||||
--replace-fail "/sbin/ip" $"{iproute2}/sbin/ip"
|
||||
substituteInPlace lib/GLPI/Agent/Task/Inventory/Linux/Networks.pm \
|
||||
--replace-fail "/sbin/ip" "${iproute2}/sbin/ip"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = (
|
||||
with perlPackages;
|
||||
[
|
||||
CGI
|
||||
DataStructureUtil
|
||||
FileCopyRecursive
|
||||
HTTPProxy
|
||||
HTTPServerSimple
|
||||
HTTPServerSimpleAuthen
|
||||
IOCapture
|
||||
IOSocketSSL
|
||||
IPCRun
|
||||
JSON
|
||||
LWPProtocolHttps
|
||||
ModuleInstall
|
||||
NetSNMP
|
||||
TestCompile
|
||||
TestDeep
|
||||
TestException
|
||||
TestMockModule
|
||||
TestMockObject
|
||||
TestNoWarnings
|
||||
CpanelJSONXS
|
||||
XMLLibXML
|
||||
NetPing
|
||||
ParallelForkManager
|
||||
DigestSHA1
|
||||
CryptDES
|
||||
FileCopyRecursive
|
||||
URIEscapeXS
|
||||
DateTime
|
||||
DataUUID
|
||||
URI
|
||||
HTTPDaemon
|
||||
YAML
|
||||
IOCompress
|
||||
]
|
||||
);
|
||||
|
||||
propagatedBuildInputs = with perlPackages; [
|
||||
FileWhich
|
||||
LWP
|
||||
NetIP
|
||||
TextTemplate
|
||||
UNIVERSALrequire
|
||||
XMLTreePP
|
||||
CompressRawZlib
|
||||
HTTPDaemon
|
||||
ProcDaemon
|
||||
ProcPIDFile
|
||||
];
|
||||
|
||||
# Test fails due to "Argument list too long"
|
||||
doCheck = false;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
|
||||
cp -r bin $out
|
||||
cp -r lib $out
|
||||
cp -r share $out
|
||||
|
||||
for cur in $out/bin/*; do
|
||||
if [ -x "$cur" ]; then
|
||||
sed -e "s|./lib|$out/lib|" -i "$cur"
|
||||
wrapProgram "$cur" --prefix PATH : ${
|
||||
lib.makeBinPath [
|
||||
nix
|
||||
dmidecode
|
||||
pciutils
|
||||
usbutils
|
||||
nettools
|
||||
iproute2
|
||||
]
|
||||
}
|
||||
fi
|
||||
done
|
||||
'';
|
||||
|
||||
outputs = [ "out" ];
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
versionCheckHook
|
||||
];
|
||||
versionCheckProgramArg = [ "--version" ];
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "GLPI unified Agent for UNIX, Linux, Windows and MacOSX";
|
||||
homepage = "https://glpi-project.org/";
|
||||
changelog = "https://github.com/glpi-project/glpi-agent/releases/tag/${src.tag}";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [ liberodark ];
|
||||
mainProgram = "glpi-agent";
|
||||
};
|
||||
}
|
|
@ -9,15 +9,15 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "goperf";
|
||||
version = "0-unstable-2024-11-18";
|
||||
version = "0-unstable-2024-12-04";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://go.googlesource.com/perf";
|
||||
rev = "34caac8501763e3ea700ee019bf2c29671a30c55";
|
||||
hash = "sha256-b46zDtBlNpVMTwXTL9sYSpfEVJ87P2ZRQ7MVhOI0r/s=";
|
||||
rev = "711ff2ab72314f5a878a356d9ff7ab8460de731f";
|
||||
hash = "sha256-T0LHlO9ObVJ68pERkY+6eJCxY+Lj9eHvOxlCRevwbuE=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-5cGgUTruCdfDhvLxXzl5gg2BtAC8HU7ZBL7Niw++HZ0=";
|
||||
vendorHash = "sha256-OrrciJqJLTMM+yF9SD/eRucwOrfcZuuyR+xE6+DlYpo=";
|
||||
|
||||
passthru.updateScript = writeShellScript "update-goperf" ''
|
||||
export UPDATE_NIX_ATTR_PATH=goperf
|
||||
|
|
32
pkgs/by-name/ho/hosts-bl/package.nix
Normal file
32
pkgs/by-name/ho/hosts-bl/package.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "hosts-bl";
|
||||
version = "0-unstable-2024-11-17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ScriptTiger";
|
||||
repo = "Hosts-BL";
|
||||
rev = "b3ac0a50fce8e714e754a17e6a11f8709386782c";
|
||||
sha256 = "sha256-w+4dEWwFMjBbeJPOqMrzLBBzPYh/V5SfV2BMrI0p3nw=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
go mod init github.com/ScriptTiger/Hosts-BL
|
||||
'';
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/ScriptTiger/Hosts-BL";
|
||||
description = "Simple tool to handle hosts file black lists";
|
||||
mainProgram = "Hosts-BL";
|
||||
maintainers = [ lib.maintainers.puffnfresh ];
|
||||
platforms = lib.platforms.unix;
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
}
|
|
@ -23,6 +23,11 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
hash = "sha256-SVkcePzX9PAlWsPSGBaxiNFCouiQmGOezhMo0+zhDIQ=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# hyprwayland-scanner is not required at runtime
|
||||
substituteInPlace CMakeLists.txt --replace-fail "hyprwayland-scanner>=0.4.0" ""
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
|
@ -37,6 +42,8 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
wayland-scanner
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
|
48
pkgs/by-name/in/inputplumber/package.nix
Normal file
48
pkgs/by-name/in/inputplumber/package.nix
Normal file
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
udev,
|
||||
libiio,
|
||||
libevdev,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "inputplumber";
|
||||
version = "0.39.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ShadowBlip";
|
||||
repo = "InputPlumber";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-Glq7iJ1AHy99AGXYg5P3wAd3kAMJnt5P2vZzyn7qBY4=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-pcbW/Od5f+hFCrVpH2yioq+qCmlZ1m3TbUc6rBkYCEs=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
rustPlatform.bindgenHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
udev
|
||||
libevdev
|
||||
libiio
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
cp -r rootfs/usr/* $out/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Open source input router and remapper daemon for Linux";
|
||||
homepage = "https://github.com/ShadowBlip/InputPlumber";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
changelog = "https://github.com/ShadowBlip/InputPlumber/releases/tag/v${version}";
|
||||
maintainers = with lib.maintainers; [ shadowapex ];
|
||||
mainProgram = "inputplumber";
|
||||
};
|
||||
}
|
|
@ -8,18 +8,19 @@
|
|||
}:
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "labelle";
|
||||
version = "1.2.3";
|
||||
version = "1.3.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "labelle-org";
|
||||
repo = "labelle";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-nGWffQAXlnKiWBUnSo/IKGdWsLdwLr9N4jAURcVGfj8=";
|
||||
hash = "sha256-+aRq+zwnoHy+kXerFCw1b46OHmWDDpyOiBRu4IvYAQg=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
sed -i 's/hatch-vcs >=0.3.0,<0.4/hatch-vcs >=0.3.0/' pyproject.toml
|
||||
substituteInPlace pyproject.toml --replace-fail "hatch-vcs >=0.3.0,<0.4" "hatch-vcs >=0.3.0"
|
||||
substituteInPlace pyproject.toml --replace-fail "Pillow>=8.1.2,<11" "Pillow>=8.1.2"
|
||||
'';
|
||||
|
||||
buildInputs = [ qt6.qtwayland ];
|
||||
|
@ -27,6 +28,7 @@ python3Packages.buildPythonApplication rec {
|
|||
nativeBuildInputs = [
|
||||
qt6.wrapQtAppsHook
|
||||
python3Packages.hatchling
|
||||
python3Packages.hatch-fancy-pypi-readme
|
||||
python3Packages.hatch-vcs
|
||||
copyDesktopItems
|
||||
];
|
||||
|
|
74
pkgs/by-name/mq/mqttx-cli/package.nix
Normal file
74
pkgs/by-name/mq/mqttx-cli/package.nix
Normal file
|
@ -0,0 +1,74 @@
|
|||
{
|
||||
fetchFromGitHub,
|
||||
fetchYarnDeps,
|
||||
fetchpatch,
|
||||
lib,
|
||||
mqttx-cli,
|
||||
nodejs,
|
||||
stdenv,
|
||||
testers,
|
||||
yarnConfigHook,
|
||||
yarnInstallHook,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "mqttx-cli";
|
||||
version = "1.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "emqx";
|
||||
repo = "MQTTX";
|
||||
rev = "refs/tags/v${finalAttrs.version}";
|
||||
hash = "sha256-IPIiSav6MPJmzetBgVw9fLGPjJ+JKS3oWMEfCJmEY84=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# moves @faker-js/faker from devDependencies to dependencies
|
||||
# because the final package depends on it
|
||||
# https://github.com/emqx/MQTTX/pull/1801
|
||||
(fetchpatch {
|
||||
url = "https://github.com/emqx/MQTTX/commit/3d89c3a08477e9e2b5d83f2a222ceaa8c08e50ce.patch";
|
||||
hash = "sha256-Rd6YpGHsvAYD7/XCJq6dgvGeKfOiLh7IUQFr/AQz0mY=";
|
||||
})
|
||||
];
|
||||
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
yarnLock = "${finalAttrs.src}/cli/yarn.lock";
|
||||
hash = "sha256-vwPwSE6adxM1gkdsJBq3LH2eXze9yXADvnM90LsKjjo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
yarnConfigHook
|
||||
yarnInstallHook
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
cd cli
|
||||
'';
|
||||
|
||||
# Using custom build script instead of `yarnBuildHook`
|
||||
# because it needs `--ignore-engines` before `build`.
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
yarn --offline --ignore-engines build
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
# rename binary so it does not conflict with the desktop app
|
||||
mv $out/bin/mqttx $out/bin/mqttx-cli
|
||||
'';
|
||||
|
||||
passthru.tests.version = testers.testVersion { package = mqttx-cli; };
|
||||
|
||||
meta = {
|
||||
description = "MQTTX Command Line Tools";
|
||||
homepage = "https://mqttx.app/";
|
||||
changelog = "https://mqttx.app/changelogs/v${finalAttrs.version}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ pineapplehunter ];
|
||||
platforms = lib.platforms.all;
|
||||
mainProgram = "mqttx-cli";
|
||||
};
|
||||
})
|
36
pkgs/by-name/na/nanovna-qt/fix-build.patch
Normal file
36
pkgs/by-name/na/nanovna-qt/fix-build.patch
Normal file
|
@ -0,0 +1,36 @@
|
|||
diff --git a/libxavna/xavna_mock_ui/xavna_mock_ui.H b/libxavna/xavna_mock_ui/xavna_mock_ui.H
|
||||
index 333f9ed..819a019 100644
|
||||
--- a/libxavna/xavna_mock_ui/xavna_mock_ui.H
|
||||
+++ b/libxavna/xavna_mock_ui/xavna_mock_ui.H
|
||||
@@ -2,6 +2,7 @@
|
||||
#define XAVNA_MOCK_UI_H
|
||||
|
||||
#include <functional>
|
||||
+#include <string>
|
||||
using namespace std;
|
||||
typedef function<void(string dut_name, double cableLen1, double cableLen2)> xavna_ui_changed_cb;
|
||||
|
||||
diff --git a/vna_qt/firmwareupdater.H b/vna_qt/firmwareupdater.H
|
||||
index 7654211..8b61dfb 100644
|
||||
--- a/vna_qt/firmwareupdater.H
|
||||
+++ b/vna_qt/firmwareupdater.H
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <string>
|
||||
#include <functional>
|
||||
#include <pthread.h>
|
||||
+#include <cstdint>
|
||||
using namespace std;
|
||||
|
||||
class FirmwareUpdater
|
||||
diff --git a/vna_qt/polarview.C b/vna_qt/polarview.C
|
||||
index 8bde6e3..5800463 100644
|
||||
--- a/vna_qt/polarview.C
|
||||
+++ b/vna_qt/polarview.C
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <cmath>
|
||||
#include <QPaintEvent>
|
||||
#include <QPainter>
|
||||
+#include <QPainterPath>
|
||||
PolarView::PolarView(QWidget *parent) : QWidget(parent)
|
||||
{
|
||||
|
78
pkgs/by-name/na/nanovna-qt/package.nix
Normal file
78
pkgs/by-name/na/nanovna-qt/package.nix
Normal file
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
autoreconfHook,
|
||||
libtool,
|
||||
fftw,
|
||||
eigen,
|
||||
qt5,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nanovna-qt";
|
||||
# 20200507 dropped support for NanoVNA V2.2
|
||||
version = "20200403";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nanovna-v2";
|
||||
repo = "NanoVNA-QT";
|
||||
rev = version;
|
||||
hash = "sha256-0nRpjLglCog9e4bSkaNSwjrwmLwut3Ykr3AaYZCaMEs=";
|
||||
};
|
||||
|
||||
patches = [ ./fix-build.patch ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
libtool
|
||||
qt5.wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
fftw
|
||||
eigen
|
||||
qt5.qtbase
|
||||
qt5.qtcharts
|
||||
];
|
||||
|
||||
autoreconfFlags = [ "--install" ];
|
||||
|
||||
postBuild = ''
|
||||
pushd libxavna/xavna_mock_ui/
|
||||
qmake
|
||||
make
|
||||
popd
|
||||
pushd vna_qt/
|
||||
qmake
|
||||
make
|
||||
popd
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -Dm555 vna_qt/vna_qt -t $out/bin/
|
||||
install -Dm555 libxavna/.libs/libxavna.so.0.0.0 -t $out/lib/
|
||||
ln -s libxavna.so.0.0.0 $out/lib/libxavna.so.0
|
||||
ln -s libxavna.so.0.0.0 $out/lib/libxavna.so
|
||||
install -Dm555 libxavna/xavna_mock_ui/libxavna_mock_ui.so.1.0.0 -t $out/lib/
|
||||
ln -s libxavna_mock_ui.so.1.0.0 $out/lib/libxavna_mock_ui.so.1.0
|
||||
ln -s libxavna_mock_ui.so.1.0.0 $out/lib/libxavna_mock_ui.so.1
|
||||
ln -s libxavna_mock_ui.so.1.0.0 $out/lib/libxavna_mock_ui.so
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
qtWrapperArgs+=(--prefix LD_LIBRARY_PATH : "$out/lib")
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "PC GUI software for NanoVNA V2 series";
|
||||
homepage = "https://nanorfe.com/nanovna-v2.html";
|
||||
mainProgram = "vna_qt";
|
||||
license = lib.licenses.gpl2Only;
|
||||
changelog = "https://github.com/nanovna-v2/NanoVNA-QT/releases/tag/v${version}";
|
||||
maintainers = with lib.maintainers; [ chuangzhu ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
|
@ -276,7 +276,10 @@ def reexec(
|
|||
build_attr = BuildAttr.from_arg(args.attr, args.file)
|
||||
drv = nix.build(attr, build_attr, **build_flags, no_out_link=True)
|
||||
except CalledProcessError:
|
||||
logger.warning("could not build a newer version of nixos-rebuild")
|
||||
logger.warning(
|
||||
"could not build a newer version of nixos-rebuild, "
|
||||
+ "using current version"
|
||||
)
|
||||
|
||||
if drv:
|
||||
new = drv / f"bin/{EXECUTABLE}"
|
||||
|
@ -284,14 +287,27 @@ def reexec(
|
|||
if new != current:
|
||||
logging.debug(
|
||||
"detected newer version of script, re-exec'ing, current=%s, new=%s",
|
||||
argv[0],
|
||||
current,
|
||||
new,
|
||||
)
|
||||
# Manually call clean-up functions since os.execve() will replace
|
||||
# the process immediately
|
||||
cleanup_ssh()
|
||||
tmpdir.TMPDIR.cleanup()
|
||||
try:
|
||||
os.execve(new, argv, os.environ | {"_NIXOS_REBUILD_REEXEC": "1"})
|
||||
except Exception:
|
||||
# Possible errors that we can have here:
|
||||
# - Missing the binary
|
||||
# - Exec format error (e.g.: another OS/CPU arch)
|
||||
logger.warning(
|
||||
"could not re-exec in a newer version of nixos-rebuild, "
|
||||
+ "using current version"
|
||||
)
|
||||
logger.debug("re-exec exception", exc_info=True)
|
||||
# We already run clean-up, let's re-exec in the current version
|
||||
# to avoid issues
|
||||
os.execve(current, argv, os.environ | {"_NIXOS_REBUILD_REEXEC": "1"})
|
||||
|
||||
|
||||
def execute(argv: list[str]) -> None:
|
||||
|
|
6803
pkgs/by-name/ob/oboete/Cargo.lock
generated
6803
pkgs/by-name/ob/oboete/Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -13,32 +13,17 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "oboete";
|
||||
version = "0.1.6";
|
||||
version = "0.1.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mariinkys";
|
||||
repo = "oboete";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-tiYZ8xMIxMvRdQCf9+LI2B1lXbJz7MFyyeAOkJR+8Vk=";
|
||||
tag = version;
|
||||
hash = "sha256-W5dd8UNjG2w0N1EngDPK7Q83C2TF9UfW0GGvPaW6nls=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"accesskit-0.12.2" = "sha256-1UwgRyUe0PQrZrpS7574oNLi13fg5HpgILtZGW6JNtQ=";
|
||||
"atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
|
||||
"clipboard_macos-0.1.0" = "sha256-cG5vnkiyDlQnbEfV2sPbmBYKv1hd3pjJrymfZb8ziKk=";
|
||||
"cosmic-config-0.1.0" = "sha256-joMHmFbgMAuaXtSvJutahE/8y+4AL7dd8bb9bs6Usc0=";
|
||||
"cosmic-settings-daemon-0.1.0" = "sha256-mklNPKVMO6iFrxki2DwiL5K78KiWpGxksisYldaASIE=";
|
||||
"cosmic-text-0.12.1" = "sha256-u2Tw+XhpIKeFg8Wgru/sjGw6GUZ2m50ZDmRBJ1IM66w=";
|
||||
"d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4=";
|
||||
"glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
|
||||
"smithay-clipboard-0.8.0" = "sha256-4InFXm0ahrqFrtNLeqIuE3yeOpxKZJZx+Bc0yQDtv34=";
|
||||
"softbuffer-0.4.1" = "sha256-a0bUFz6O8CWRweNt/OxTvflnPYwO5nm6vsyc/WcXyNg=";
|
||||
"taffy-0.3.11" = "sha256-SCx9GEIJjWdoNVyq+RZAGn0N71qraKZxf9ZWhvyzLaI=";
|
||||
"winit-0.29.10" = "sha256-ScTII2AzK3SC8MVeASZ9jhVWsEaGrSQ2BnApTxgfxK4=";
|
||||
};
|
||||
};
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-UZUqPITtpHeNrsi6Nao+dfK3ACVJmZIc47aqSbwTemw=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
@ -67,9 +52,9 @@ rustPlatform.buildRustPackage rec {
|
|||
};
|
||||
|
||||
meta = {
|
||||
description = "A simple flashcards application for the COSMIC™ desktop written in Rust";
|
||||
description = "Simple flashcards application for the COSMIC™ desktop written in Rust";
|
||||
homepage = "https://github.com/mariinkys/oboete";
|
||||
changelog = "https://github.com/mariinkys/oboete/releases/tag/${version}";
|
||||
changelog = "https://github.com/mariinkys/oboete/releases/tag/${src.tag}";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ GaetanLepage ];
|
||||
platforms = lib.platforms.linux;
|
||||
|
|
88
pkgs/by-name/oc/ocis/package.nix
Normal file
88
pkgs/by-name/oc/ocis/package.nix
Normal file
|
@ -0,0 +1,88 @@
|
|||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
buildGoModule,
|
||||
callPackage,
|
||||
gnumake,
|
||||
pnpm,
|
||||
nodejs,
|
||||
ocis,
|
||||
}:
|
||||
let
|
||||
idp-assets = stdenvNoCC.mkDerivation {
|
||||
pname = "idp-assets";
|
||||
version = "0-unstable-2020-10-14";
|
||||
src = fetchFromGitHub {
|
||||
owner = "owncloud";
|
||||
repo = "assets";
|
||||
rev = "e8b6aeadbcee1865b9df682e9bd78083842d2b5c";
|
||||
hash = "sha256-PzGff2Zx8xmvPYQa4lS4yz2h+y/lerKvUZkYI7XvAUw=";
|
||||
};
|
||||
installPhase = ''
|
||||
mkdir -p $out/share
|
||||
cp logo.svg favicon.ico $out/share/
|
||||
'';
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
dontFixup = true;
|
||||
};
|
||||
in
|
||||
buildGoModule rec {
|
||||
pname = "ocis";
|
||||
version = "5.0.9";
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "owncloud";
|
||||
repo = "ocis";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-TsMrQx+P1F2t66e0tGG0VvRi4W7+pCpDHd0aNsacOsI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
gnumake
|
||||
nodejs
|
||||
pnpm.configHook
|
||||
];
|
||||
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
inherit pname version src;
|
||||
sourceRoot = "${src.name}/services/idp";
|
||||
hash = "sha256-gNlN+u/bobnTsXrsOmkDcWs67D/trH3inT5AVQs3Brs=";
|
||||
};
|
||||
pnpmRoot = "services/idp";
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
cp -r ${ocis.web}/share/* services/web/assets/
|
||||
pnpm -C services/idp build
|
||||
|
||||
mkdir -p services/idp/assets/identifier/static
|
||||
cp -r ${idp-assets}/share/* services/idp/assets/identifier/static/
|
||||
|
||||
make -C ocis VERSION=${version} DATE=${version} build
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/bin/
|
||||
cp ocis/bin/ocis $out/bin/
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
web = callPackage ./web.nix { };
|
||||
updateScript = ./update.sh;
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/owncloud/web";
|
||||
description = "Next generation frontend for ownCloud Infinite Scale";
|
||||
license = lib.licenses.asl20;
|
||||
mainProgram = "ocis";
|
||||
maintainers = with lib.maintainers; [ xinyangli ];
|
||||
};
|
||||
}
|
22
pkgs/by-name/oc/ocis/update.sh
Executable file
22
pkgs/by-name/oc/ocis/update.sh
Executable file
|
@ -0,0 +1,22 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl jq gnugrep nix-update coreutils
|
||||
set -ex
|
||||
|
||||
TAGS=$(curl -s https://api.github.com/repos/owncloud/ocis/releases | jq -r ".[].tag_name")
|
||||
|
||||
for tag in $TAGS; do
|
||||
main_version_old=$(echo "v$UPDATE_NIX_OLD_VERSION" | cut -d'.' -f1)
|
||||
main_version_new=$(echo "$tag" | cut -d'.' -f1)
|
||||
|
||||
# Compare the main versions
|
||||
if [[ "$main_version_old" == "$main_version_new" ]]; then
|
||||
UPDATE_NIX_NEW_VERSION=$tag
|
||||
break
|
||||
else
|
||||
continue
|
||||
fi
|
||||
done
|
||||
|
||||
OCIS_WEB_VERSION=$(curl -s https://raw.githubusercontent.com/owncloud/ocis/$UPDATE_NIX_NEW_VERSION/services/web/Makefile | grep -oP '(?<=WEB_ASSETS_VERSION = )v[0-9]+\.[0-9]+\.[0-9]+')
|
||||
nix-update -vr 'v(.*)' --version=$OCIS_WEB_VERSION ocis.web
|
||||
nix-update -vr 'v(.*)' --version=$UPDATE_NIX_NEW_VERSION ocis
|
48
pkgs/by-name/oc/ocis/web.nix
Normal file
48
pkgs/by-name/oc/ocis/web.nix
Normal file
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
nodejs,
|
||||
pnpm,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "ocis-web";
|
||||
version = "8.0.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "owncloud";
|
||||
repo = "web";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-hupdtK/V74+X7/eXoDmUjFvSKuhnoOtNQz7o6TLJXG4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
pnpm.configHook
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
pnpm build
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share
|
||||
cp -r dist/* $out/share/
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
inherit pname version src;
|
||||
hash = "sha256-3Erva6srdkX1YQ727trx34Ufx524nz19MUyaDQToz6M=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/owncloud/ocis";
|
||||
description = "ownCloud Infinite Scale Stack";
|
||||
maintainers = with lib.maintainers; [ xinyangli ];
|
||||
license = lib.licenses.agpl3Only;
|
||||
};
|
||||
}
|
39
pkgs/by-name/op/openfortivpn-webview-qt/package.nix
Normal file
39
pkgs/by-name/op/openfortivpn-webview-qt/package.nix
Normal file
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
qt6Packages,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "openfortivpn-webview-qt";
|
||||
version = "1.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gm-vm";
|
||||
repo = "openfortivpn-webview";
|
||||
rev = "v${version}-electron";
|
||||
hash = "sha256-BNotbb2pL7McBm0SQwcgEvjgS2GId4HVaxWUz/ODs6w=";
|
||||
};
|
||||
sourceRoot = "source/openfortivpn-webview-qt";
|
||||
|
||||
nativeBuildInputs = [
|
||||
qt6Packages.wrapQtAppsHook
|
||||
qt6Packages.qmake
|
||||
];
|
||||
buildInputs = [ qt6Packages.qtwebengine ];
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/bin
|
||||
cp openfortivpn-webview $out/bin/
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Perform the SAML single sign-on and easily retrieve the SVPNCOOKIE needed by openfortivpn";
|
||||
homepage = "https://github.com/gm-vm/openfortivpn-webview/tree/main";
|
||||
license = licenses.mit;
|
||||
maintainers = [ lib.maintainers.jonboh ];
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "openfortivpn-webview";
|
||||
};
|
||||
}
|
|
@ -115,6 +115,8 @@ stdenv.mkDerivation {
|
|||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
# GCC 14 makes these errors by default
|
||||
env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=int-conversion";
|
||||
env.config = writeText "gradle.properties" ''
|
||||
CONF = Release
|
||||
JDK_HOME = ${jdk-bootstrap.home}
|
||||
|
|
|
@ -7,11 +7,11 @@
|
|||
renode.overrideAttrs (
|
||||
finalAttrs: _: {
|
||||
pname = "renode-unstable";
|
||||
version = "1.15.3+20241112git6e850cb52";
|
||||
version = "1.15.3+20241217git398e80b6e";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://builds.renode.io/renode-${finalAttrs.version}.linux-dotnet.tar.gz";
|
||||
hash = "sha256-GkmzPc0pPRglkuGzPU+rLUcwlhw8v4VgQnxnkzT/+cI=";
|
||||
hash = "sha256-DJau7daj06GHWr3uGAbb6/oKb4QIefRqH6QoYjy5JNU=";
|
||||
};
|
||||
|
||||
passthru.updateScript =
|
||||
|
|
|
@ -12,14 +12,14 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "rust-analyzer-unwrapped";
|
||||
version = "2024-12-02";
|
||||
cargoHash = "sha256-qlBR6Ua0h+1jk1VTjDRkSsmYjbsjeONGIEXGMxHlyfM=";
|
||||
version = "2024-12-16";
|
||||
cargoHash = "sha256-RUFhNJTLP1xOr+qpRVYZipk9rZ/c9kqJE9wuqmwFFPE=";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rust-lang";
|
||||
repo = "rust-analyzer";
|
||||
rev = version;
|
||||
hash = "sha256-Aob7Gf46F4BMLS0FDzf8mV39fUbNHURaY+GbYNsoOY4=";
|
||||
hash = "sha256-7DBZsPlP/9ZpYk+k6dLFG6SEH848HuGaY7ri/gdye4M=";
|
||||
};
|
||||
|
||||
cargoBuildFlags = [
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
bash,
|
||||
python,
|
||||
makeWrapper,
|
||||
}:
|
||||
|
@ -22,7 +23,10 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
|
||||
nativeBuildInputs =
|
||||
[ makeWrapper ]
|
||||
[
|
||||
bash
|
||||
makeWrapper
|
||||
]
|
||||
++ lib.optionals (python != null && lib.versionAtLeast python.version "3.10") [
|
||||
python.pkgs.cython
|
||||
];
|
||||
|
@ -34,6 +38,8 @@ stdenv.mkDerivation rec {
|
|||
rm wrappers/python/lhapdf.cpp
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru = {
|
||||
|
@ -41,6 +47,7 @@ stdenv.mkDerivation rec {
|
|||
};
|
||||
|
||||
postInstall = ''
|
||||
patchShebangs --build $out/bin/lhapdf-config
|
||||
wrapProgram $out/bin/lhapdf --prefix PYTHONPATH : "$(toPythonPath "$out")"
|
||||
'';
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
stdenv,
|
||||
fetchFromGitLab,
|
||||
autoreconfHook,
|
||||
bash,
|
||||
python,
|
||||
root,
|
||||
makeWrapper,
|
||||
|
@ -23,6 +24,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
nativeBuildInputs = with python.pkgs; [
|
||||
autoreconfHook
|
||||
bash
|
||||
cython
|
||||
makeWrapper
|
||||
];
|
||||
|
@ -43,6 +45,8 @@ stdenv.mkDerivation rec {
|
|||
zlib
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
postPatch = ''
|
||||
|
@ -54,6 +58,7 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
|
||||
postInstall = ''
|
||||
patchShebangs --build $out/bin/yoda-config
|
||||
for prog in "$out"/bin/*; do
|
||||
wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
|
||||
done
|
||||
|
|
86
pkgs/development/python-modules/nifty8/default.nix
Normal file
86
pkgs/development/python-modules/nifty8/default.nix
Normal file
|
@ -0,0 +1,86 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
stdenv,
|
||||
buildPythonPackage,
|
||||
fetchFromGitLab,
|
||||
|
||||
cudaSupport ? config.cudaSupport,
|
||||
|
||||
# build-system
|
||||
setuptools,
|
||||
|
||||
# dependencies
|
||||
astropy,
|
||||
ducc0,
|
||||
h5py,
|
||||
jax,
|
||||
jaxlib,
|
||||
matplotlib,
|
||||
mpi,
|
||||
mpi4py,
|
||||
numpy,
|
||||
scipy,
|
||||
|
||||
# test
|
||||
pytestCheckHook,
|
||||
mpiCheckPhaseHook,
|
||||
openssh,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "nifty8";
|
||||
version = "8.5.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.mpcdf.mpg.de";
|
||||
owner = "ift";
|
||||
repo = "nifty";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-EWsJX+iqKOhQXEWlQfYUiPYqyfOfrwLtbI+DVn7vCQI=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
astropy
|
||||
ducc0
|
||||
h5py
|
||||
jax
|
||||
(jaxlib.override { inherit cudaSupport; })
|
||||
matplotlib
|
||||
mpi4py
|
||||
mpi
|
||||
numpy
|
||||
scipy
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
mpiCheckPhaseHook
|
||||
openssh
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
|
||||
python3 -m pytest test
|
||||
|
||||
if [ "${stdenv.buildPlatform.system}" != "aarch64-linux" ] && \
|
||||
[ "${stdenv.buildPlatform.system}" != "x86_64-darwin" ]; then
|
||||
${mpi}/bin/mpiexec -n 2 --bind-to none python3 -m pytest test/test_mpi
|
||||
fi
|
||||
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "nifty8" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://gitlab.mpcdf.mpg.de/ift/nifty";
|
||||
description = "Bayesian Imaging library for high-dimensional posteriors";
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = with lib.maintainers; [ parras ];
|
||||
};
|
||||
}
|
49
pkgs/development/python-modules/pixel-font-knife/default.nix
Normal file
49
pkgs/development/python-modules/pixel-font-knife/default.nix
Normal file
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
pythonOlder,
|
||||
pytestCheckHook,
|
||||
nix-update-script,
|
||||
hatchling,
|
||||
pypng,
|
||||
unidata-blocks,
|
||||
pyyaml,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pixel-font-knife";
|
||||
version = "0.0.7";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.10";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "pixel_font_knife";
|
||||
inherit version;
|
||||
hash = "sha256-NALIf8DbIPKmazF669LHsKuP0tndR0pbphrhlXt6wyA=";
|
||||
};
|
||||
|
||||
build-system = [ hatchling ];
|
||||
|
||||
dependencies = [
|
||||
pypng
|
||||
unidata-blocks
|
||||
pyyaml
|
||||
];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
pythonImportsCheck = [ "pixel_font_knife" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/TakWolf/pixel-font-knife";
|
||||
description = "Set of pixel font utilities";
|
||||
platforms = lib.platforms.all;
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [
|
||||
TakWolf
|
||||
h7x4
|
||||
];
|
||||
};
|
||||
}
|
|
@ -4,7 +4,7 @@ from functools import cached_property
|
|||
import json
|
||||
from pathlib import Path
|
||||
|
||||
from libfdt import Fdt, FdtException, FDT_ERR_NOSPACE, fdt_overlay_apply
|
||||
from libfdt import Fdt, FdtException, FDT_ERR_NOSPACE, FDT_ERR_NOTFOUND, fdt_overlay_apply
|
||||
|
||||
|
||||
@dataclass
|
||||
|
@ -25,7 +25,14 @@ class Overlay:
|
|||
|
||||
def get_compatible(fdt):
|
||||
root_offset = fdt.path_offset("/")
|
||||
|
||||
try:
|
||||
return set(fdt.getprop(root_offset, "compatible").as_stringlist())
|
||||
except FdtException as e:
|
||||
if e.err == -FDT_ERR_NOTFOUND:
|
||||
return set()
|
||||
else:
|
||||
raise e
|
||||
|
||||
|
||||
def apply_overlay(dt: Fdt, dto: Fdt) -> Fdt:
|
||||
|
@ -77,14 +84,15 @@ def main():
|
|||
with source_dt.open("rb") as fd:
|
||||
dt = Fdt(fd.read())
|
||||
|
||||
dt_compatible = get_compatible(dt)
|
||||
|
||||
for overlay in overlays_data:
|
||||
if overlay.filter and overlay.filter not in str(rel_path):
|
||||
print(f" Skipping overlay {overlay.name}: filter does not match")
|
||||
continue
|
||||
|
||||
if not overlay.compatible.intersection(dt_compatible):
|
||||
dt_compatible = get_compatible(dt)
|
||||
if len(dt_compatible) == 0:
|
||||
print(f" Device tree {rel_path} has no compatible string set. Assuming it's compatible with overlay")
|
||||
elif not overlay.compatible.intersection(dt_compatible):
|
||||
print(f" Skipping overlay {overlay.name}: {overlay.compatible} is incompatible with {dt_compatible}")
|
||||
continue
|
||||
|
||||
|
|
19
pkgs/os-specific/linux/iio-utils/default.nix
Normal file
19
pkgs/os-specific/linux/iio-utils/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{ lib, stdenv, kernel }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "iio-utils";
|
||||
inherit (kernel) src version;
|
||||
|
||||
makeFlags = [ "bindir=${placeholder "out"}/bin" ];
|
||||
|
||||
postPatch = ''
|
||||
cd tools/iio
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Userspace tool for interacting with Linux IIO";
|
||||
homepage = "https://www.kernel.org/";
|
||||
license = licenses.gpl2Only;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -16,11 +16,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nsd";
|
||||
version = "4.10.2";
|
||||
version = "4.11.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.nlnetlabs.nl/downloads/${pname}/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-yR7vLnPkMPooa9SPB1qNAj+25gVg4iGJyzWDxdoAtps=";
|
||||
sha256 = "sha256-k5VtkNRf+p+E+MovcYpCEF5CNtCUzgMiEYSfGhLNwVg=";
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
|
|
|
@ -11,14 +11,14 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "snac2";
|
||||
version = "2.65";
|
||||
version = "2.66";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
owner = "grunfink";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-jzkimE4JPrlsHP0jPawhloXMDNaWG1Sgfp5NiZxm1xo=";
|
||||
hash = "sha256-JArXXuWS60tXShYD4bKwHRPlbLRALZTnwn3iYBhhD2s=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -1,13 +1,19 @@
|
|||
{ lib, stdenv, fetchgit }:
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchgit,
|
||||
nixosTests,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tt-rss";
|
||||
version = "unstable-2023-04-13";
|
||||
version = "0-unstable-2024-11-04";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://git.tt-rss.org/fox/tt-rss.git";
|
||||
rev = "0578bf802571781a0a7e3debbbec66437a7d28b4";
|
||||
hash = "sha256-j6R1QoH8SzUtyI3rGE6rHriboAfApAo/Guw8WbJ7LqU=";
|
||||
rev = "42ebdb027ec249fb8e693c41d7ee80ecdc68d6ec";
|
||||
hash = "sha256-QN7CwUufQSFlFde0NebO/kOYtEZCyL0ut+CNEpJMIMA=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
@ -18,16 +24,25 @@ stdenv.mkDerivation rec {
|
|||
|
||||
# see the code of Config::get_version(). you can check that the version in
|
||||
# the footer of the preferences pages is not UNKNOWN
|
||||
echo "23.04" > $out/version_static.txt
|
||||
echo "${version}" > $out/version_static.txt
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit (nixosTests) tt-rss;
|
||||
updateScript = unstableGitUpdater { hardcodeZeroVersion = true; };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Web-based news feed (RSS/Atom) aggregator";
|
||||
license = licenses.gpl2Plus;
|
||||
homepage = "https://tt-rss.org";
|
||||
maintainers = with maintainers; [ globin zohl ];
|
||||
maintainers = with maintainers; [
|
||||
gileri
|
||||
globin
|
||||
zohl
|
||||
];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ lib, stdenv
|
||||
, fetchurl
|
||||
, makeWrapper
|
||||
, makeShellWrapper
|
||||
, updateAutotoolsGnuConfigScriptsHook
|
||||
, runtimeShellPackage
|
||||
}:
|
||||
|
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook makeWrapper ];
|
||||
nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook makeShellWrapper ];
|
||||
buildInputs = [ runtimeShellPackage ];
|
||||
|
||||
makeFlags = [
|
||||
|
|
|
@ -375,6 +375,8 @@ in {
|
|||
|
||||
e1000e = if lib.versionOlder kernel.version "4.10" then callPackage ../os-specific/linux/e1000e {} else null;
|
||||
|
||||
iio-utils = if lib.versionAtLeast kernel.version "4.1" then callPackage ../os-specific/linux/iio-utils { } else null;
|
||||
|
||||
intel-speed-select = if lib.versionAtLeast kernel.version "5.3" then callPackage ../os-specific/linux/intel-speed-select { } else null;
|
||||
|
||||
ipu6-drivers = callPackage ../os-specific/linux/ipu6-drivers {};
|
||||
|
|
|
@ -9194,6 +9194,8 @@ self: super: with self; {
|
|||
|
||||
nidaqmx = callPackage ../development/python-modules/nidaqmx { };
|
||||
|
||||
nifty8 = callPackage ../development/python-modules/nifty8 { };
|
||||
|
||||
nikola = callPackage ../development/python-modules/nikola { };
|
||||
|
||||
niko-home-control = callPackage ../development/python-modules/niko-home-control { };
|
||||
|
@ -10391,6 +10393,8 @@ self: super: with self; {
|
|||
|
||||
pixel-font-builder = callPackage ../development/python-modules/pixel-font-builder { };
|
||||
|
||||
pixel-font-knife = callPackage ../development/python-modules/pixel-font-knife { };
|
||||
|
||||
pixel-ring = callPackage ../development/python-modules/pixel-ring { };
|
||||
|
||||
pjsua2 = (toPythonModule (pkgs.pjsip.override {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue