Merge staging-next into staging
This commit is contained in:
@@ -10049,6 +10049,13 @@
|
||||
github = "HadziqM";
|
||||
githubId = 50319538;
|
||||
};
|
||||
haennetz = {
|
||||
name = "Hännetz";
|
||||
email = "me@haennetz.net";
|
||||
matrix = "@me:haennetz.net";
|
||||
github = "Haennetz";
|
||||
githubId = 34142036;
|
||||
};
|
||||
hagl = {
|
||||
email = "harald@glie.be";
|
||||
github = "hagl";
|
||||
|
||||
@@ -10,6 +10,10 @@
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
- [Meshtastic](https://meshtastic.org), an open-source, off-grid, decentralised mesh network
|
||||
designed to run on affordable, low-power devices. Available as [services.meshtasticd]
|
||||
(#opt-services.meshtasticd.enable).
|
||||
|
||||
- [knot-resolver](https://www.knot-resolver.cz/) in version 6. Available as `services.knot-resolver`. A module for knot-resolver 5 was already available as `services.kresd`.
|
||||
|
||||
- [ImmichFrame](https://immichframe.dev/), display your photos from Immich as a digital photo frame. Available as `services.immichframe`.
|
||||
|
||||
@@ -1248,6 +1248,7 @@
|
||||
./services/networking/lxd-image-server.nix
|
||||
./services/networking/magic-wormhole-mailbox-server.nix
|
||||
./services/networking/matterbridge.nix
|
||||
./services/networking/meshtasticd.nix
|
||||
./services/networking/microsocks.nix
|
||||
./services/networking/mihomo.nix
|
||||
./services/networking/minidlna.nix
|
||||
|
||||
@@ -29,51 +29,50 @@ let
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "snapserver" "controlPort" ]
|
||||
[ "services" "snapserver" "tcp" "port" ]
|
||||
)
|
||||
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "snapserver" "listenAddress" ]
|
||||
[ "services" "snapserver" "settings" "stream" "bind_to_address" ]
|
||||
[ "services" "snapserver" "settings" "tcp-streaming" "bind_to_address" ]
|
||||
)
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "snapserver" "port" ]
|
||||
[ "services" "snapserver" "settings" "stream" "port" ]
|
||||
[ "services" "snapserver" "settings" "tcp-streaming" "port" ]
|
||||
)
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "snapserver" "sampleFormat" ]
|
||||
[ "services" "snapserver" "settings" "stream" "sampleformat" ]
|
||||
[ "services" "snapserver" "settings" "tcp-streaming" "sampleformat" ]
|
||||
)
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "snapserver" "codec" ]
|
||||
[ "services" "snapserver" "settings" "stream" "codec" ]
|
||||
[ "services" "snapserver" "settings" "tcp-streaming" "codec" ]
|
||||
)
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "snapserver" "streamBuffer" ]
|
||||
[ "services" "snapserver" "settings" "stream" "chunk_ms" ]
|
||||
[ "services" "snapserver" "settings" "tcp-streaming" "chunk_ms" ]
|
||||
)
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "snapserver" "buffer" ]
|
||||
[ "services" "snapserver" "settings" "stream" "buffer" ]
|
||||
[ "services" "snapserver" "settings" "tcp-streaming" "buffer" ]
|
||||
)
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "snapserver" "send" ]
|
||||
[ "services" "snapserver" "settings" "stream" "chunk_ms" ]
|
||||
[ "services" "snapserver" "settings" "tcp-streaming" "chunk_ms" ]
|
||||
)
|
||||
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "snapserver" "controlPort" ]
|
||||
[ "services" "snapserver" "settings" "tcp-control" "port" ]
|
||||
)
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "snapserver" "tcp" "enable" ]
|
||||
[ "services" "snapserver" "settings" "tcp" "enabled" ]
|
||||
[ "services" "snapserver" "settings" "tcp-control" "enabled" ]
|
||||
)
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "snapserver" "tcp" "listenAddress" ]
|
||||
[ "services" "snapserver" "settings" "tcp" "bind_to_address" ]
|
||||
[ "services" "snapserver" "settings" "tcp-control" "bind_to_address" ]
|
||||
)
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "snapserver" "tcp" "port" ]
|
||||
[ "services" "snapserver" "settings" "tcp" "port" ]
|
||||
[ "services" "snapserver" "settings" "tcp-control" "port" ]
|
||||
)
|
||||
|
||||
(mkRenamedOptionModule
|
||||
@@ -121,6 +120,20 @@ in
|
||||
freeformType = format.type;
|
||||
options = {
|
||||
stream = {
|
||||
source = mkOption {
|
||||
type = with types; either str (listOf str);
|
||||
example = "pipe:///tmp/snapfifo?name=default";
|
||||
description = ''
|
||||
One or multiple URIs to PCM input streams.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
tcp-streaming = {
|
||||
enabled = mkEnableOption "streaming via TCP" // {
|
||||
default = true;
|
||||
};
|
||||
|
||||
bind_to_address = mkOption {
|
||||
default = "::";
|
||||
description = ''
|
||||
@@ -135,17 +148,9 @@ in
|
||||
Port to listen on for snapclient connections.
|
||||
'';
|
||||
};
|
||||
|
||||
source = mkOption {
|
||||
type = with types; either str (listOf str);
|
||||
example = "pipe:///tmp/snapfifo?name=default";
|
||||
description = ''
|
||||
One or multiple URIs to PCM inpuit streams.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
tcp = {
|
||||
tcp-control = {
|
||||
enabled = mkEnableOption "the TCP JSON-RPC";
|
||||
|
||||
bind_to_address = mkOption {
|
||||
@@ -245,8 +250,10 @@ in
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts =
|
||||
lib.optionals cfg.openFirewall [ cfg.settings.stream.port ]
|
||||
++ lib.optional (cfg.openFirewall && cfg.settings.tcp.enabled) cfg.settings.tcp.port
|
||||
lib.optionals (cfg.openFirewall && cfg.settings.tcp-streaming.enabled) [
|
||||
cfg.settings.tcp-streaming.port
|
||||
]
|
||||
++ lib.optional (cfg.openFirewall && cfg.settings.tcp-control.enabled) cfg.settings.tcp-control.port
|
||||
++ lib.optional (cfg.openFirewall && cfg.settings.http.enabled) cfg.settings.http.port;
|
||||
};
|
||||
|
||||
|
||||
@@ -43,6 +43,8 @@ in
|
||||
enable = mkEnableOption "contractor, a desktop-wide extension service used by Pantheon";
|
||||
};
|
||||
|
||||
parental-controls.enable = mkEnableOption "Pantheon parental controls daemon";
|
||||
|
||||
apps.enable = mkEnableOption "Pantheon default applications";
|
||||
|
||||
};
|
||||
@@ -162,6 +164,7 @@ in
|
||||
];
|
||||
services.pantheon.apps.enable = mkDefault true;
|
||||
services.pantheon.contractor.enable = mkDefault true;
|
||||
services.pantheon.parental-controls.enable = mkDefault true;
|
||||
services.gnome.at-spi2-core.enable = true;
|
||||
services.gnome.evolution-data-server.enable = true;
|
||||
services.gnome.glib-networking.enable = true;
|
||||
@@ -360,5 +363,14 @@ in
|
||||
];
|
||||
})
|
||||
|
||||
(mkIf serviceCfg.parental-controls.enable {
|
||||
services.malcontent.enable = mkDefault true;
|
||||
|
||||
environment.systemPackages = [ pkgs.pantheon.switchboard-plug-parental-controls ];
|
||||
|
||||
services.dbus.packages = [ pkgs.pantheon.switchboard-plug-parental-controls ];
|
||||
|
||||
systemd.packages = [ pkgs.pantheon.switchboard-plug-parental-controls ];
|
||||
})
|
||||
];
|
||||
}
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
# Meshtasticd {#module-services-meshtasticd}
|
||||
|
||||
[Meshtasticd](https://meshtastic.org/) daemon.
|
||||
|
||||
Meshtastic is an open-source, off-grid, decentralised mesh network designed to
|
||||
run on affordable, low-power devices.
|
||||
|
||||
Meshtastic is a project that enables you to use inexpensive LoRa radios as a
|
||||
long range off-grid communication platform in areas without existing or reliable
|
||||
communications infrastructure. This project is 100% community driven and open
|
||||
source!
|
||||
|
||||
## Quickstart {#module-services-meshtasticd-quickstart}
|
||||
|
||||
A minimal configuration:
|
||||
|
||||
```nix
|
||||
{
|
||||
services.meshtasticd = {
|
||||
enable = true;
|
||||
port = 4403;
|
||||
settings = {
|
||||
Lora = {
|
||||
Module = "auto";
|
||||
};
|
||||
Webserver = {
|
||||
Port = 9443;
|
||||
RootPath = pkgs.meshtastic-web;
|
||||
};
|
||||
General = {
|
||||
MaxNodes = 200;
|
||||
MaxMessageQueue = 100;
|
||||
MACAddressSource = "eth0";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
By default Meshtasticd listens on all network interfaces. The example above
|
||||
binds the daemon to port `4403` and the web UI to `9443`. This module
|
||||
intentionally does not configure an reverse proxy for you, keeping the module
|
||||
focused on the Meshtastic service itself. If you need to restrict access, use
|
||||
firewall rules or put the web UI behind a reverse proxy (e.g.: Caddy, Nginx)
|
||||
that binds to `127.0.0.1` and exposes only the proxy. This approach leaves proxy
|
||||
choice and TLS configuration to the operator while documenting how to securely
|
||||
expose the web UI when required.
|
||||
|
||||
## Configuration {#module-services-meshtasticd-config}
|
||||
|
||||
All available configuration directives are documented in the
|
||||
[standard Meshtastic configuration file](https://github.com/meshtastic/firmware/blob/develop/bin/config-dist.yaml).
|
||||
|
||||
The service uses a dedicated user and group account (`meshtasticd`) by default.
|
||||
If you override the service user, ensure it is a member of the `spi` and `gpio`
|
||||
groups so it can access the required hardware devices, as mandated by
|
||||
Meshtastic’s default `udev` rules.
|
||||
@@ -0,0 +1,124 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.meshtasticd;
|
||||
format = pkgs.formats.yaml { };
|
||||
configFile = format.generate "config.yaml" cfg.settings;
|
||||
in
|
||||
{
|
||||
options.services.meshtasticd = {
|
||||
enable = lib.mkEnableOption "Meshtastic daemon";
|
||||
package = lib.mkPackageOption pkgs "meshtasticd" { };
|
||||
|
||||
user = lib.mkOption {
|
||||
default = "meshtasticd";
|
||||
description = "User meshtasticd runs as.";
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
group = lib.mkOption {
|
||||
default = "meshtasticd";
|
||||
description = "Group meshtasticd runs as.";
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
port = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 4403;
|
||||
description = "Port to listen on";
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = format.type;
|
||||
example = lib.literalExpression ''
|
||||
Lora = {
|
||||
Module = "auto";
|
||||
};
|
||||
Webserver = {
|
||||
Port = 9443;
|
||||
RootPath = pkgs.meshtastic-web;
|
||||
};
|
||||
General = {
|
||||
MaxNodes = 200;
|
||||
MaxMessageQueue = 100;
|
||||
MACAddressSource = "eth0";
|
||||
};
|
||||
'';
|
||||
description = ''
|
||||
The Meshtastic configuration file.
|
||||
|
||||
An example of configuration can be found at <https://github.com/meshtastic/firmware/blob/develop/bin/config-dist.yaml>
|
||||
'';
|
||||
};
|
||||
|
||||
dataDir = lib.mkOption {
|
||||
default = "/var/lib/meshtasticd";
|
||||
type = lib.types.path;
|
||||
description = ''
|
||||
The data directory.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
# Creation of the `meshtasticd` privilege user.
|
||||
users = {
|
||||
users = lib.mkIf (cfg.user == "meshtasticd") {
|
||||
meshtasticd = {
|
||||
home = cfg.dataDir;
|
||||
description = "meshtasticd-daemon privilege user";
|
||||
group = cfg.group;
|
||||
isSystemUser = true;
|
||||
extraGroups = [
|
||||
"spi"
|
||||
"gpio"
|
||||
];
|
||||
};
|
||||
};
|
||||
groups = lib.mkIf (cfg.group == "meshtasticd") {
|
||||
meshtasticd = { };
|
||||
# These groups are required for udev rules to work properly.
|
||||
spi = { };
|
||||
gpio = { };
|
||||
};
|
||||
};
|
||||
|
||||
# The `meshtasticd` package provides udev rules.
|
||||
services.udev.packages = [
|
||||
cfg.package
|
||||
];
|
||||
|
||||
# Creation of the `meshtasticd` service.
|
||||
# Based on the official meshtasticd service file: https://github.com/meshtastic/firmware/blob/develop/bin/meshtasticd.service
|
||||
systemd.services.meshtasticd = {
|
||||
description = "Meshtastic Native Daemon";
|
||||
after = [
|
||||
"network-online.target"
|
||||
"network.target"
|
||||
];
|
||||
wants = [
|
||||
"network-online.target"
|
||||
"network.target"
|
||||
];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
Type = "simple";
|
||||
StateDirectory = "meshtasticd";
|
||||
AmbientCapabilities = [
|
||||
"CAP_NET_BIND_SERVICE"
|
||||
];
|
||||
ExecStart = "${lib.getExe cfg.package} --port=${builtins.toString cfg.port} --fsdir=${cfg.dataDir} --config=${configFile} --verbose";
|
||||
Restart = "always";
|
||||
RestartSec = "3";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -282,6 +282,11 @@ in
|
||||
account include login
|
||||
password substack login
|
||||
session include login
|
||||
''
|
||||
# https://github.com/elementary/switchboard-plug-parental-controls/blob/8.0.1/src/daemon/Server.vala#L325
|
||||
# Must specify conffile since pam_time defaults to ${linux-pam}/etc/security/time.conf.
|
||||
+ lib.optionalString config.services.pantheon.parental-controls.enable ''
|
||||
account required pam_time.so conffile=/etc/security/time.conf
|
||||
'';
|
||||
|
||||
security.pam.services.lightdm-greeter.text = ''
|
||||
|
||||
@@ -222,7 +222,7 @@ def write_entry(profile: str | None, generation: int, specialisation: str | None
|
||||
if machine_id is not None:
|
||||
f.write("machine-id %s\n" % machine_id)
|
||||
if devicetree is not None:
|
||||
f.write("devicetree %s\n" % devicetree)
|
||||
f.write(f"devicetree /{devicetree}\n")
|
||||
f.flush()
|
||||
os.fsync(f.fileno())
|
||||
tmp_path.rename(entry_file)
|
||||
|
||||
@@ -941,6 +941,7 @@ in
|
||||
meilisearch = runTest ./meilisearch.nix;
|
||||
memcached = runTest ./memcached.nix;
|
||||
merecat = runTest ./merecat.nix;
|
||||
meshtasticd = runTest ./networking/meshtasticd.nix;
|
||||
metabase = runTest ./metabase.nix;
|
||||
mihomo = runTest ./mihomo.nix;
|
||||
mimir = runTest ./mimir.nix;
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
mainPort = 9445;
|
||||
webPort = 9446;
|
||||
in
|
||||
{
|
||||
name = "meshtasticd";
|
||||
meta.maintainers = [ lib.maintainers.drupol ];
|
||||
|
||||
nodes.machine = {
|
||||
services.meshtasticd = {
|
||||
enable = true;
|
||||
port = mainPort;
|
||||
|
||||
settings = {
|
||||
Lora = {
|
||||
Module = "sim";
|
||||
DIO2_AS_RF_SWITCH = false;
|
||||
spiSpeed = "2000000";
|
||||
};
|
||||
Webserver = {
|
||||
Port = webPort;
|
||||
RootPath = pkgs.meshtastic-web;
|
||||
};
|
||||
General = {
|
||||
MaxNodes = 200;
|
||||
MaxMessageQueue = 100;
|
||||
MACAddressSource = "eth0";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
with subtest("Test meshtasticd service"):
|
||||
machine.wait_for_unit("meshtasticd.service")
|
||||
machine.wait_for_open_port(${builtins.toString mainPort})
|
||||
machine.wait_for_open_port(${builtins.toString webPort})
|
||||
machine.succeed("curl -fvvv -Ls http://localhost:${builtins.toString webPort} | grep -q 'Meshtastic Web Client'")
|
||||
'';
|
||||
}
|
||||
@@ -23,7 +23,6 @@ in
|
||||
enable = true;
|
||||
settings = {
|
||||
stream = {
|
||||
port = port;
|
||||
source = [
|
||||
"pipe:///run/snapserver/mpd?name=mpd&mode=create"
|
||||
"pipe:///run/snapserver/bluetooth?name=bluetooth"
|
||||
@@ -32,7 +31,11 @@ in
|
||||
];
|
||||
buffer = bufferSize;
|
||||
};
|
||||
tcp = {
|
||||
tcp-streaming = {
|
||||
enabled = true;
|
||||
port = port;
|
||||
};
|
||||
tcp-control = {
|
||||
enabled = true;
|
||||
port = tcpPort;
|
||||
};
|
||||
@@ -76,6 +79,8 @@ in
|
||||
)
|
||||
|
||||
with subtest("test a ipv6 connection"):
|
||||
# URI scheme does not support IPv6 literals
|
||||
# https://github.com/snapcast/snapcast/issues/1472
|
||||
server.execute("systemd-run --unit=snapcast-local-client snapclient -h ::1 -p ${toString port}")
|
||||
server.wait_until_succeeds(
|
||||
"journalctl -o cat -u snapserver.service | grep -q 'Hello from'"
|
||||
@@ -83,7 +88,7 @@ in
|
||||
server.wait_until_succeeds("journalctl -o cat -u snapcast-local-client | grep -q 'buffer: ${toString bufferSize}'")
|
||||
|
||||
with subtest("test a connection"):
|
||||
client.execute("systemd-run --unit=snapcast-client snapclient -h server -p ${toString port}")
|
||||
client.execute("systemd-run --unit=snapcast-client snapclient 'tcp://server:${toString port}'")
|
||||
server.wait_until_succeeds(
|
||||
"journalctl -o cat -u snapserver.service | grep -q 'Hello from'"
|
||||
)
|
||||
|
||||
@@ -24,8 +24,8 @@ let
|
||||
sha256Hash = "sha256-ciu+To5Kcus8FPDz1D43AD+qOqfPHaW4JsEBr9fx2PE=";
|
||||
};
|
||||
latestVersion = {
|
||||
version = "2025.2.3.3"; # "Android Studio Otter 3 Feature Drop | 2025.2.3 Canary 3"
|
||||
sha256Hash = "sha256-cU6EFqmM1GsaWdGE1sbR/9eHXiYXKYV/m1/H0a+A1Bw=";
|
||||
version = "2025.2.3.4"; # "Android Studio Otter 3 Feature Drop | 2025.2.3 Canary 4"
|
||||
sha256Hash = "sha256-Oi+sGK8d7ms/BYt7F9xwEFGPdQUEHhfdclKQi9vAxgU=";
|
||||
};
|
||||
in
|
||||
{
|
||||
|
||||
@@ -2808,8 +2808,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "vscord";
|
||||
publisher = "leonardssh";
|
||||
version = "5.3.5";
|
||||
hash = "sha256-b5osn7UeSkr8gnLZ/PkrxS0WmgHUwfS0jnwTc1Uw0Sg=";
|
||||
version = "5.3.8";
|
||||
hash = "sha256-tqyhu6pa+UFwCYpS3xioeSw4oET0TFfQmJ8hsSz3q/k=";
|
||||
};
|
||||
meta = {
|
||||
description = "Highly customizable Discord Rich Presence extension for Visual Studio Code";
|
||||
|
||||
@@ -19,13 +19,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cherry-studio";
|
||||
version = "1.7.1";
|
||||
version = "1.7.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "CherryHQ";
|
||||
repo = "cherry-studio";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-A+J00wHJyCrxZSG80FKHw/c9EUfJP53v0KLjE9Jgmp8=";
|
||||
hash = "sha256-Y60SW97584LTZXD4tJbr3Sv/6etKtTjr+3xfYBvKDWY=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
offlineCache = yarn-berry.fetchYarnBerryDeps {
|
||||
inherit (finalAttrs) src missingHashes;
|
||||
hash = "sha256-UZm0XJ/pjfADETd6sFoMCRB0axod3WybVW+RcPuX8ms=";
|
||||
hash = "sha256-KggPuCeezgXhfMctR6NndTwvsNq9StQNAXVEOWLMt50=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "cloudlog";
|
||||
version = "2.7.6";
|
||||
version = "2.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "magicbug";
|
||||
repo = "Cloudlog";
|
||||
rev = version;
|
||||
hash = "sha256-p9PmWRKvKGGZrexZJwYtb+LYto9npZ606QVo4pvDBak=";
|
||||
hash = "sha256-F8iEs7pQmdzQFajg+auA9cAvVzeL7fE1Zk/xXXO7xOQ=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -40,6 +40,9 @@ stdenvNoCC.mkDerivation rec {
|
||||
license = lib.licenses.mit;
|
||||
homepage = "https://www.magicbug.co.uk/cloudlog";
|
||||
platforms = php.meta.platforms;
|
||||
maintainers = with lib.maintainers; [ melling ];
|
||||
maintainers = with lib.maintainers; [
|
||||
melling
|
||||
haennetz
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
doxygen,
|
||||
example-robot-data,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
ffmpeg,
|
||||
ipopt,
|
||||
lapack,
|
||||
lib,
|
||||
@@ -15,24 +15,15 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "crocoddyl";
|
||||
version = "3.1.0";
|
||||
version = "3.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "loco-3d";
|
||||
repo = "crocoddyl";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-m7UiCa8ydjsAIhsFiShTi3/JaKgq2TCQ1XYAMyTNg1U=";
|
||||
hash = "sha256-EYvakM81Ot/AtXElJbcQNo7IydBtRgy+8a0cY06CzQ8=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# ref. https://github.com/loco-3d/crocoddyl/pull/1440 merged upstream
|
||||
(fetchpatch {
|
||||
name = "add-missing-include.patch";
|
||||
url = "https://github.com/loco-3d/crocoddyl/commit/6994bea7bb3ae6027f5b611ef1635768538150fd.patch";
|
||||
hash = "sha256-XbQKRWpWm5Rk4figoA2swId4Pz2xKDpU4NFP46p8WO0=";
|
||||
})
|
||||
];
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"doc"
|
||||
@@ -54,6 +45,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
pinocchio
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
ffmpeg
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "INSTALL_DOCUMENTATION" true)
|
||||
(lib.cmakeBool "BUILD_EXAMPLES" false)
|
||||
@@ -72,6 +67,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
meta = {
|
||||
description = "Crocoddyl optimal control library";
|
||||
homepage = "https://github.com/loco-3d/crocoddyl";
|
||||
changelog = "https://github.com/loco-3d/crocoddyl/blob/devel/CHANGELOG.md";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [
|
||||
nim65s
|
||||
|
||||
@@ -21,21 +21,8 @@ buildGoModule rec {
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
# required for TestHTTPHandlerReadWrite and other tests
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
checkFlags =
|
||||
let
|
||||
skippedTests = [
|
||||
"TestMountIndex" # FUSE does not work in sandbox
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# sendfile is not permitted in Darwin sandbox
|
||||
"TestS3StoreGetChunk/fail"
|
||||
"TestS3StoreGetChunk/recover"
|
||||
];
|
||||
in
|
||||
[ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
|
||||
# nix builder doesn't have access to test data; tests fail for reasons unrelated to binary being bad.
|
||||
doCheck = false;
|
||||
|
||||
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
|
||||
installShellCompletion --cmd desync \
|
||||
|
||||
@@ -28,14 +28,14 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "eloquent";
|
||||
version = "1.3";
|
||||
version = "1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sonnyp";
|
||||
repo = "Eloquent";
|
||||
tag = "v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-+XAiRB5dRq2A2XP9ZdmIfxLjhCXb72TXRxnLnOprNT4=";
|
||||
hash = "sha256-wY/blD399GhEOdnQf/uVLHSmYUZTO1ZnL6+oOAhVqFA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -7,18 +7,18 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "emmylua_check";
|
||||
version = "0.17.0";
|
||||
version = "0.18.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "EmmyLuaLs";
|
||||
repo = "emmylua-analyzer-rust";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-CAYSaRjpQwnPZojeX/VyV9/xz8SY8Lt+e1wc79qvGZg=";
|
||||
hash = "sha256-JXe+I0CViJAXOnWzilYpjWquYFzZGIP5y6HS6KosYPU=";
|
||||
};
|
||||
|
||||
buildAndTestSubdir = "crates/emmylua_check";
|
||||
|
||||
cargoHash = "sha256-nGSN7LqvAwYg2Z+2tTAc+vIwrYmb+W0OLw9EeG7e/V8=";
|
||||
cargoHash = "sha256-UVuXeGmSvAwHs/U0s/mByiZCwa2refz1l8eJvcCoagk=";
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
versionCheckHook
|
||||
|
||||
@@ -1,24 +1,31 @@
|
||||
{
|
||||
lib,
|
||||
python3,
|
||||
python3Packages,
|
||||
fetchFromGitHub,
|
||||
exabgp,
|
||||
testers,
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "exabgp";
|
||||
version = "4.2.25";
|
||||
format = "pyproject";
|
||||
version = "5.0.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Exa-Networks";
|
||||
repo = "exabgp";
|
||||
tag = version;
|
||||
hash = "sha256-YBxRDcm4Qt44W3lBHDwdvZq2pXEujbqJDh24JbXthMg=";
|
||||
hash = "sha256-UFo92jS/QmwTUEAhxQnbtY9K905jiBrJujfqGIUCUOg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3.pkgs; [
|
||||
postPatch = ''
|
||||
# https://github.com/Exa-Networks/exabgp/pull/1344
|
||||
substituteInPlace src/exabgp/application/healthcheck.py --replace-fail \
|
||||
"f'/sbin/ip -o address show dev {ifname}'.split()" \
|
||||
'["ip", "-o", "address", "show", "dev", ifname]'
|
||||
'';
|
||||
|
||||
build-system = with python3Packages; [
|
||||
setuptools
|
||||
];
|
||||
|
||||
@@ -26,13 +33,31 @@ python3.pkgs.buildPythonApplication rec {
|
||||
"exabgp"
|
||||
];
|
||||
|
||||
nativeCheckInputs = with python3.pkgs; [
|
||||
nativeCheckInputs = with python3Packages; [
|
||||
hypothesis
|
||||
psutil
|
||||
pytest-asyncio
|
||||
pytest-benchmark
|
||||
pytest-timeout
|
||||
pytest-xdist
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
pytestFlags = [ "--benchmark-disable" ];
|
||||
|
||||
enabledTests = [ "tests" ];
|
||||
|
||||
disabledTests = [
|
||||
# AssertionError: Server should receive connection
|
||||
"test_outgoing_connection_establishment"
|
||||
];
|
||||
|
||||
passthru.tests = {
|
||||
version = testers.testVersion {
|
||||
package = exabgp;
|
||||
command = "exabgp version";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -31,13 +31,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "flaresolverr";
|
||||
version = "3.4.3";
|
||||
version = "3.4.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FlareSolverr";
|
||||
repo = "FlareSolverr";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-5insO3XfIN9vGuPIeVBcLhsYPCO29mR41MFtIy8jeXE=";
|
||||
hash = "sha256-DeFp76VwMGBAWOsI3S3jm1qNbPw554zJZfE7hotUedY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activesupport (7.2.2.1)
|
||||
activesupport (7.2.3)
|
||||
base64
|
||||
benchmark (>= 0.3)
|
||||
bigdecimal
|
||||
@@ -13,14 +13,14 @@ GEM
|
||||
minitest (>= 5.1)
|
||||
securerandom (>= 0.3)
|
||||
tzinfo (~> 2.0, >= 2.0.5)
|
||||
base64 (0.2.0)
|
||||
benchmark (0.4.0)
|
||||
bigdecimal (3.1.9)
|
||||
base64 (0.3.0)
|
||||
benchmark (0.5.0)
|
||||
bigdecimal (3.3.1)
|
||||
concurrent-ruby (1.3.5)
|
||||
connection_pool (2.5.0)
|
||||
connection_pool (2.5.5)
|
||||
dalli (3.2.8)
|
||||
date (3.4.1)
|
||||
drb (2.2.1)
|
||||
date (3.5.0)
|
||||
drb (2.2.3)
|
||||
faraday (1.10.4)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
@@ -34,10 +34,10 @@ GEM
|
||||
faraday-retry (~> 1.0)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
faraday-em_http (1.0.0)
|
||||
faraday-em_synchrony (1.0.0)
|
||||
faraday-em_synchrony (1.0.1)
|
||||
faraday-excon (1.1.0)
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-multipart (1.1.0)
|
||||
faraday-multipart (1.1.1)
|
||||
multipart-post (~> 2.0)
|
||||
faraday-net_http (1.0.2)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
@@ -62,26 +62,26 @@ GEM
|
||||
thor (~> 1.0)
|
||||
i18n (1.14.7)
|
||||
concurrent-ruby (~> 1.0)
|
||||
logger (1.6.6)
|
||||
logger (1.7.0)
|
||||
lru_redux (1.1.0)
|
||||
mini_portile2 (2.8.8)
|
||||
minitest (5.25.5)
|
||||
mini_portile2 (2.8.9)
|
||||
minitest (5.26.2)
|
||||
multipart-post (2.4.1)
|
||||
mustermann (3.0.3)
|
||||
mustermann (3.0.4)
|
||||
ruby2_keywords (~> 0.0.1)
|
||||
nio4r (2.7.4)
|
||||
psych (5.2.3)
|
||||
nio4r (2.7.5)
|
||||
psych (5.2.6)
|
||||
date
|
||||
stringio
|
||||
puma (6.6.0)
|
||||
puma (6.6.1)
|
||||
nio4r (~> 2.0)
|
||||
rack (2.2.13)
|
||||
rack (2.2.21)
|
||||
rack-protection (3.2.0)
|
||||
base64 (>= 0.1.0)
|
||||
rack (~> 2.2, >= 2.2.4)
|
||||
ruby2_keywords (0.0.5)
|
||||
securerandom (0.4.1)
|
||||
sequel (5.90.0)
|
||||
sequel (5.98.0)
|
||||
bigdecimal
|
||||
server_health_check (1.0.2)
|
||||
server_health_check-rack (0.1.0)
|
||||
@@ -93,11 +93,11 @@ GEM
|
||||
tilt (~> 2.0)
|
||||
sqlite3 (1.7.3)
|
||||
mini_portile2 (~> 2.8.0)
|
||||
stringio (3.1.5)
|
||||
stringio (3.1.8)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
thor (1.3.2)
|
||||
tilt (2.6.0)
|
||||
thor (1.4.0)
|
||||
tilt (2.6.1)
|
||||
tzinfo (2.0.6)
|
||||
concurrent-ruby (~> 1.0)
|
||||
unicode-display_width (2.6.0)
|
||||
@@ -109,4 +109,4 @@ DEPENDENCIES
|
||||
gemstash
|
||||
|
||||
BUNDLED WITH
|
||||
2.6.2
|
||||
2.7.2
|
||||
|
||||
@@ -17,40 +17,40 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1xa7hr4gp2p86ly6n1j2skyx8pfg6yi621kmnh7zhxr9m7wcnaw4";
|
||||
sha256 = "043vbilaw855c91n5l7g0k0wxj63kngj911685qy74xc1mvwjxan";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.2.2.1";
|
||||
version = "7.2.3";
|
||||
};
|
||||
base64 = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
|
||||
sha256 = "0yx9yn47a8lkfcjmigk79fykxvr80r4m1i35q82sxzynpbm7lcr7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.2.0";
|
||||
version = "0.3.0";
|
||||
};
|
||||
benchmark = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0jl71qcgamm96dzyqk695j24qszhcc7liw74qc83fpjljp2gh4hg";
|
||||
sha256 = "0v1337j39w1z7x9zs4q7ag0nfv4vs4xlsjx2la0wpv8s6hig2pa6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.4.0";
|
||||
version = "0.5.0";
|
||||
};
|
||||
bigdecimal = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1k6qzammv9r6b2cw3siasaik18i6wjc5m0gw5nfdc6jj64h79z1g";
|
||||
sha256 = "0612spks81fvpv2zrrv3371lbs6mwd7w6g5zafglyk75ici1x87a";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.1.9";
|
||||
version = "3.3.1";
|
||||
};
|
||||
concurrent-ruby = {
|
||||
groups = [ "default" ];
|
||||
@@ -67,10 +67,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1z7bag6zb2vwi7wp2bkdkmk7swkj6zfnbsnc949qq0wfsgw94fr3";
|
||||
sha256 = "1b8nlxr5z843ii7hfk6igpr5acw3k2ih9yjrgkyz2gbmallgjkz5";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.5.0";
|
||||
version = "2.5.5";
|
||||
};
|
||||
dalli = {
|
||||
groups = [ "default" ];
|
||||
@@ -87,20 +87,20 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0kz6mc4b9m49iaans6cbx031j9y7ldghpi5fzsdh0n3ixwa8w9mz";
|
||||
sha256 = "1rbfqkzr6i8b6538z16chvrkgywf5p5vafsgmnbmvrmh0ingsx2y";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.4.1";
|
||||
version = "3.5.0";
|
||||
};
|
||||
drb = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0h5kbj9hvg5hb3c7l425zpds0vb42phvln2knab8nmazg2zp5m79";
|
||||
sha256 = "0wrkl7yiix268s2md1h6wh91311w95ikd8fy8m5gx589npyxc00b";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.2.1";
|
||||
version = "2.2.3";
|
||||
};
|
||||
faraday = {
|
||||
dependencies = [
|
||||
@@ -140,10 +140,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6";
|
||||
sha256 = "0l0pz1wk2mk6p6hbfd86jfad59jyk201y1db379qhc2lrxfy8g5z";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.0";
|
||||
version = "1.0.1";
|
||||
};
|
||||
faraday-excon = {
|
||||
groups = [ "default" ];
|
||||
@@ -171,10 +171,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0l87r9jg06nsh24gwwd1jdnxb1zq89ffybnxab0dd90nfcf0ysw5";
|
||||
sha256 = "00w9imp55hi81q0wsgwak90ldkk7gbyb8nzmmv8hy0s907s8z8bp";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.0";
|
||||
version = "1.1.1";
|
||||
};
|
||||
faraday-net_http = {
|
||||
groups = [ "default" ];
|
||||
@@ -278,10 +278,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "05s008w9vy7is3njblmavrbdzyrwwc1fsziffdr58w9pwqj8sqfx";
|
||||
sha256 = "00q2zznygpbls8asz5knjvvj2brr3ghmqxgr83xnrdj4rk3xwvhr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.6.6";
|
||||
version = "1.7.0";
|
||||
};
|
||||
lru_redux = {
|
||||
groups = [ "default" ];
|
||||
@@ -298,20 +298,20 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0x8asxl83msn815lwmb2d7q5p29p7drhjv5va0byhk60v9n16iwf";
|
||||
sha256 = "12f2830x7pq3kj0v8nz0zjvaw02sv01bqs1zwdrc04704kwcgmqc";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.8.8";
|
||||
version = "2.8.9";
|
||||
};
|
||||
minitest = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0mn7q9yzrwinvfvkyjiz548a4rmcwbmz2fn9nyzh4j1snin6q6rr";
|
||||
sha256 = "1qyda32pf9jivaw2m7yymxshqxxd0fhjn7zpbagvmfc5c65128gh";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.25.5";
|
||||
version = "5.26.2";
|
||||
};
|
||||
multipart-post = {
|
||||
groups = [ "default" ];
|
||||
@@ -329,20 +329,20 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "123ycmq6pkivv29bqbv79jv2cs04xakzd0fz1lalgvfs5nxfky6i";
|
||||
sha256 = "08ma2fmxlm6i7lih4mc3har2fzsbj1pl4hhva65kljf6nfvdryl5";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.0.3";
|
||||
version = "3.0.4";
|
||||
};
|
||||
nio4r = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1a9www524fl1ykspznz54i0phfqya4x45hqaz67in9dvw1lfwpfr";
|
||||
sha256 = "18fwy5yqnvgixq3cn0h63lm8jaxsjjxkmj8rhiv8wpzv9271d43c";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.7.4";
|
||||
version = "2.7.5";
|
||||
};
|
||||
psych = {
|
||||
dependencies = [
|
||||
@@ -353,10 +353,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1vjrx3yd596zzi42dcaq5xw7hil1921r769dlbz08iniaawlp9c4";
|
||||
sha256 = "0vii1xc7x81hicdbp7dlllhmbw5w3jy20shj696n0vfbbnm2hhw1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.2.3";
|
||||
version = "5.2.6";
|
||||
};
|
||||
puma = {
|
||||
dependencies = [ "nio4r" ];
|
||||
@@ -364,20 +364,20 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "11xd3207k5rl6bz0qxhcb3zcr941rhx7ig2f19gxxmdk7s3hcp7j";
|
||||
sha256 = "07pajhv7pqz82kcjc6017y4d0hwz5kp746cydpx1npd79r56xddr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.6.0";
|
||||
version = "6.6.1";
|
||||
};
|
||||
rack = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1yzhcwvfkrlb8l79w24yjclv636jn6rnznp95shmssk934bi1vnc";
|
||||
sha256 = "0fgpa9qm5qgza69fjnagg2alxs2wmj41aq7z4kj5yib50wpzgqhl";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.2.13";
|
||||
version = "2.2.21";
|
||||
};
|
||||
rack-protection = {
|
||||
dependencies = [
|
||||
@@ -419,10 +419,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1s5qhylirrmfbjhdjdfqaiksjlaqmgixl25sxd8znq8dqwqlrydz";
|
||||
sha256 = "0irbjils48r7w14jacka3l96jzh534d98vb88yj1qc9nl43r3r2g";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.90.0";
|
||||
version = "5.98.0";
|
||||
};
|
||||
server_health_check = {
|
||||
groups = [ "default" ];
|
||||
@@ -477,10 +477,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1j1mgvrgkxhadi6nb6pz1kcff7gsb5aivj1vfhsia4ssa5hj9adw";
|
||||
sha256 = "1v74k5yw7ndikr53wgbjn6j51p83qnzqbn9z4b53r102jcx3ri4r";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.1.5";
|
||||
version = "3.1.8";
|
||||
};
|
||||
terminal-table = {
|
||||
dependencies = [ "unicode-display_width" ];
|
||||
@@ -498,20 +498,20 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1nmymd86a0vb39pzj2cwv57avdrl6pl3lf5bsz58q594kqxjkw7f";
|
||||
sha256 = "0gcarlmpfbmqnjvwfz44gdjhcmm634di7plcx2zdgwdhrhifhqw7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.3.2";
|
||||
version = "1.4.0";
|
||||
};
|
||||
tilt = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0szpapi229v3scrvw1pgy0vpjm7z3qlf58m1198kxn70cs278g96";
|
||||
sha256 = "0w27v04d7rnxjr3f65w1m7xyvr6ch6szjj2v5wv1wz6z5ax9pa9m";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.6.0";
|
||||
version = "2.6.1";
|
||||
};
|
||||
tzinfo = {
|
||||
dependencies = [ "concurrent-ruby" ];
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
}:
|
||||
let
|
||||
pname = "hydralauncher";
|
||||
version = "3.7.5";
|
||||
version = "3.7.6";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/hydralauncher/hydra/releases/download/v${version}/hydralauncher-${version}.AppImage";
|
||||
hash = "sha256-wYhkuDA+Fxj4blVBw670UQ3uAvBfM5suWq5LOixI9Ps=";
|
||||
hash = "sha256-6ERgFwJkRZH1Cj6ucswLU0EpwmjDE0gcmFYm5JbLuK0=";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 { inherit pname src version; };
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchurl,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "meshtastic-web";
|
||||
version = "2.6.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/meshtastic/web/releases/download/v${finalAttrs.version}/build.tar";
|
||||
hash = "sha256-o09DYKBIZUOmmN4g3lM1V0kudjq0Wfwn/OqV0ElRRO0=";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
gzip -dr .
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out
|
||||
cp -ar . $out/
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Meshtastic Web Client/JS Monorepo";
|
||||
homepage = "https://github.com/meshtastic/web";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
platforms = lib.platforms.all;
|
||||
maintainers = with lib.maintainers; [ drupol ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,7 @@
|
||||
{ lib, python3Packages }:
|
||||
|
||||
python3Packages.toPythonApplication (
|
||||
python3Packages.meshtastic.overridePythonAttrs (prev: {
|
||||
dependencies = prev.dependencies ++ lib.concatAttrValues prev.optional-dependencies;
|
||||
})
|
||||
)
|
||||
@@ -1,9 +1,13 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
autoPatchelfHook,
|
||||
dpkg,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
fetchzip,
|
||||
libarchive,
|
||||
pkg-config,
|
||||
platformio-core,
|
||||
writableTmpDirAsHomeHook,
|
||||
bluez,
|
||||
i2c-tools,
|
||||
libX11,
|
||||
libgpiod_1,
|
||||
@@ -11,65 +15,146 @@
|
||||
libusb1,
|
||||
libuv,
|
||||
libxkbcommon,
|
||||
udevCheckHook,
|
||||
ulfius,
|
||||
openssl,
|
||||
gnutls,
|
||||
jansson,
|
||||
zlib,
|
||||
libmicrohttpd,
|
||||
orcania,
|
||||
yder,
|
||||
yaml-cpp,
|
||||
udevCheckHook,
|
||||
versionCheckHook,
|
||||
makeBinaryWrapper,
|
||||
python3Packages,
|
||||
enableDefaultConfig ? false,
|
||||
meshtastic-web, # Only used when `enableDefaultConfig` is set to `true`.
|
||||
nixosTests,
|
||||
}:
|
||||
|
||||
assert builtins.isBool enableDefaultConfig;
|
||||
|
||||
let
|
||||
version = "2.7.16.a597230";
|
||||
|
||||
platformio-deps-native = fetchzip {
|
||||
url = "https://github.com/meshtastic/firmware/releases/download/v${version}/platformio-deps-native-tft-${version}.zip";
|
||||
hash = "sha256-Jo7e6zsCaiJs6NyIRmD6BWJFwbs0xVlUih206ePUpwk=";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "meshtasticd";
|
||||
version = "2.6.11.25";
|
||||
inherit version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.opensuse.org/repositories/network:/Meshtastic:/beta/Debian_12/amd64/meshtasticd_${finalAttrs.version}~obs60ec05e~beta_amd64.deb";
|
||||
hash = "sha256-7JCv+1YgsCLwboGE/2f+8iyLLoUsKn3YdJ9Atnfj7Zw=";
|
||||
src = fetchFromGitHub {
|
||||
owner = "meshtastic";
|
||||
repo = "firmware";
|
||||
hash = "sha256-oU3Z8qjBNeNGPGT74VStAPHgsGqsQJKngHJR6m2CBa0=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
dpkg
|
||||
];
|
||||
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
libarchive
|
||||
pkg-config
|
||||
# This has been advised by the Meshtastic's developer.
|
||||
# Without it, it will try to install grpcio-tools by itself and fail.
|
||||
(platformio-core.overridePythonAttrs (oldAttrs: {
|
||||
dependencies = oldAttrs.dependencies ++ [
|
||||
python3Packages.grpcio-tools
|
||||
];
|
||||
}))
|
||||
writableTmpDirAsHomeHook
|
||||
makeBinaryWrapper
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
bluez
|
||||
gnutls
|
||||
i2c-tools
|
||||
jansson
|
||||
libX11
|
||||
libgpiod_1
|
||||
libinput
|
||||
libmicrohttpd
|
||||
libusb1
|
||||
libuv
|
||||
libxkbcommon
|
||||
openssl
|
||||
orcania
|
||||
ulfius
|
||||
yaml-cpp
|
||||
yder
|
||||
zlib
|
||||
];
|
||||
|
||||
autoPatchelfIgnoreMissingDeps = [
|
||||
"libyaml-cpp.so.0.7"
|
||||
];
|
||||
preConfigure = ''
|
||||
mkdir -p platformio-deps-native
|
||||
cp -ar ${platformio-deps-native}/. platformio-deps-native
|
||||
chmod +w -R platformio-deps-native
|
||||
|
||||
export PLATFORMIO_CORE_DIR=platformio-deps-native/core
|
||||
export PLATFORMIO_LIBDEPS_DIR=platformio-deps-native/libdeps
|
||||
export PLATFORMIO_PACKAGES_DIR=platformio-deps-native/packages
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
platformio run --environment native-tft
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p {$out,$out/bin}
|
||||
cp -r {usr,lib} $out/
|
||||
install -d $out/share/meshtasticd/config.d
|
||||
install -d $out/share/meshtasticd/available.d
|
||||
cp -R bin/config.d/* $out/share/meshtasticd/available.d
|
||||
|
||||
patchelf --replace-needed libyaml-cpp.so.0.7 libyaml-cpp.so.0.8 $out/usr/bin/meshtasticd
|
||||
install -Dm644 bin/org.meshtastic.meshtasticd.svg -t $out/share/icons/hicolor/scalable/apps/
|
||||
install -Dm644 bin/org.meshtastic.meshtasticd.desktop -t $out/share/applications/
|
||||
install -Dm755 .pio/build/native-tft/program $out/bin/meshtasticd
|
||||
|
||||
ln -s $out/usr/bin/meshtasticd $out/bin/meshtasticd
|
||||
|
||||
substituteInPlace $out/lib/systemd/system/meshtasticd.service \
|
||||
--replace-fail "/usr/bin/meshtasticd" "$out/bin/meshtasticd" \
|
||||
--replace-fail 'User=meshtasticd' 'DynamicUser=yes' \
|
||||
--replace-fail 'Group=meshtasticd' ""
|
||||
install -Dm644 bin/99-meshtasticd-udev.rules -t $out/etc/udev/rules.d
|
||||
''
|
||||
+ lib.optionalString enableDefaultConfig ''
|
||||
install -Dm644 bin/config-dist.yaml $out/share/meshtasticd/config.yaml
|
||||
substituteInPlace $out/share/meshtasticd/config.yaml \
|
||||
--replace-fail "/etc/meshtasticd/config.d" "$out/share/meshtasticd/config.d" \
|
||||
--replace-fail "/etc/meshtasticd/available.d" "$out/share/meshtasticd/available.d"
|
||||
wrapProgram $out/bin/meshtasticd \
|
||||
--add-flags "-c $out/share/meshtasticd/config.yaml"
|
||||
install -Dm644 bin/config.d/MUI/X11_480x480.yaml $out/share/meshtasticd/config.d/MUI.yaml
|
||||
substituteInPlace $out/share/meshtasticd/config.yaml \
|
||||
--replace-fail "/usr/share/meshtasticd/web" "${meshtastic-web}"
|
||||
|
||||
install -d $out/share/meshtasticd/maps
|
||||
for file in pio/libdeps/native-tft/meshtastic-device-ui/maps/*.zip; do
|
||||
bsdtar -xf "$file" --no-same-owner --strip-components=1 -C $out/share/meshtasticd/maps;
|
||||
done
|
||||
''
|
||||
+ ''
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
nativeInstallCheckInputs = [ udevCheckHook ];
|
||||
nativeInstallCheckInputs = [
|
||||
udevCheckHook
|
||||
versionCheckHook
|
||||
];
|
||||
versionCheckProgramArg = "--version";
|
||||
preVersionCheck = ''
|
||||
version="${lib.versions.major finalAttrs.version}.${lib.versions.minor finalAttrs.version}.${lib.versions.patch finalAttrs.version}"
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
inherit (nixosTests) meshtasticd;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Meshtastic daemon for communicating with Meshtastic devices";
|
||||
@@ -77,12 +162,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
This package has `udev` rules installed as part of the package.
|
||||
Add `services.udev.packages = [ pkgs.meshtasticd ]` into your NixOS
|
||||
configuration to enable them.
|
||||
|
||||
To enable the default configuration, set the `enableDefaultConfig` parameter to true.
|
||||
'';
|
||||
homepage = "https://github.com/meshtastic/firmware";
|
||||
mainProgram = "meshtasticd";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ drupol ];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -12,14 +12,14 @@
|
||||
}:
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "monophony";
|
||||
version = "4.2.0";
|
||||
version = "4.2.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "zehkira";
|
||||
repo = "monophony";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-SrRWMbI+seA7LlOU6dxlbhRKM8Ufa3KLo1tjeCtBWEY=";
|
||||
hash = "sha256-3RuAFg+9Mi+tBuLmXyWlFFNOfrUvrkNvedo9Au3tMYU=";
|
||||
};
|
||||
|
||||
sourceRoot = "${src.name}/source";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
gem 'oxidized', '0.34.3'
|
||||
gem 'oxidized-web', '0.17.1'
|
||||
gem 'oxidized', '0.35.0'
|
||||
gem 'oxidized-web', '0.18.0'
|
||||
gem 'oxidized-script', '0.7.0'
|
||||
gem 'psych', '~> 5.0'
|
||||
|
||||
@@ -31,7 +31,7 @@ GEM
|
||||
net-ssh (7.3.0)
|
||||
net-telnet (0.2.0)
|
||||
nio4r (2.7.4)
|
||||
oxidized (0.34.3)
|
||||
oxidized (0.35.0)
|
||||
asetus (~> 0.4)
|
||||
bcrypt_pbkdf (~> 1.0)
|
||||
ed25519 (~> 1.2)
|
||||
@@ -49,16 +49,16 @@ GEM
|
||||
oxidized-script (0.7.0)
|
||||
oxidized (~> 0.29)
|
||||
slop (~> 4.6)
|
||||
oxidized-web (0.17.1)
|
||||
oxidized-web (0.18.0)
|
||||
charlock_holmes (>= 0.7.5, < 0.8.0)
|
||||
emk-sinatra-url-for (~> 0.2)
|
||||
haml (>= 6.0.0, < 6.4.0)
|
||||
htmlentities (>= 4.3.0, < 4.4.0)
|
||||
json (>= 2.3.0, < 2.14.0)
|
||||
oxidized (~> 0.34.1)
|
||||
puma (~> 6.6.0)
|
||||
sinatra (~> 4.1.1)
|
||||
sinatra-contrib (~> 4.1.1)
|
||||
haml (>= 6.0.0, < 7.0.0)
|
||||
htmlentities (>= 4.3.0, < 4.5.0)
|
||||
json (>= 2.3.0, < 2.17.0)
|
||||
oxidized (>= 0.34.1)
|
||||
puma (>= 6.6, < 7.2)
|
||||
sinatra (>= 4.1.1, < 4.3.0)
|
||||
sinatra-contrib (>= 4.1.1, < 4.3.0)
|
||||
psych (5.2.6)
|
||||
date
|
||||
stringio
|
||||
@@ -105,9 +105,9 @@ PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
oxidized (= 0.34.3)
|
||||
oxidized (= 0.35.0)
|
||||
oxidized-script (= 0.7.0)
|
||||
oxidized-web (= 0.17.1)
|
||||
oxidized-web (= 0.18.0)
|
||||
psych (~> 5.0)
|
||||
|
||||
BUNDLED WITH
|
||||
|
||||
@@ -243,10 +243,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "16k60qxp2lw8l4ny21rk0m6vx3lipdhxp0lslmwn7gqi8wyw6ra8";
|
||||
sha256 = "1s7v9w357bc5xb89an4kclqmfjv2j6p9gnvsf7s2mnrgg482j76v";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.34.3";
|
||||
version = "0.35.0";
|
||||
};
|
||||
oxidized-script = {
|
||||
dependencies = [
|
||||
@@ -278,10 +278,10 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1kcc7qlz3w530ssfnc7rgqhcwc4f4k3lbgayffwhnzl73s8mdld9";
|
||||
sha256 = "19sz075liiqim98jvnb3jawxdpd8kk146bwvqzwvmimbgdzf8xfr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.17.1";
|
||||
version = "0.18.0";
|
||||
};
|
||||
psych = {
|
||||
dependencies = [
|
||||
|
||||
@@ -28,13 +28,13 @@
|
||||
xorg,
|
||||
}:
|
||||
let
|
||||
version = "2.20.0";
|
||||
version = "2.20.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "paperless-ngx";
|
||||
repo = "paperless-ngx";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-uf6/cl41lp2zEp3+gTbTYQlJcM3bdLTtOo+vEUrGIco=";
|
||||
hash = "sha256-16eW8Yca/HgIr0wiFQq6Q5czCgA7gac1sR1q2g+ZkEc=";
|
||||
};
|
||||
|
||||
python = python3.override {
|
||||
@@ -80,7 +80,7 @@ let
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
fetcherVersion = 2;
|
||||
hash = "sha256-JqFkA8t5D0SmhlKwhiKIztzWGXf+vO0Ro1ABVGXVzS8=";
|
||||
hash = "sha256-+fE+IUyhoENnweFggLuS9LHwcLTZrLS1TBzuXHkaNAk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
unzip,
|
||||
curl,
|
||||
jq,
|
||||
installShellFiles,
|
||||
writeShellScript,
|
||||
common-updater-scripts,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "speakeasy-cli";
|
||||
version = "1.636.3";
|
||||
|
||||
sourceRoot = ".";
|
||||
src =
|
||||
finalAttrs.passthru.sources.${stdenv.hostPlatform.system}
|
||||
or (throw "Unsupported System: ${stdenv.hostPlatform.system}");
|
||||
|
||||
nativeBuildInputs = [
|
||||
unzip
|
||||
installShellFiles
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -Dm 755 ./speakeasy $out/bin/speakeasy
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
sources = {
|
||||
"x86_64-darwin" = fetchurl {
|
||||
url = "https://github.com/speakeasy-api/speakeasy/releases/download/v${finalAttrs.version}/speakeasy_darwin_amd64.zip";
|
||||
hash = "sha256-Q1m4g5XBNAaxJZyYz6cD/7asTUGZMa493XVVJ9s0byE=";
|
||||
};
|
||||
"x86_64-linux" = fetchurl {
|
||||
url = "https://github.com/speakeasy-api/speakeasy/releases/download/v${finalAttrs.version}/speakeasy_linux_amd64.zip";
|
||||
hash = "sha256-H1c+b4/fBWudc3tAHTNdWwa9aoe8HpffRaLRU7OOWs4=";
|
||||
};
|
||||
"aarch64-darwin" = fetchurl {
|
||||
url = "https://github.com/speakeasy-api/speakeasy/releases/download/v${finalAttrs.version}/speakeasy_darwin_arm64.zip";
|
||||
hash = "sha256-xO9S9gjiMel2ZB8Dq2nN5O+zIB/4qf5Z2xeXS0wiprc=";
|
||||
};
|
||||
"aarch64-linux" = fetchurl {
|
||||
url = "https://github.com/speakeasy-api/speakeasy/releases/download/v${finalAttrs.version}/speakeasy_linux_arm64.zip";
|
||||
hash = "sha256-zH/HyA6MrrCh9j53hoqfVSiRqIoL6IOCV/nsAwRlgjg=";
|
||||
};
|
||||
};
|
||||
updateScript = writeShellScript "update-speakeasy" ''
|
||||
set -o errxt
|
||||
export PATH="${
|
||||
lib.makeBinPath [
|
||||
curl
|
||||
jq
|
||||
common-updater-scripts
|
||||
]
|
||||
}"
|
||||
|
||||
NEW_VERSION=$(curl --silent https://api.github.com/repos/speakeasy-api/speakeasy/releases/latest | jq '.tag_name' | ltrimstr("v") --raw-output)
|
||||
if [[ ${finalAttrs.version} = "$NEW_VERSION"]]; then
|
||||
echo "The new version is the same as old"
|
||||
exit 0
|
||||
fi
|
||||
for platfrom in ${lib.escapeShellArgs finalAttrs.meta.platforms}; do
|
||||
update-source-version "speakeasy-cli" "$NEW_VERSION" --ignore-same-version --source-key="sources.$platform"
|
||||
'';
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "CLI tool for Speakeasy";
|
||||
homepage = "https://www.speakeasyapi.dev/";
|
||||
changelog = "https://github.com/speakeasy-api/speakeasy/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.elastic20;
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
maintainers = with lib.maintainers; [
|
||||
eveeifyeve
|
||||
];
|
||||
mainProgram = "speakeasy";
|
||||
platforms = builtins.attrNames finalAttrs.passthru.sources;
|
||||
};
|
||||
})
|
||||
@@ -12,11 +12,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "spigot";
|
||||
version = "20220606.eb585f8";
|
||||
version = "20240909.f158e08";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.chiark.greenend.org.uk/~sgtatham/spigot/spigot-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-JyNNZo/HUPWv5rYtlNYp8Hl0C7i3yxEyKm+77ysN7Ao=";
|
||||
hash = "sha256-8re4ubDgsTjc/WrE60b6eXBrGEJSKJTEXd/XMdJ79nM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,15 +6,15 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "tun2proxy";
|
||||
version = "0.7.16";
|
||||
version = "0.7.17";
|
||||
|
||||
src = fetchCrate {
|
||||
pname = "tun2proxy";
|
||||
inherit (finalAttrs) version;
|
||||
hash = "sha256-VO0dxX2FVKFSW157HYJxvlc2Xe6W+npw+4ls/1ePu80=";
|
||||
hash = "sha256-QcXFDR5JbjGX2KjGBD2Wd5eSFVTxfXUkSCWhV5QO+r4=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-CWaHHKuDr731cf3tms4Sg9NvCjW0TgmxG3vO37z/UrE=";
|
||||
cargoHash = "sha256-jzUL342AOgaWnS1NBbI/WMXiGHht+eva3yGVlAQeJfo=";
|
||||
|
||||
env.GIT_HASH = "000000000000000000000000000000000000000000000000000";
|
||||
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "vacuum-go";
|
||||
version = "0.20.4";
|
||||
version = "0.20.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "daveshanley";
|
||||
repo = "vacuum";
|
||||
# using refs/tags because simple version gives: 'the given path has multiple possibilities' error
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-HJ14pMY7XUWN6E0rcrAkJFc0g1prezPD5Y+F5Gc0bII=";
|
||||
hash = "sha256-q/AavjPq6+dkBIxU4PyhvNcRlTbZAQny8qEFdeTy/kA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-MAYm6qMNB9c6o4nSclVed4g9ToOjiAItTUMAsJgEBok=";
|
||||
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
diff --git a/src/common/PAM/Writer.vala b/src/common/PAM/Writer.vala
|
||||
index 6b80269..063f3b0 100644
|
||||
--- a/src/common/PAM/Writer.vala
|
||||
+++ b/src/common/PAM/Writer.vala
|
||||
@@ -25,6 +25,17 @@ namespace PC.PAM {
|
||||
private string filename;
|
||||
|
||||
public static Writer new_for_time () {
|
||||
+ var time_file = File.new_for_path (Constants.PAM_TIME_CONF_PATH);
|
||||
+ if (!time_file.query_exists ()) {
|
||||
+ var security_dir = time_file.get_parent ();
|
||||
+ try {
|
||||
+ security_dir.make_directory_with_parents ();
|
||||
+ time_file.create (FileCreateFlags.NONE);
|
||||
+ } catch (Error err) {
|
||||
+ critical ("Could not create \"%s\": %s", Constants.PAM_TIME_CONF_PATH, err.message);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
return new Writer (Constants.PAM_TIME_CONF_PATH);
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
gettext,
|
||||
gtk4,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
vala,
|
||||
wrapGAppsHook4,
|
||||
accountsservice,
|
||||
dbus,
|
||||
flatpak,
|
||||
glib,
|
||||
granite7,
|
||||
libadwaita,
|
||||
libgee,
|
||||
malcontent,
|
||||
polkit,
|
||||
switchboard,
|
||||
systemd,
|
||||
iptables,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "switchboard-plug-parental-controls";
|
||||
version = "8.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "switchboard-plug-parental-controls";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-yxQZSbbtWP0+gMu4cZt4bKZC7z8iZILAILYnn9ExnJY=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Change default config file path and separate default and run-time config file
|
||||
# https://github.com/elementary/switchboard-plug-parental-controls/pull/206
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/switchboard-plug-parental-controls/commit/1e5a08c1c3b0a5503e9d3f6858047d53ed8188f7.patch";
|
||||
hash = "sha256-daP/nBmrUw8b3UytIZz3bKdM+lIgAIQ/DJP0h9sdXmc=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/switchboard-plug-parental-controls/commit/51f027657616a5d4a6bd24478a5b94fad12edb95.patch";
|
||||
hash = "sha256-JOogF1ychF7MAJdrKT4eiUgM8+Y7CN9nxnRNidRoMOk=";
|
||||
})
|
||||
|
||||
# See the nixos/lightdm module for corresponding PAM files.
|
||||
# Since we override conffile path we need to create time.conf ourselves.
|
||||
./create-pam-time-conf.patch
|
||||
|
||||
# We cannot really setfacl on read-only desktop files.
|
||||
./disable-applications-tab.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
gtk4 # gtk4-update-icon-cache
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
accountsservice
|
||||
dbus
|
||||
flatpak
|
||||
glib
|
||||
granite7
|
||||
gtk4
|
||||
libadwaita
|
||||
libgee
|
||||
malcontent
|
||||
polkit
|
||||
switchboard
|
||||
systemd
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
# For /var/lib/pantheon-parental-controls/daemon.conf
|
||||
"-Dsharedstatedir=/var/lib"
|
||||
"-Dsystemdunitdir=${placeholder "out"}/etc/systemd/system"
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
# For WebRestriction.
|
||||
gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ iptables ]})
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Switchboard Screen Time & Limits Plug";
|
||||
homepage = "https://github.com/elementary/switchboard-plug-parental-controls";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
platforms = lib.platforms.linux;
|
||||
teams = [ lib.teams.pantheon ];
|
||||
};
|
||||
})
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
diff --git a/src/plug/Widgets/ControlPage.vala b/src/plug/Widgets/ControlPage.vala
|
||||
index 7d1a17d..0d37da2 100644
|
||||
--- a/src/plug/Widgets/ControlPage.vala
|
||||
+++ b/src/plug/Widgets/ControlPage.vala
|
||||
@@ -36,7 +36,6 @@ public class PC.Widgets.ControlPage : Switchboard.SettingsPage {
|
||||
stack = new Gtk.Stack ();
|
||||
stack.add_titled (time_limit_view, "general", _("Screen Time"));
|
||||
stack.add_titled (internet_box, "internet", _("Internet"));
|
||||
- stack.add_titled (apps_box, "apps", _("Applications"));
|
||||
|
||||
var switcher = new Gtk.StackSwitcher () {
|
||||
halign = CENTER,
|
||||
@@ -20,6 +20,7 @@ lib.makeScope pkgs.newScope (
|
||||
switchboard-plug-notifications
|
||||
switchboard-plug-onlineaccounts
|
||||
switchboard-plug-pantheon-shell
|
||||
switchboard-plug-parental-controls
|
||||
switchboard-plug-power
|
||||
switchboard-plug-printers
|
||||
switchboard-plug-security-privacy
|
||||
@@ -201,6 +202,8 @@ lib.makeScope pkgs.newScope (
|
||||
|
||||
switchboard-plug-pantheon-shell = callPackage ./apps/switchboard-plugs/pantheon-shell { };
|
||||
|
||||
switchboard-plug-parental-controls = callPackage ./apps/switchboard-plugs/parental-controls { };
|
||||
|
||||
switchboard-plug-power = callPackage ./apps/switchboard-plugs/power { };
|
||||
|
||||
switchboard-plug-printers = callPackage ./apps/switchboard-plugs/printers { };
|
||||
|
||||
@@ -482,39 +482,39 @@ rec {
|
||||
};
|
||||
|
||||
sdk_9_0_3xx = buildNetSdk {
|
||||
version = "9.0.307";
|
||||
version = "9.0.308";
|
||||
srcs = {
|
||||
linux-arm = {
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-linux-arm.tar.gz";
|
||||
hash = "sha512-zda8G93uT68VB+E9bbPk6TrLBf4rn7eh9uXOTuz2OylTMwWTPtUDhuh5Rf3Uybr2KR32OjGvi9mbadIs++uJCQ==";
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-linux-arm.tar.gz";
|
||||
hash = "sha512-3iUHh7vk+fs4t20fC+1rO42O1Rs9KJ26aPGkljzM6S/lTpQPItlw/S9SCfEjEToRSZqYcQWE1Tu10hSg+3Z5KQ==";
|
||||
};
|
||||
linux-arm64 = {
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-linux-arm64.tar.gz";
|
||||
hash = "sha512-Rr+wvT6BJPD6vdI0vPIDg6hkWdVfPT1zF4oLziiLQLgsXf0XJYa+RHUg4hH9z9qGkCyxBrXsxNMVI02cj4vLcA==";
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-linux-arm64.tar.gz";
|
||||
hash = "sha512-Ifvc3Lh2LzV57yqKxdkssNuWCQHxww0Df6FlIjjvYGv8e/+i5R/Mg/lPPCx9W+5dz+1LZrqkVa49OGgeJk0j/w==";
|
||||
};
|
||||
linux-x64 = {
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-linux-x64.tar.gz";
|
||||
hash = "sha512-/MF4rAAmz+oes3Mg+yX/0y5rwrHUjAkfYIW4ihXyQIDa4qMyNDxRyiQh9hPV96veiYNGWJ9JWfHlHWGcIkfSFg==";
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-linux-x64.tar.gz";
|
||||
hash = "sha512-Oqz/CWUkodrpvANfcaaAX6fsNDDTlXcfwchVBRZaeDYc4sycnDVDM3blwwrsN+LrLnfeCmun3dfcYFO68sJwmg==";
|
||||
};
|
||||
linux-musl-arm = {
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-linux-musl-arm.tar.gz";
|
||||
hash = "sha512-sKtwAvYOqUtoFAXEh2yxUtZckUH0QMrO+MzG09LovW7tBC4cp1W7gs9Apjzhm+JUUEKzrysh+KkeBaumgh5XGQ==";
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-linux-musl-arm.tar.gz";
|
||||
hash = "sha512-czH5OG5VAo/DyiE+1Vi8bmH9MrubkAQmy60aOrZ42oqe2hNeBzwxiHR0GoAuJZjwyZ+T0WHLSGGlnLtjlMZIyA==";
|
||||
};
|
||||
linux-musl-arm64 = {
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-linux-musl-arm64.tar.gz";
|
||||
hash = "sha512-iL/jBb+g4cHS7bhwEhnUpm/eeDzAQt/yAlKn7hvQp5Zo1MLbgnbv73VgGbZ0glgpkHOC8w0wGUDqLlxYff8JQg==";
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-linux-musl-arm64.tar.gz";
|
||||
hash = "sha512-AI71i0T7HHZbiMjGaH2WzqN8/bjHEUFhQgdD/5FrYr1n/+4MmBNb6gXZwigwbvHtEU8tgV3LW4s8txf5xROmMg==";
|
||||
};
|
||||
linux-musl-x64 = {
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-linux-musl-x64.tar.gz";
|
||||
hash = "sha512-iqHqLRnQjvzxN28vg3bYovyC/Hef9vFQ4K7jBoqa+HAR7RWQJ2ty8E408wEK309Vbx1GYUKRdqTidZWSSGrN7A==";
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-linux-musl-x64.tar.gz";
|
||||
hash = "sha512-zq1a7hEPUnmO1CDK9J3Q9HaOFamd7Da0EXTmszEgjV2L5ePtRAvtFtG4XPkGCRvaaK9bzbA4PDU+nmH/ayTfNg==";
|
||||
};
|
||||
osx-arm64 = {
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-osx-arm64.tar.gz";
|
||||
hash = "sha512-LSlLg23Yu0ihX6v/KQdruc6+V4Yp5ty+YMw7Lq8GBx6hl+Aw+lCxuXFMvHAwRWrOLDgPxWnhw+7R7IqqGLWIQg==";
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-osx-arm64.tar.gz";
|
||||
hash = "sha512-jUsh/6gEfrxEWbIqYJDkIh/Is8q0WrY43MYfGl6zvy3/nzTbMFtAx5WuK68XMroV+Rzl371xip9EVWFZTZwhng==";
|
||||
};
|
||||
osx-x64 = {
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-osx-x64.tar.gz";
|
||||
hash = "sha512-05ZabtZ07zCJ7iJaopmIUmTQg0e+CotOwQN//xMWzLulIja2JZUNv3M+2UxYlobMHWrcMScejyMikEmVVd1h7g==";
|
||||
url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-osx-x64.tar.gz";
|
||||
hash = "sha512-49Y+BmkCtQ/jIfztg7wk/QQN9ZHDxYknyyB9y5UFRDn4WYfRuFMyONVy742766gSJiKvecnvrHqUdtiIQrfLdg==";
|
||||
};
|
||||
};
|
||||
inherit commonPackages hostPackages targetPackages;
|
||||
|
||||
@@ -160,7 +160,11 @@ stdenv.mkDerivation (
|
||||
mv $out/bin/set-xcode-analyzer $python/bin
|
||||
fi
|
||||
mv $out/share/clang/*.py $python/share/clang
|
||||
''
|
||||
+ lib.optionalString (lib.versionOlder release_version "22") ''
|
||||
rm $out/bin/c-index-test
|
||||
''
|
||||
+ ''
|
||||
patchShebangs $python/bin
|
||||
|
||||
mkdir -p $dev/bin
|
||||
|
||||
@@ -27,9 +27,9 @@ let
|
||||
"20.1.8".officialRelease.sha256 = "sha256-ysyB/EYxi2qE9fD5x/F2zI4vjn8UDoo1Z9ukiIrjFGw=";
|
||||
"21.1.7".officialRelease.sha256 = "sha256-SaRJ7+iZMhhBdcUDuJpMAY4REQVhrvYMqI2aq3Kz08o=";
|
||||
"22.0.0-git".gitRelease = {
|
||||
rev = "81c5d468cf00d6e41112fba6c89d6c40013bcbda";
|
||||
rev-version = "22.0.0-unstable-2025-11-30";
|
||||
sha256 = "sha256-aZdPGmj+02pQPjvIlJyn9DEKCiIHjLaethxRUa2MWHE=";
|
||||
rev = "fc92e4dec9a6dfcb4fb77d863d0bf1dbc53033e5";
|
||||
rev-version = "22.0.0-unstable-2025-12-07";
|
||||
sha256 = "sha256-ntcaJgSG22tIDTBUVEwx+6ksQrWR6YHDwbUOls06JEE=";
|
||||
};
|
||||
}
|
||||
// llvmVersions;
|
||||
|
||||
@@ -217,6 +217,7 @@ in
|
||||
apply-refact = addBuildDepend self.data-default-class super.apply-refact;
|
||||
floskell = doJailbreak super.floskell;
|
||||
fourmolu = dontCheck (doJailbreak self.fourmolu_0_15_0_0);
|
||||
ghcide = super.ghcide;
|
||||
haskell-language-server = addBuildDepends [
|
||||
self.retrie
|
||||
self.floskell
|
||||
@@ -224,6 +225,7 @@ in
|
||||
] super.haskell-language-server;
|
||||
hls-plugin-api = super.hls-plugin-api;
|
||||
hlint = self.hlint_3_8;
|
||||
lsp-types = super.lsp-types;
|
||||
ormolu = self.ormolu_0_7_4_0;
|
||||
retrie = doJailbreak (unmarkBroken super.retrie);
|
||||
stylish-haskell = self.stylish-haskell_0_14_6_0;
|
||||
@@ -232,9 +234,11 @@ in
|
||||
apply-refact
|
||||
floskell
|
||||
fourmolu
|
||||
ghcide
|
||||
haskell-language-server
|
||||
hls-plugin-api
|
||||
hlint
|
||||
lsp-types
|
||||
ormolu
|
||||
retrie
|
||||
stylish-haskell
|
||||
|
||||
@@ -121,6 +121,7 @@ in
|
||||
apply-refact = addBuildDepend self.data-default-class super.apply-refact;
|
||||
floskell = doJailbreak super.floskell;
|
||||
fourmolu = dontCheck (doJailbreak self.fourmolu_0_15_0_0);
|
||||
ghcide = super.ghcide;
|
||||
haskell-language-server = addBuildDepends [
|
||||
self.retrie
|
||||
self.floskell
|
||||
@@ -128,6 +129,7 @@ in
|
||||
] super.haskell-language-server;
|
||||
hls-plugin-api = super.hls-plugin-api;
|
||||
hlint = self.hlint_3_8;
|
||||
lsp-types = super.lsp-types;
|
||||
ormolu = self.ormolu_0_7_4_0;
|
||||
retrie = doJailbreak (unmarkBroken super.retrie);
|
||||
stylish-haskell = self.stylish-haskell_0_14_6_0;
|
||||
@@ -136,9 +138,11 @@ in
|
||||
apply-refact
|
||||
floskell
|
||||
fourmolu
|
||||
ghcide
|
||||
haskell-language-server
|
||||
hls-plugin-api
|
||||
hlint
|
||||
lsp-types
|
||||
ormolu
|
||||
retrie
|
||||
stylish-haskell
|
||||
|
||||
@@ -6,18 +6,19 @@
|
||||
kdePackages,
|
||||
qtbase,
|
||||
qtdeclarative,
|
||||
opencv,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kquickimageeditor";
|
||||
version = "0.5.1";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "invent.kde.org";
|
||||
owner = "libraries";
|
||||
repo = "kquickimageeditor";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-8TJBg42E9lNbLpihjtc5Z/drmmSGQmic8yO45yxSNQ4=";
|
||||
sha256 = "sha256-NhZ9aAZuIk9vUL2X7eivNbEs0zahuQpy8kl6dSdy5Lo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ extra-cmake-modules ];
|
||||
@@ -25,6 +26,14 @@ stdenv.mkDerivation rec {
|
||||
kdePackages.kirigami
|
||||
qtbase
|
||||
qtdeclarative
|
||||
(opencv.override {
|
||||
enableCuda = false; # fails to compile, disabled in case someone sets config.cudaSupport
|
||||
enabledModules = [
|
||||
"core"
|
||||
"imgproc"
|
||||
];
|
||||
runAccuracyTests = false; # tests will fail because of missing plugins but that's okay
|
||||
})
|
||||
];
|
||||
dontWrapQtApps = true;
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
stdenv,
|
||||
buildDunePackage,
|
||||
fetchFromGitHub,
|
||||
ocplib-endian,
|
||||
cmdliner,
|
||||
afl-persistent,
|
||||
calendar,
|
||||
@@ -14,24 +13,21 @@
|
||||
uucp,
|
||||
}:
|
||||
|
||||
buildDunePackage rec {
|
||||
buildDunePackage (finalAttrs: {
|
||||
pname = "crowbar";
|
||||
version = "0.2.1";
|
||||
version = "0.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stedolan";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-0jjwiOZ9Ut+dv5Iw4xNvf396WTehT1VClxY9VHicw4U=";
|
||||
repo = "crowbar";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-KGDOm9PMymFwyHoe7gp+rl+VxbbkLvnb8ypTXbImSgs=";
|
||||
};
|
||||
|
||||
minimalOCamlVersion = "4.08";
|
||||
|
||||
# disable xmldiff tests, so we don't need to package unmaintained and legacy pkgs
|
||||
postPatch = "rm -rf examples/xmldiff";
|
||||
|
||||
propagatedBuildInputs = [
|
||||
ocplib-endian
|
||||
cmdliner
|
||||
afl-persistent
|
||||
];
|
||||
@@ -50,6 +46,6 @@ buildDunePackage rec {
|
||||
description = "Property fuzzing for OCaml";
|
||||
homepage = "https://github.com/stedolan/crowbar";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.sternenseemann ];
|
||||
maintainers = with lib.maintainers; [ sternenseemann ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "disposable-email-domains";
|
||||
version = "0.0.151";
|
||||
version = "0.0.152";
|
||||
pyproject = true;
|
||||
|
||||
# No tags on GitHub
|
||||
src = fetchPypi {
|
||||
pname = "disposable_email_domains";
|
||||
inherit version;
|
||||
hash = "sha256-jXtOepZPvp2jlOWJ1Lp2ltnrWU3qL5jHunPRcPLZc8E=";
|
||||
hash = "sha256-5F3ZC9tZ1cpX6qTvDm74bTEJQRYWEn1+QI0d04Yry8M=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "esp-idf-size";
|
||||
version = "2.0.0";
|
||||
version = "2.1.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "espressif";
|
||||
repo = "esp-idf-size";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-LnaS6lm2/fy9aWiV/MuRKegDAmjljQFvp+uI8FmEpdI=";
|
||||
hash = "sha256-A78sbuxn26gJqZ84EhYWKCVtkZE3gRT3jbjWLpwjXpQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
buildPythonPackage,
|
||||
pythonOlder,
|
||||
fetchFromGitHub,
|
||||
pyparsing,
|
||||
typing-extensions,
|
||||
@@ -15,29 +15,34 @@
|
||||
matplotlib,
|
||||
pymupdf,
|
||||
pyqt5,
|
||||
withGui ? false,
|
||||
qt6,
|
||||
librecad,
|
||||
gitUpdater,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
version = "1.3.2";
|
||||
version = "1.4.3";
|
||||
pname = "ezdxf";
|
||||
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mozman";
|
||||
repo = "ezdxf";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-BzdLl2GjLh2ABJzJ6bhdbic9jlSABIVR3XGrYiLJHa0=";
|
||||
hash = "sha256-v/xW/Tg3OgzwvSNy3cfkxzf6R33ZvW4VE8k7MB+rM+w=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = lib.optionals withGui [ qt6.wrapQtAppsHook ];
|
||||
|
||||
dependencies = [
|
||||
pyparsing
|
||||
typing-extensions
|
||||
numpy
|
||||
fonttools
|
||||
];
|
||||
]
|
||||
++ lib.optionals withGui ([ qt6.qtbase ] ++ optional-dependencies.draw);
|
||||
|
||||
optional-dependencies = {
|
||||
draw = [
|
||||
@@ -59,6 +64,12 @@ buildPythonPackage rec {
|
||||
cython
|
||||
];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
preFixup = lib.optionalString withGui ''
|
||||
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
checkInputs = [ pillow ];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
@@ -68,10 +79,26 @@ buildPythonPackage rec {
|
||||
"ezdxf.addons"
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
ln -s "${librecad}/${
|
||||
if stdenv.hostPlatform.isDarwin then
|
||||
"Applications/LibreCAD.app/Contents/Resources"
|
||||
else
|
||||
"share/librecad"
|
||||
}/fonts" fonts/librecad
|
||||
'';
|
||||
|
||||
# The default updateScript of Python packages does not filter prerelease versions.
|
||||
passthru.updateScript = gitUpdater {
|
||||
rev-prefix = "v";
|
||||
allowedVersions = "^[0-9]+\\.[0-9]+\\.[0-9]+$";
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Python package to read and write DXF drawings (interface to the DXF file format)";
|
||||
mainProgram = "ezdxf";
|
||||
homepage = "https://github.com/mozman/ezdxf/";
|
||||
homepage = "https://ezdxf.mozman.at/";
|
||||
changelog = "https://github.com/mozman/ezdxf/blob/${src.rev}/notes/pages/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ hodapp ];
|
||||
platforms = lib.platforms.unix;
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "iamdata";
|
||||
version = "0.1.202512091";
|
||||
version = "0.1.202512111";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cloud-copilot";
|
||||
repo = "iam-data-python";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-y6DlcmPRC/yG++ejpbzVCOgPmj53pKwEWilxdep6x7Q=";
|
||||
hash = "sha256-4bOrVi8RpoVw+jzB7pMUnFx6FtyICCaVL4gO1ljJGsI=";
|
||||
};
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
@@ -16,14 +16,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "sshfs";
|
||||
version = "2025.10.0";
|
||||
version = "2025.11.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fsspec";
|
||||
repo = "sshfs";
|
||||
tag = version;
|
||||
hash = "sha256-IG+/aXM6F+sNtxmhgiaD6OXhRpbiCm0zW2ki0y8nuLE=";
|
||||
hash = "sha256-TrFrjORH6VebTBq+OHJUEr55DtjL58/b+qQLpbSU7MU=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -40,6 +40,8 @@ buildPythonPackage rec {
|
||||
pnpm.configHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "yt_dlp_ejs" ];
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/yt-dlp/ejs/releases/tag/${version}";
|
||||
description = "External JavaScript for yt-dlp supporting many runtimes";
|
||||
|
||||
@@ -13,10 +13,10 @@
|
||||
}:
|
||||
|
||||
let
|
||||
rev = "901fc09b83c686693be51b3c9a13578929cbc1ab"; # should be the HEAD of nodejs/release-keys
|
||||
rev = "b362bd15f2ac7ce350d7563fc03e0c625e455e5f"; # should be the HEAD of nodejs/release-keys
|
||||
pubring = fetchurl {
|
||||
url = "https://github.com/nodejs/release-keys/raw/${rev}/gpg-only-active-keys/pubring.kbx";
|
||||
hash = "sha256-r/thHVLDlMVRN3Ahr5Apivy+h2IuvPm4QhYFoAmms3E=";
|
||||
hash = "sha256-ZnapJ9YmGnq2u03caWFII1Z0Jruax3ruSEz7XWb0oUg=";
|
||||
};
|
||||
in
|
||||
writeScript "update-nodejs" ''
|
||||
|
||||
@@ -37,8 +37,6 @@ let
|
||||
inherit (v) version;
|
||||
}
|
||||
) allUrls;
|
||||
|
||||
debugAlias = set: lib.dontRecurseIntoAttrs (lib.filterAttrs (k: v: !v.meta.broken) set);
|
||||
in
|
||||
(
|
||||
qt6Packages
|
||||
@@ -46,12 +44,13 @@ let
|
||||
// gear
|
||||
// plasma
|
||||
// {
|
||||
inherit sources;
|
||||
|
||||
# Aliases to simplify test-building entire package sets
|
||||
frameworks = debugAlias frameworks;
|
||||
gear = debugAlias gear;
|
||||
plasma = debugAlias plasma;
|
||||
inherit
|
||||
sources
|
||||
frameworks
|
||||
gear
|
||||
plasma
|
||||
;
|
||||
|
||||
mkKdeDerivation = self.callPackage (import ./lib/mk-kde-derivation.nix self) { };
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
mkKdeDerivation,
|
||||
lib,
|
||||
fetchpatch,
|
||||
boost,
|
||||
eigen,
|
||||
gsl,
|
||||
@@ -27,14 +26,6 @@
|
||||
mkKdeDerivation {
|
||||
pname = "calligra";
|
||||
|
||||
patches = [
|
||||
# Fix build with Poppler 25.10
|
||||
(fetchpatch {
|
||||
url = "https://invent.kde.org/office/calligra/-/commit/45e8b302bce1d318f310ea13599d7ce84acc477e.patch";
|
||||
hash = "sha256-TECB3eo24+gI8TXL8gw9BIdFWqw0JBKCWpoNVqBSan8=";
|
||||
})
|
||||
];
|
||||
|
||||
extraBuildInputs = [
|
||||
boost
|
||||
eigen
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
mkKdeDerivation,
|
||||
pkg-config,
|
||||
ffmpeg,
|
||||
}:
|
||||
mkKdeDerivation {
|
||||
pname = "ffmpegthumbs";
|
||||
|
||||
extraNativeBuildInputs = [ pkg-config ];
|
||||
extraBuildInputs = [ ffmpeg ];
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
pkg-config,
|
||||
qtlocation,
|
||||
qtpositioning,
|
||||
qcoro,
|
||||
shared-mime-info,
|
||||
libical,
|
||||
}:
|
||||
@@ -19,6 +20,7 @@ mkKdeDerivation {
|
||||
extraBuildInputs = [
|
||||
qtlocation
|
||||
qtpositioning
|
||||
qcoro
|
||||
libical
|
||||
];
|
||||
meta.mainProgram = "itinerary";
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
mkKdeDerivation,
|
||||
pkg-config,
|
||||
kauth,
|
||||
mpv,
|
||||
}:
|
||||
mkKdeDerivation {
|
||||
@@ -11,5 +12,8 @@ mkKdeDerivation {
|
||||
];
|
||||
|
||||
extraNativeBuildInputs = [ pkg-config ];
|
||||
extraBuildInputs = [ mpv ];
|
||||
extraBuildInputs = [
|
||||
kauth
|
||||
mpv
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
mkKdeDerivation,
|
||||
pkg-config,
|
||||
kirigami-addons,
|
||||
gst_all_1,
|
||||
frei0r,
|
||||
}:
|
||||
@@ -9,6 +10,7 @@ mkKdeDerivation {
|
||||
|
||||
extraNativeBuildInputs = [ pkg-config ];
|
||||
extraBuildInputs = [
|
||||
kirigami-addons
|
||||
gst_all_1.gst-plugins-base
|
||||
(gst_all_1.gst-plugins-good.override { qt6Support = true; })
|
||||
gst_all_1.gst-plugins-bad
|
||||
|
||||
@@ -1,13 +1,19 @@
|
||||
{
|
||||
mkKdeDerivation,
|
||||
pkg-config,
|
||||
qtsvg,
|
||||
qtmultimedia,
|
||||
wayland-protocols,
|
||||
}:
|
||||
mkKdeDerivation {
|
||||
pname = "kclock";
|
||||
|
||||
extraNativeBuildInputs = [ pkg-config ];
|
||||
|
||||
extraBuildInputs = [
|
||||
qtsvg
|
||||
qtmultimedia
|
||||
|
||||
wayland-protocols
|
||||
];
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
wayland,
|
||||
wayland-protocols,
|
||||
libfakekey,
|
||||
fetchpatch,
|
||||
}:
|
||||
mkKdeDerivation {
|
||||
pname = "kdeconnect-kde";
|
||||
@@ -19,12 +18,6 @@ mkKdeDerivation {
|
||||
(replaceVars ./hardcode-sshfs-path.patch {
|
||||
sshfs = lib.getExe sshfs;
|
||||
})
|
||||
# Fix CVE-2025-66270 (https://kde.org/info/security/advisory-20251128-1.txt)
|
||||
(fetchpatch {
|
||||
name = "CVE-2025-66270.patch";
|
||||
url = "https://invent.kde.org/network/kdeconnect-kde/-/commit/4e53bcdd5d4c28bd9fefd114b807ce35d7b3373e.patch";
|
||||
hash = "sha256-qtcXNJ5qL4xtZQ70R/wWVCzFGzXNltr6XTgs0fpkTi4=";
|
||||
})
|
||||
];
|
||||
|
||||
# Hardcoded as a QString, which is UTF-16 so Nix can't pick it up automatically
|
||||
|
||||
@@ -1,71 +1,57 @@
|
||||
diff --git a/samba/filepropertiesplugin/authhelper.cpp b/samba/filepropertiesplugin/authhelper.cpp
|
||||
index 6cbbd90..ae1d696 100644
|
||||
index b45b25f..b71554f 100644
|
||||
--- a/samba/filepropertiesplugin/authhelper.cpp
|
||||
+++ b/samba/filepropertiesplugin/authhelper.cpp
|
||||
@@ -49,7 +49,7 @@ ActionReply AuthHelper::isuserknown(const QVariantMap &args)
|
||||
@@ -50,7 +50,7 @@ ActionReply AuthHelper::isuserknown(const QVariantMap &args)
|
||||
}
|
||||
|
||||
QProcess p;
|
||||
- const auto program = QStringLiteral("pdbedit");
|
||||
+ const auto program = QStringLiteral("@samba@/bin/pdbedit");
|
||||
const auto arguments = QStringList({QStringLiteral("--debuglevel=0"), QStringLiteral("--user"), username });
|
||||
const auto arguments = QStringList({QStringLiteral("--debuglevel=0"), QStringLiteral("--user"), username});
|
||||
p.setProgram(program);
|
||||
p.setArguments(arguments);
|
||||
@@ -88,7 +88,7 @@ ActionReply AuthHelper::createuser(const QVariantMap &args)
|
||||
@@ -92,7 +92,7 @@ ActionReply AuthHelper::createuser(const QVariantMap &args)
|
||||
}
|
||||
|
||||
QProcess p;
|
||||
- p.setProgram(QStringLiteral("smbpasswd"));
|
||||
+ p.setProgram(QStringLiteral("@samba@/bin/smbpasswd"));
|
||||
p.setArguments({
|
||||
QStringLiteral("-L"), /* local mode */
|
||||
QStringLiteral("-s"), /* read from stdin */
|
||||
@@ -152,7 +152,7 @@ ActionReply AuthHelper::addtogroup(const QVariantMap &args)
|
||||
QStringLiteral("-m"),
|
||||
QStringLiteral("{%1}").arg(user.value()) });
|
||||
p.setArguments({QStringLiteral("-L"), /* local mode */
|
||||
QStringLiteral("-s"), /* read from stdin */
|
||||
QStringLiteral("-D"),
|
||||
@@ -155,7 +155,7 @@ ActionReply AuthHelper::addtogroup(const QVariantMap &args)
|
||||
p.setArguments(
|
||||
{QStringLiteral("group"), QStringLiteral("mod"), QStringLiteral("{%1}").arg(group), QStringLiteral("-m"), QStringLiteral("{%1}").arg(user.value())});
|
||||
#elif defined(Q_OS_LINUX) || defined(Q_OS_HURD)
|
||||
- p.setProgram(QStringLiteral("/usr/sbin/usermod"));
|
||||
+ p.setProgram(QStringLiteral("@usermod@"));
|
||||
p.setArguments({
|
||||
QStringLiteral("--append"),
|
||||
QStringLiteral("--groups"),
|
||||
p.setArguments({QStringLiteral("--append"), QStringLiteral("--groups"), group, user.value()});
|
||||
#else
|
||||
#error "Platform lacks group management support. Please add support."
|
||||
diff --git a/samba/filepropertiesplugin/groupmanager.cpp b/samba/filepropertiesplugin/groupmanager.cpp
|
||||
index a2ba851..d54f6ce 100644
|
||||
index 948f428..f25e549 100644
|
||||
--- a/samba/filepropertiesplugin/groupmanager.cpp
|
||||
+++ b/samba/filepropertiesplugin/groupmanager.cpp
|
||||
@@ -18,7 +18,7 @@ GroupManager::GroupManager(QObject *parent)
|
||||
{
|
||||
metaObject()->invokeMethod(this, [this] {
|
||||
QMetaObject::invokeMethod(this, [this] {
|
||||
auto proc = new QProcess;
|
||||
- proc->setProgram(QStringLiteral("testparm"));
|
||||
+ proc->setProgram(QStringLiteral("@samba@/bin/testparm"));
|
||||
proc->setArguments({QStringLiteral("--debuglevel=0"),
|
||||
QStringLiteral("--suppress-prompt"),
|
||||
QStringLiteral("--verbose"),
|
||||
diff --git a/samba/filepropertiesplugin/sambausershareplugin.cpp b/samba/filepropertiesplugin/sambausershareplugin.cpp
|
||||
index 4f6642e..86ea121 100644
|
||||
--- a/samba/filepropertiesplugin/sambausershareplugin.cpp
|
||||
+++ b/samba/filepropertiesplugin/sambausershareplugin.cpp
|
||||
@@ -112,7 +112,8 @@ SambaUserSharePlugin::SambaUserSharePlugin(QObject *parent)
|
||||
bool SambaUserSharePlugin::isSambaInstalled()
|
||||
{
|
||||
return QFile::exists(QStringLiteral("/usr/sbin/smbd"))
|
||||
- || QFile::exists(QStringLiteral("/usr/local/sbin/smbd"));
|
||||
+ || QFile::exists(QStringLiteral("/usr/local/sbin/smbd"))
|
||||
+ || QFile::exists(QStringLiteral("/run/current-system/sw/bin/smbd"));
|
||||
}
|
||||
|
||||
void SambaUserSharePlugin::showSambaStatus()
|
||||
diff --git a/samba/filepropertiesplugin/usermanager.cpp b/samba/filepropertiesplugin/usermanager.cpp
|
||||
index 29238ce..ff20fcb 100644
|
||||
index 3be3b8c..66fd965 100644
|
||||
--- a/samba/filepropertiesplugin/usermanager.cpp
|
||||
+++ b/samba/filepropertiesplugin/usermanager.cpp
|
||||
@@ -138,7 +138,7 @@ bool UserManager::canManageSamba() const
|
||||
@@ -134,7 +134,7 @@ bool UserManager::canManageSamba() const
|
||||
void UserManager::load()
|
||||
{
|
||||
auto proc = new QProcess(this);
|
||||
- proc->setProgram(QStringLiteral("testparm"));
|
||||
+ proc->setProgram(QStringLiteral("@samba@/bin/testparm"));
|
||||
proc->setArguments({
|
||||
QStringLiteral("--debuglevel=0"),
|
||||
QStringLiteral("--suppress-prompt"),
|
||||
proc->setArguments({QStringLiteral("--debuglevel=0"),
|
||||
QStringLiteral("--suppress-prompt"),
|
||||
QStringLiteral("--verbose"),
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
qtsvg,
|
||||
qtmultimedia,
|
||||
qtnetworkauth,
|
||||
kddockwidgets,
|
||||
qqc2-desktop-style,
|
||||
libv4l,
|
||||
opentimelineio,
|
||||
@@ -38,6 +39,7 @@ mkKdeDerivation {
|
||||
qtmultimedia
|
||||
qtnetworkauth
|
||||
|
||||
kddockwidgets
|
||||
qqc2-desktop-style
|
||||
|
||||
ffmpeg-full
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
mkKdeDerivation,
|
||||
shared-mime-info,
|
||||
qtdeclarative,
|
||||
}:
|
||||
mkKdeDerivation {
|
||||
pname = "kpkpass";
|
||||
|
||||
extraNativeBuildInputs = [ shared-mime-info ];
|
||||
extraBuildInputs = [ qtdeclarative ];
|
||||
}
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
{
|
||||
mkKdeDerivation,
|
||||
qtdeclarative,
|
||||
qtlocation,
|
||||
pkg-config,
|
||||
}:
|
||||
mkKdeDerivation {
|
||||
pname = "kpublictransport";
|
||||
|
||||
extraNativeBuildInputs = [ pkg-config ];
|
||||
extraBuildInputs = [ qtdeclarative ];
|
||||
extraBuildInputs = [
|
||||
qtdeclarative
|
||||
qtlocation
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
{
|
||||
mkKdeDerivation,
|
||||
pkg-config,
|
||||
kddockwidgets,
|
||||
hunspell,
|
||||
}:
|
||||
mkKdeDerivation {
|
||||
pname = "lokalize";
|
||||
|
||||
extraNativeBuildInputs = [ pkg-config ];
|
||||
extraBuildInputs = [ hunspell ];
|
||||
extraBuildInputs = [
|
||||
kddockwidgets
|
||||
|
||||
hunspell
|
||||
];
|
||||
}
|
||||
|
||||
@@ -2,10 +2,14 @@
|
||||
mkKdeDerivation,
|
||||
pkg-config,
|
||||
qtmultimedia,
|
||||
kirigami-addons,
|
||||
}:
|
||||
mkKdeDerivation {
|
||||
pname = "qrca";
|
||||
|
||||
extraNativeBuildInputs = [ pkg-config ];
|
||||
extraBuildInputs = [ qtmultimedia ];
|
||||
extraBuildInputs = [
|
||||
qtmultimedia
|
||||
kirigami-addons
|
||||
];
|
||||
}
|
||||
|
||||
@@ -6,6 +6,4 @@ mkKdeDerivation {
|
||||
pname = "rocs";
|
||||
|
||||
extraBuildInputs = [ boost ];
|
||||
# FIXME(qt5)
|
||||
meta.broken = true;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
{ mkKdeDerivation }:
|
||||
mkKdeDerivation {
|
||||
pname = "umbrello";
|
||||
# FIXME(qt5)
|
||||
meta.broken = true;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user