Merge staging-next into staging
This commit is contained in:
commit
4b7471c330
nixos
pkgs
applications
by-name
au/autotools-language-server
ca/caido
co
fs/fsnotifier
gr/grafana-alloy
im/immich-go
lu/lunar-client
mc/mcumgr-client
pr/prrte
re/renovate
rr/rrdtool
sa/saunafs
sh/shopware-cli
tr/trickest-cli
xl/xlights
development
coq-modules/stalmarck
libraries
ocaml-modules
python-modules
aiosmtplib
dvc-data
dvclive
hcloud
holidays
lsp-tree-sitter
meshtastic
modbus-tk
proxy-py
pyfaidx
pygatt
pyqtwebengine
python-escpos
python-gitlab
pywebcopy
qpageview
riden
textual
transformers
tree-sitter-languages
tree-sitter
ufo2ft
unstructured
zha-quirks
zha
zigpy-zigate
zigpy-znp
zigpy
tools/eslint_d
kde/plasma
kde-gtk-config
plasma-workspace
misc/frescobaldi
os-specific/linux/zfs
servers
stdenv
tools
top-level
@ -2,7 +2,7 @@
|
||||
|
||||
let
|
||||
cfg = config.services.librenms;
|
||||
settingsFormat = pkgs.formats.json {};
|
||||
settingsFormat = pkgs.formats.json { };
|
||||
configJson = settingsFormat.generate "librenms-config.json" cfg.settings;
|
||||
|
||||
package = pkgs.librenms.override {
|
||||
@ -16,12 +16,13 @@ let
|
||||
upload_max_filesize = 100M
|
||||
date.timezone = "${config.time.timeZone}"
|
||||
'';
|
||||
phpIni = pkgs.runCommand "php.ini" {
|
||||
inherit (package) phpPackage;
|
||||
inherit phpOptions;
|
||||
preferLocalBuild = true;
|
||||
passAsFile = [ "phpOptions" ];
|
||||
} ''
|
||||
phpIni = pkgs.runCommand "php.ini"
|
||||
{
|
||||
inherit (package) phpPackage;
|
||||
inherit phpOptions;
|
||||
preferLocalBuild = true;
|
||||
passAsFile = [ "phpOptions" ];
|
||||
} ''
|
||||
cat $phpPackage/etc/php.ini $phpOptionsPath > $out
|
||||
'';
|
||||
|
||||
@ -31,14 +32,20 @@ let
|
||||
if [[ "$USER" != ${cfg.user} ]]; then
|
||||
sudo='exec /run/wrappers/bin/sudo -u ${cfg.user}'
|
||||
fi
|
||||
$sudo ${package}/artisan $*
|
||||
$sudo ${package}/artisan "$@"
|
||||
'';
|
||||
|
||||
lnmsWrapper = pkgs.writeShellScriptBin "lnms" ''
|
||||
cd ${package}
|
||||
exec ${package}/lnms $*
|
||||
sudo=exec
|
||||
if [[ "$USER" != ${cfg.user} ]]; then
|
||||
sudo='exec /run/wrappers/bin/sudo -u ${cfg.user}'
|
||||
fi
|
||||
$sudo ${package}/lnms "$@"
|
||||
'';
|
||||
|
||||
|
||||
|
||||
configFile = pkgs.writeText "config.php" ''
|
||||
<?php
|
||||
$new_config = json_decode(file_get_contents("${cfg.dataDir}/config.json"), true);
|
||||
@ -47,7 +54,8 @@ let
|
||||
${lib.optionalString (cfg.extraConfig != null) cfg.extraConfig}
|
||||
'';
|
||||
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.services.librenms = with lib; {
|
||||
enable = mkEnableOption "LibreNMS network monitoring system";
|
||||
|
||||
@ -191,7 +199,8 @@ in {
|
||||
nginx = mkOption {
|
||||
type = types.submodule (
|
||||
recursiveUpdate
|
||||
(import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) {}
|
||||
(import ../web-servers/nginx/vhost-options.nix { inherit config lib; })
|
||||
{ }
|
||||
);
|
||||
default = { };
|
||||
example = literalExpression ''
|
||||
@ -240,6 +249,7 @@ in {
|
||||
default = "localhost";
|
||||
description = ''
|
||||
Hostname or IP of the MySQL/MariaDB server.
|
||||
Ignored if 'socket' is defined.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -248,6 +258,7 @@ in {
|
||||
default = 3306;
|
||||
description = ''
|
||||
Port of the MySQL/MariaDB server.
|
||||
Ignored if 'socket' is defined.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -264,15 +275,28 @@ in {
|
||||
default = "librenms";
|
||||
description = ''
|
||||
Name of the user on the MySQL/MariaDB server.
|
||||
Ignored if 'socket' is defined.
|
||||
'';
|
||||
};
|
||||
|
||||
passwordFile = mkOption {
|
||||
type = types.path;
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
example = "/run/secrets/mysql.pass";
|
||||
description = ''
|
||||
A file containing the password for the user of the MySQL/MariaDB server.
|
||||
Must be readable for the LibreNMS user.
|
||||
Ignored if 'socket' is defined, mandatory otherwise.
|
||||
'';
|
||||
};
|
||||
|
||||
socket = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/run/mysqld/mysqld.sock";
|
||||
description = ''
|
||||
A unix socket to mysql, accessible by the librenms user.
|
||||
Useful when mysql is on the localhost.
|
||||
'';
|
||||
};
|
||||
};
|
||||
@ -289,7 +313,7 @@ in {
|
||||
settings = mkOption {
|
||||
type = types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
options = {};
|
||||
options = { };
|
||||
};
|
||||
description = ''
|
||||
Attrset of the LibreNMS configuration.
|
||||
@ -483,13 +507,15 @@ in {
|
||||
EnvironmentFile = lib.mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
ExecStartPre = lib.mkIf cfg.database.createLocally [ "!${pkgs.writeShellScript "librenms-db-init" ''
|
||||
ExecStartPre = lib.mkIf cfg.database.createLocally [
|
||||
"!${pkgs.writeShellScript "librenms-db-init" ''
|
||||
DB_PASSWORD=$(cat ${cfg.database.passwordFile} | tr -d '\n')
|
||||
echo "ALTER USER '${cfg.database.username}'@'localhost' IDENTIFIED BY '$DB_PASSWORD';" | ${pkgs.mariadb}/bin/mysql
|
||||
${lib.optionalString cfg.useDistributedPollers ''
|
||||
echo "ALTER USER '${cfg.database.username}'@'%' IDENTIFIED BY '$DB_PASSWORD';" | ${pkgs.mariadb}/bin/mysql
|
||||
''}
|
||||
''}"];
|
||||
''}"
|
||||
];
|
||||
};
|
||||
script = ''
|
||||
set -euo pipefail
|
||||
@ -516,13 +542,24 @@ in {
|
||||
${lib.optionalString (cfg.useDistributedPollers || cfg.distributedPoller.enable) ''
|
||||
echo "CACHE_DRIVER=memcached" >> ${cfg.dataDir}/.env
|
||||
''}
|
||||
echo "DB_HOST=${cfg.database.host}" >> ${cfg.dataDir}/.env
|
||||
echo "DB_PORT=${toString cfg.database.port}" >> ${cfg.dataDir}/.env
|
||||
echo "DB_DATABASE=${cfg.database.database}" >> ${cfg.dataDir}/.env
|
||||
echo "DB_USERNAME=${cfg.database.username}" >> ${cfg.dataDir}/.env
|
||||
echo -n "DB_PASSWORD=" >> ${cfg.dataDir}/.env
|
||||
cat ${cfg.database.passwordFile} >> ${cfg.dataDir}/.env
|
||||
|
||||
''
|
||||
+ (
|
||||
if ! isNull cfg.database.socket
|
||||
then ''
|
||||
# use socket connection
|
||||
echo "DB_SOCKET=${cfg.database.socket}" >> ${cfg.dataDir}/.env
|
||||
''
|
||||
else ''
|
||||
# use TCP connection
|
||||
echo "DB_HOST=${cfg.database.host}" >> ${cfg.dataDir}/.env
|
||||
echo "DB_PORT=${toString cfg.database.port}" >> ${cfg.dataDir}/.env
|
||||
echo "DB_USERNAME=${cfg.database.username}" >> ${cfg.dataDir}/.env
|
||||
echo -n "DB_PASSWORD=" >> ${cfg.dataDir}/.env
|
||||
cat ${cfg.database.passwordFile} >> ${cfg.dataDir}/.env
|
||||
''
|
||||
)
|
||||
+ ''
|
||||
# clear cache after update
|
||||
OLD_VERSION=$(cat ${cfg.dataDir}/version)
|
||||
if [[ $OLD_VERSION != "${package.version}" ]]; then
|
||||
@ -560,29 +597,31 @@ in {
|
||||
|
||||
services.cron = {
|
||||
enable = true;
|
||||
systemCronJobs = let
|
||||
env = "PHPRC=${phpIni}";
|
||||
in [
|
||||
# based on crontab provided by LibreNMS
|
||||
"33 */6 * * * ${cfg.user} ${env} ${package}/cronic ${package}/discovery-wrapper.py 1"
|
||||
"*/5 * * * * ${cfg.user} ${env} ${package}/discovery.php -h new >> /dev/null 2>&1"
|
||||
systemCronJobs =
|
||||
let
|
||||
env = "PHPRC=${phpIni}";
|
||||
in
|
||||
[
|
||||
# based on crontab provided by LibreNMS
|
||||
"33 */6 * * * ${cfg.user} ${env} ${package}/cronic ${package}/discovery-wrapper.py 1"
|
||||
"*/5 * * * * ${cfg.user} ${env} ${package}/discovery.php -h new >> /dev/null 2>&1"
|
||||
|
||||
"${if cfg.enableOneMinutePolling then "*" else "*/5"} * * * * ${cfg.user} ${env} ${package}/cronic ${package}/poller-wrapper.py ${toString cfg.pollerThreads}"
|
||||
"* * * * * ${cfg.user} ${env} ${package}/alerts.php >> /dev/null 2>&1"
|
||||
"${if cfg.enableOneMinutePolling then "*" else "*/5"} * * * * ${cfg.user} ${env} ${package}/cronic ${package}/poller-wrapper.py ${toString cfg.pollerThreads}"
|
||||
"* * * * * ${cfg.user} ${env} ${package}/alerts.php >> /dev/null 2>&1"
|
||||
|
||||
"*/5 * * * * ${cfg.user} ${env} ${package}/poll-billing.php >> /dev/null 2>&1"
|
||||
"01 * * * * ${cfg.user} ${env} ${package}/billing-calculate.php >> /dev/null 2>&1"
|
||||
"*/5 * * * * ${cfg.user} ${env} ${package}/check-services.php >> /dev/null 2>&1"
|
||||
"*/5 * * * * ${cfg.user} ${env} ${package}/poll-billing.php >> /dev/null 2>&1"
|
||||
"01 * * * * ${cfg.user} ${env} ${package}/billing-calculate.php >> /dev/null 2>&1"
|
||||
"*/5 * * * * ${cfg.user} ${env} ${package}/check-services.php >> /dev/null 2>&1"
|
||||
|
||||
# extra: fast ping
|
||||
"* * * * * ${cfg.user} ${env} ${package}/ping.php >> /dev/null 2>&1"
|
||||
# extra: fast ping
|
||||
"* * * * * ${cfg.user} ${env} ${package}/ping.php >> /dev/null 2>&1"
|
||||
|
||||
# daily.sh tasks are split to exclude update
|
||||
"19 0 * * * ${cfg.user} ${env} ${package}/daily.sh cleanup >> /dev/null 2>&1"
|
||||
"19 0 * * * ${cfg.user} ${env} ${package}/daily.sh notifications >> /dev/null 2>&1"
|
||||
"19 0 * * * ${cfg.user} ${env} ${package}/daily.sh peeringdb >> /dev/null 2>&1"
|
||||
"19 0 * * * ${cfg.user} ${env} ${package}/daily.sh mac_oui >> /dev/null 2>&1"
|
||||
];
|
||||
# daily.sh tasks are split to exclude update
|
||||
"19 0 * * * ${cfg.user} ${env} ${package}/daily.sh cleanup >> /dev/null 2>&1"
|
||||
"19 0 * * * ${cfg.user} ${env} ${package}/daily.sh notifications >> /dev/null 2>&1"
|
||||
"19 0 * * * ${cfg.user} ${env} ${package}/daily.sh peeringdb >> /dev/null 2>&1"
|
||||
"19 0 * * * ${cfg.user} ${env} ${package}/daily.sh mac_oui >> /dev/null 2>&1"
|
||||
];
|
||||
};
|
||||
|
||||
security.wrappers = {
|
||||
|
@ -168,7 +168,7 @@ in {
|
||||
message = "Backups for database backends other than sqlite will need customization";
|
||||
}
|
||||
{
|
||||
assertion = !(lib.hasPrefix dataDir cfg.backupDir);
|
||||
assertion = cfg.backupDir != null -> !(lib.hasPrefix dataDir cfg.backupDir);
|
||||
message = "Backup directory can not be in ${dataDir}";
|
||||
}
|
||||
];
|
||||
|
@ -3,7 +3,8 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
|
||||
let
|
||||
api_token = "f87f42114e44b63ad1b9e3c3d33d6fbe"; # random md5 hash
|
||||
wrong_api_token = "e68ba041fcf1eab923a7a6de3af5f726"; # another random md5 hash
|
||||
in {
|
||||
in
|
||||
{
|
||||
name = "librenms";
|
||||
meta.maintainers = lib.teams.wdz.members;
|
||||
|
||||
@ -60,37 +61,29 @@ in {
|
||||
};
|
||||
|
||||
nodes.snmphost = {
|
||||
networking.firewall.allowedUDPPorts = [ 161 ];
|
||||
|
||||
systemd.services.snmpd = {
|
||||
description = "snmpd";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Type = "forking";
|
||||
User = "root";
|
||||
Group = "root";
|
||||
ExecStart = let
|
||||
snmpd-config = pkgs.writeText "snmpd-config" ''
|
||||
com2sec readonly default public
|
||||
services.snmpd = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
|
||||
group MyROGroup v2c readonly
|
||||
view all included .1 80
|
||||
access MyROGroup "" any noauth exact all none none
|
||||
configText = ''
|
||||
com2sec readonly default public
|
||||
|
||||
group MyROGroup v2c readonly
|
||||
view all included .1 80
|
||||
access MyROGroup "" any noauth exact all none none
|
||||
|
||||
syslocation Testcity, Testcountry
|
||||
syscontact Testi mc Test <test@example.com>
|
||||
'';
|
||||
|
||||
syslocation Testcity, Testcountry
|
||||
syscontact Testi mc Test <test@example.com>
|
||||
'';
|
||||
in "${pkgs.net-snmp}/bin/snmpd -c ${snmpd-config} -C";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
snmphost.wait_until_succeeds("pgrep snmpd")
|
||||
snmphost.wait_for_unit("snmpd.service")
|
||||
|
||||
librenms.wait_for_unit("lnms-api-init.service")
|
||||
librenms.wait_for_open_port(80)
|
||||
|
@ -8,6 +8,7 @@
|
||||
, librttopo
|
||||
, libspatialite
|
||||
, libxml2
|
||||
, libz
|
||||
, minizip
|
||||
, proj
|
||||
, readosm
|
||||
@ -34,6 +35,7 @@ stdenv.mkDerivation rec {
|
||||
librttopo
|
||||
libspatialite
|
||||
libxml2
|
||||
libz
|
||||
minizip
|
||||
proj
|
||||
readosm
|
||||
|
@ -14,12 +14,12 @@
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vdr-softhddevice";
|
||||
version = "2.3.6";
|
||||
version = "2.3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ua0lnj";
|
||||
repo = "vdr-plugin-softhddevice";
|
||||
sha256 = "sha256-T3OG93Bx1RVyXeqkNJvhOSGojZHIWT3DHHEIzUoykds=";
|
||||
sha256 = "sha256-gn1Z3pw8f0Tpo8Ot0hP9+p/KbK/EGOInE34BCH3aVp0=";
|
||||
rev = "v${version}";
|
||||
};
|
||||
|
||||
|
@ -5,7 +5,10 @@
|
||||
}:
|
||||
|
||||
let
|
||||
python3 = python311;
|
||||
python3 = python311.override {
|
||||
self = python3;
|
||||
packageOverrides = _: super: { tree-sitter = super.tree-sitter_0_21; };
|
||||
};
|
||||
in
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "autotools-language-server";
|
||||
|
@ -15,14 +15,14 @@ let
|
||||
"cli"
|
||||
"desktop"
|
||||
];
|
||||
version = "0.39.0";
|
||||
version = "0.40.0";
|
||||
cli = fetchurl {
|
||||
url = "https://storage.googleapis.com/caido-releases/v${version}/caido-cli-v${version}-linux-x86_64.tar.gz";
|
||||
hash = "sha256-I8UF2rzIKfpcrxyvDa4AReWDIHOKTCj3ERaWhG1xGG0=";
|
||||
hash = "sha256-G8sg+3Cp9QkSiiZ810z4jCfGvEJUFLorKT0JmHrO6Ao=";
|
||||
};
|
||||
desktop = fetchurl {
|
||||
url = "https://storage.googleapis.com/caido-releases/v${version}/caido-desktop-v${version}-linux-x86_64.AppImage";
|
||||
hash = "sha256-KYQck2+YYPLJN3L6qchacjyVyyXR3nmJDTX5GPB4WvI=";
|
||||
hash = "sha256-iNhitCNc221pYwcG+07GvP+bnTdtQGFjsloQ5Pth2l0=";
|
||||
};
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
inherit pname version;
|
||||
|
3674
pkgs/by-name/co/cosmic-comp/Cargo.lock
generated
3674
pkgs/by-name/co/cosmic-comp/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -3,6 +3,7 @@
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, makeBinaryWrapper
|
||||
, pixman
|
||||
, pkg-config
|
||||
, libinput
|
||||
, libglvnd
|
||||
@ -18,27 +19,34 @@
|
||||
, useSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage {
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cosmic-comp";
|
||||
version = "unstable-2023-11-13";
|
||||
version = "1.0.0-alpha.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pop-os";
|
||||
repo = "cosmic-comp";
|
||||
rev = "d051d141979820f50b75bd686c745fb7f84fcd05";
|
||||
hash = "sha256-8okRiVVPzmuPJjnv1YoQPQFI8g0j1DQhwUoO51dHgGA=";
|
||||
rev = "epoch-${version}";
|
||||
hash = "sha256-4NAIpyaITFNaTDBcsleIwKPq8nHNa77C7y+5hCIYXZE=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"cosmic-config-0.1.0" = "sha256-5WajbfcfCc0ZRpJfysqEydthOsF04ipb35QVWuWKrEs=";
|
||||
"cosmic-protocols-0.1.0" = "sha256-st46wmOncJvu0kj6qaot6LT/ojmW/BwXbbGf8s0mdZ8=";
|
||||
"atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
|
||||
"clipboard_macos-0.1.0" = "sha256-cG5vnkiyDlQnbEfV2sPbmBYKv1hd3pjJrymfZb8ziKk=";
|
||||
"cosmic-config-0.1.0" = "sha256-nZCefRCq40K0Mcsav+akZbX89kHnliqAkB7vKx5WIwY=";
|
||||
"cosmic-protocols-0.1.0" = "sha256-qgo8FMKo/uCbhUjfykRRN8KSavbyhZpu82M8npLcIPI=";
|
||||
"cosmic-settings-config-0.1.0" = "sha256-/Qav6r4VQ8ZDSs/tqHeutxYH3u4HiTBFWTfAYUSl2HQ=";
|
||||
"cosmic-text-0.12.1" = "sha256-x0XTxzbmtE2d4XCG/Nuq3DzBpz15BbnjRRlirfNJEiU=";
|
||||
"d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4=";
|
||||
"glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
|
||||
"id_tree-1.8.0" = "sha256-uKdKHRfPGt3vagOjhnri3aYY5ar7O3rp2/ivTfM2jT0=";
|
||||
"smithay-0.3.0" = "sha256-e6BSrsrVSBcOuF8m21m74h7DWZnYHGIYs/4D4ABvqNM=";
|
||||
"smithay-0.3.0" = "sha256-puo6xbWRTIco8luz3Jz83VXoRMkyb0ZH7kKHGlTzS5Q=";
|
||||
"smithay-clipboard-0.8.0" = "sha256-4InFXm0ahrqFrtNLeqIuE3yeOpxKZJZx+Bc0yQDtv34=";
|
||||
"smithay-egui-0.1.0" = "sha256-FcSoKCwYk3okwQURiQlDUcfk9m/Ne6pSblGAzHDaVHg=";
|
||||
"softbuffer-0.2.0" = "sha256-VD2GmxC58z7Qfu/L+sfENE+T8L40mvUKKSfgLmCTmjY=";
|
||||
"taffy-0.3.11" = "sha256-0hXOEj6IjSW8e1t+rvxBFX6V9XRum3QO2Des1XlHJEw=";
|
||||
"softbuffer-0.4.1" = "sha256-a0bUFz6O8CWRweNt/OxTvflnPYwO5nm6vsyc/WcXyNg=";
|
||||
"taffy-0.3.11" = "sha256-SCx9GEIJjWdoNVyq+RZAGn0N71qraKZxf9ZWhvyzLaI=";
|
||||
};
|
||||
};
|
||||
|
||||
@ -50,6 +58,7 @@ rustPlatform.buildRustPackage {
|
||||
libinput
|
||||
libxkbcommon
|
||||
mesa
|
||||
pixman
|
||||
seatd
|
||||
udev
|
||||
wayland
|
||||
|
3510
pkgs/by-name/co/cosmic-files/Cargo.lock
generated
3510
pkgs/by-name/co/cosmic-files/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -6,6 +6,7 @@
|
||||
, cosmic-icons
|
||||
, just
|
||||
, pkg-config
|
||||
, glib
|
||||
, libxkbcommon
|
||||
, wayland
|
||||
, xorg
|
||||
@ -13,34 +14,38 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cosmic-files";
|
||||
version = "0-unstable-2024-06-10";
|
||||
version = "1.0.0-alpha.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pop-os";
|
||||
repo = pname;
|
||||
rev = "6123108f3ae3c7074264184952f0a53e49a981d5";
|
||||
hash = "sha256-BeqpoLIZbR5Dg7OGYGQMFWBLdD96n4t7fX8Ju9/h5JU=";
|
||||
rev = "epoch-${version}";
|
||||
hash = "sha256-UwQwZRzOyMvLRRmU2noxGrqblezkR8J2PNMVoyG0M0w=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"accesskit-0.12.2" = "sha256-ksaYMGT/oug7isQY8/1WD97XDUsX2ShBdabUzxWffYw=";
|
||||
"accesskit-0.12.2" = "sha256-1UwgRyUe0PQrZrpS7574oNLi13fg5HpgILtZGW6JNtQ=";
|
||||
"atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
|
||||
"cosmic-config-0.1.0" = "sha256-eaG/HCwlKqSfEp6GEPeBS63j5WHq4qdYTNHqnW2zeeE=";
|
||||
"cosmic-text-0.11.2" = "sha256-Y9i5stMYpx+iqn4y5DJm1O1+3UIGp0/fSsnNq3Zloug=";
|
||||
"clipboard_macos-0.1.0" = "sha256-cG5vnkiyDlQnbEfV2sPbmBYKv1hd3pjJrymfZb8ziKk=";
|
||||
"cosmic-client-toolkit-0.1.0" = "sha256-1XtyEvednEMN4MApxTQid4eed19dEN5ZBDt/XRjuda0=";
|
||||
"cosmic-config-0.1.0" = "sha256-d2R5xytwf0BIbllG6elc/nn7nmiC3+VI1g3EiW8WEHA=";
|
||||
"cosmic-text-0.12.1" = "sha256-x0XTxzbmtE2d4XCG/Nuq3DzBpz15BbnjRRlirfNJEiU=";
|
||||
"d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4=";
|
||||
"fs_extra-1.3.0" = "sha256-ftg5oanoqhipPnbUsqnA4aZcyHqn9XsINJdrStIPLoE=";
|
||||
"glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
|
||||
"smithay-clipboard-0.8.0" = "sha256-4InFXm0ahrqFrtNLeqIuE3yeOpxKZJZx+Bc0yQDtv34=";
|
||||
"softbuffer-0.4.1" = "sha256-a0bUFz6O8CWRweNt/OxTvflnPYwO5nm6vsyc/WcXyNg=";
|
||||
"systemicons-0.7.0" = "sha256-zzAI+6mnpQOh+3mX7/sJ+w4a7uX27RduQ99PNxLNF78=";
|
||||
"taffy-0.3.11" = "sha256-SCx9GEIJjWdoNVyq+RZAGn0N71qraKZxf9ZWhvyzLaI=";
|
||||
"trash-5.0.0" = "sha256-6cMo2GtMJjU+fbehlsGNmj3LbzSP+vOjA4en3OgmZ54=";
|
||||
"winit-0.29.10" = "sha256-ScTII2AzK3SC8MVeASZ9jhVWsEaGrSQ2BnApTxgfxK4=";
|
||||
};
|
||||
};
|
||||
|
||||
# COSMIC applications now uses vergen for the About page
|
||||
# Update the COMMIT_DATE to match when the commit was made
|
||||
env.VERGEN_GIT_COMMIT_DATE = "2024-06-10";
|
||||
env.VERGEN_GIT_COMMIT_DATE = "2024-08-05";
|
||||
env.VERGEN_GIT_SHA = src.rev;
|
||||
|
||||
postPatch = ''
|
||||
@ -48,7 +53,7 @@ rustPlatform.buildRustPackage rec {
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ just pkg-config makeBinaryWrapper ];
|
||||
buildInputs = [ wayland ];
|
||||
buildInputs = [ glib libxkbcommon wayland ];
|
||||
|
||||
dontUseJustBuild = true;
|
||||
|
||||
@ -65,7 +70,7 @@ rustPlatform.buildRustPackage rec {
|
||||
postInstall = ''
|
||||
wrapProgram "$out/bin/${pname}" \
|
||||
--suffix XDG_DATA_DIRS : "${cosmic-icons}/share" \
|
||||
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ xorg.libX11 xorg.libXcursor xorg.libXrandr xorg.libXi wayland libxkbcommon ]}
|
||||
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ xorg.libX11 xorg.libXcursor xorg.libXrandr xorg.libXi wayland ]}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
288
pkgs/by-name/fs/fsnotifier/fsnotifier.patch
Normal file
288
pkgs/by-name/fs/fsnotifier/fsnotifier.patch
Normal file
@ -0,0 +1,288 @@
|
||||
diff --git a/fsnotifier.h b/fsnotifier.h
|
||||
index e7b2a42456bc..9dfb61d8d5d0 100644
|
||||
--- a/fsnotifier.h
|
||||
+++ b/fsnotifier.h
|
||||
@@ -61,7 +61,7 @@ bool init_inotify(void);
|
||||
void set_inotify_callback(void (*callback)(const char *, uint32_t));
|
||||
int get_inotify_fd(void);
|
||||
int watch(const char* root, array* mounts);
|
||||
-void unwatch(int id);
|
||||
+void unwatch(int id, char* path, unsigned int path_len);
|
||||
bool process_inotify_input(void);
|
||||
void close_inotify(void);
|
||||
|
||||
diff --git a/inotify.c b/inotify.c
|
||||
index a42846379476..0a33eded78bf 100644
|
||||
--- a/inotify.c
|
||||
+++ b/inotify.c
|
||||
@@ -22,6 +22,8 @@ typedef struct watch_node_str {
|
||||
struct watch_node_str* parent;
|
||||
array* kids;
|
||||
unsigned int path_len;
|
||||
+ struct watch_node_str* prev;
|
||||
+ struct watch_node_str* next;
|
||||
char path[];
|
||||
} watch_node;
|
||||
|
||||
@@ -102,7 +104,7 @@ int get_inotify_fd(void) {
|
||||
|
||||
#define EVENT_MASK (IN_MODIFY | IN_ATTRIB | IN_CREATE | IN_DELETE | IN_MOVE | IN_DELETE_SELF | IN_MOVE_SELF)
|
||||
|
||||
-static int add_watch(unsigned int path_len, watch_node* parent) {
|
||||
+static int add_watch(unsigned int path_len, watch_node* parent, watch_node** out) {
|
||||
int wd = inotify_add_watch(inotify_fd, path_buf, EVENT_MASK);
|
||||
if (wd < 0) {
|
||||
if (errno == EACCES || errno == ENOENT) {
|
||||
@@ -123,36 +125,39 @@ static int add_watch(unsigned int path_len, watch_node* parent) {
|
||||
userlog(LOG_INFO, "watching %s: %d", path_buf, wd);
|
||||
}
|
||||
|
||||
- watch_node* node = table_get(watches, wd);
|
||||
- if (node != NULL) {
|
||||
- if (node->wd != wd) {
|
||||
- userlog(LOG_ERR, "table error: corruption at %d:%s / %d:%s / %d", wd, path_buf, node->wd, node->path, watch_count);
|
||||
- return ERR_ABORT;
|
||||
- }
|
||||
- else if (strcmp(node->path, path_buf) != 0) {
|
||||
- char buf1[PATH_MAX], buf2[PATH_MAX];
|
||||
- const char* normalized1 = realpath(node->path, buf1);
|
||||
- const char* normalized2 = realpath(path_buf, buf2);
|
||||
- if (normalized1 == NULL || normalized2 == NULL || strcmp(normalized1, normalized2) != 0) {
|
||||
- userlog(LOG_ERR, "table error: collision at %d (new %s, existing %s)", wd, path_buf, node->path);
|
||||
- return ERR_ABORT;
|
||||
- }
|
||||
- else {
|
||||
- userlog(LOG_INFO, "intersection at %d: (new %s, existing %s, real %s)", wd, path_buf, node->path, normalized1);
|
||||
- return ERR_IGNORE;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- return wd;
|
||||
- }
|
||||
-
|
||||
- node = malloc(sizeof(watch_node) + path_len + 1);
|
||||
+ watch_node* existing = table_get(watches, wd);
|
||||
+ if (existing != NULL) {
|
||||
+ for (;;) {
|
||||
+ if (existing->wd != wd) {
|
||||
+ userlog(LOG_ERR, "table error: corruption at %d:%s / %d:%s / %d", wd, path_buf, existing->wd, existing->path, watch_count);
|
||||
+ return ERR_ABORT;
|
||||
+ }
|
||||
+ if (existing->path_len == path_len && strncmp(existing->path, path_buf, path_len) == 0) {
|
||||
+ return wd;
|
||||
+ }
|
||||
+ char buf1[PATH_MAX], buf2[PATH_MAX];
|
||||
+ const char* normalized1 = realpath(existing->path, buf1);
|
||||
+ const char* normalized2 = realpath(path_buf, buf2);
|
||||
+ if (normalized1 != NULL && normalized2 != NULL && strcmp(normalized1, normalized2) == 0) {
|
||||
+ userlog(LOG_INFO, "intersection at %d: (new %s, existing %s, real %s)", wd, path_buf, existing->path, normalized1);
|
||||
+ return ERR_IGNORE;
|
||||
+ }
|
||||
+ if (existing->next == NULL) {
|
||||
+ break;
|
||||
+ }
|
||||
+ existing = existing->next;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ watch_node* node = malloc(sizeof(watch_node) + path_len + 1);
|
||||
CHECK_NULL(node, ERR_ABORT)
|
||||
memcpy(node->path, path_buf, path_len + 1);
|
||||
node->path_len = path_len;
|
||||
node->wd = wd;
|
||||
node->parent = parent;
|
||||
node->kids = NULL;
|
||||
+ node->prev = existing;
|
||||
+ node->next = NULL;
|
||||
|
||||
if (parent != NULL) {
|
||||
if (parent->kids == NULL) {
|
||||
@@ -162,11 +167,15 @@ static int add_watch(unsigned int path_len, watch_node* parent) {
|
||||
CHECK_NULL(array_push(parent->kids, node), ERR_ABORT)
|
||||
}
|
||||
|
||||
- if (table_put(watches, wd, node) == NULL) {
|
||||
+ if (existing != NULL) {
|
||||
+ existing->next = node;
|
||||
+ }
|
||||
+ else if (table_put(watches, wd, node) == NULL) {
|
||||
userlog(LOG_ERR, "table error: unable to put (%d:%s)", wd, path_buf);
|
||||
return ERR_ABORT;
|
||||
}
|
||||
|
||||
+ *out = node;
|
||||
return wd;
|
||||
}
|
||||
|
||||
@@ -177,22 +186,27 @@ static void watch_limit_reached(void) {
|
||||
}
|
||||
}
|
||||
|
||||
-static void rm_watch(int wd, bool update_parent) {
|
||||
- watch_node* node = table_get(watches, wd);
|
||||
- if (node == NULL) {
|
||||
- return;
|
||||
+static void rm_watch(watch_node* node, bool update_parent) {
|
||||
+ if (node->prev != NULL) {
|
||||
+ node->prev->next = node->next;
|
||||
+ node->next->prev = node->prev;
|
||||
}
|
||||
-
|
||||
- userlog(LOG_INFO, "unwatching %s: %d (%p)", node->path, node->wd, node);
|
||||
-
|
||||
- if (inotify_rm_watch(inotify_fd, node->wd) < 0) {
|
||||
- userlog(LOG_INFO, "inotify_rm_watch(%d:%s): %s", node->wd, node->path, strerror(errno));
|
||||
+ else if (node->next != NULL) {
|
||||
+ table_put(watches, node->wd, node->next);
|
||||
+ node->next->prev = NULL;
|
||||
+ }
|
||||
+ else {
|
||||
+ userlog(LOG_INFO, "unwatching %s: %d (%p)", node->path, node->wd, node);
|
||||
+ if (inotify_rm_watch(inotify_fd, node->wd) < 0) {
|
||||
+ userlog(LOG_INFO, "inotify_rm_watch(%d:%s): %s", node->wd, node->path, strerror(errno));
|
||||
+ }
|
||||
+ table_put(watches, node->wd, NULL);
|
||||
}
|
||||
|
||||
for (int i = 0; i < array_size(node->kids); i++) {
|
||||
watch_node* kid = array_get(node->kids, i);
|
||||
if (kid != NULL) {
|
||||
- rm_watch(kid->wd, false);
|
||||
+ rm_watch(kid, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -207,7 +221,6 @@ static void rm_watch(int wd, bool update_parent) {
|
||||
|
||||
array_delete(node->kids);
|
||||
free(node);
|
||||
- table_put(watches, wd, NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -234,7 +247,9 @@ static int walk_tree(unsigned int path_len, watch_node* parent, bool recursive,
|
||||
}
|
||||
}
|
||||
|
||||
- int id = add_watch(path_len, parent);
|
||||
+
|
||||
+ watch_node* node;
|
||||
+ int id = add_watch(path_len, parent, &node);
|
||||
|
||||
if (dir == NULL) {
|
||||
return id;
|
||||
@@ -271,7 +286,7 @@ static int walk_tree(unsigned int path_len, watch_node* parent, bool recursive,
|
||||
|
||||
int subdir_id = walk_tree(path_len + 1 + name_len, table_get(watches, id), recursive, mounts);
|
||||
if (subdir_id < 0 && subdir_id != ERR_IGNORE) {
|
||||
- rm_watch(id, true);
|
||||
+ rm_watch(node, true);
|
||||
id = subdir_id;
|
||||
break;
|
||||
}
|
||||
@@ -323,47 +338,49 @@ int watch(const char* root, array* mounts) {
|
||||
}
|
||||
|
||||
|
||||
-void unwatch(int id) {
|
||||
- rm_watch(id, true);
|
||||
+void unwatch(int wd, char* path, unsigned int path_len) {
|
||||
+ for (watch_node* node = table_get(watches, wd); node != NULL; node = node->next) {
|
||||
+ if (node->path_len == path_len && strncmp(node->path, path, path_len) == 0) {
|
||||
+ rm_watch(node, true);
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
|
||||
static bool process_inotify_event(struct inotify_event* event) {
|
||||
- watch_node* node = table_get(watches, event->wd);
|
||||
- if (node == NULL) {
|
||||
- return true;
|
||||
- }
|
||||
-
|
||||
- bool is_dir = (event->mask & IN_ISDIR) == IN_ISDIR;
|
||||
- userlog(LOG_INFO, "inotify: wd=%d mask=%d dir=%d name=%s", event->wd, event->mask & (~IN_ISDIR), is_dir, node->path);
|
||||
-
|
||||
- unsigned int path_len = node->path_len;
|
||||
- memcpy(path_buf, node->path, path_len + 1);
|
||||
- if (event->len > 0) {
|
||||
- path_buf[path_len] = '/';
|
||||
- unsigned int name_len = strlen(event->name);
|
||||
- memcpy(path_buf + path_len + 1, event->name, name_len + 1);
|
||||
- path_len += name_len + 1;
|
||||
- }
|
||||
+ for (watch_node* node = table_get(watches, event->wd); node != NULL; node = node->next) {
|
||||
+ bool is_dir = (event->mask & IN_ISDIR) == IN_ISDIR;
|
||||
+ userlog(LOG_INFO, "inotify: wd=%d mask=%d dir=%d name=%s", event->wd, event->mask & (~IN_ISDIR), is_dir, node->path);
|
||||
+
|
||||
+ unsigned int path_len = node->path_len;
|
||||
+ memcpy(path_buf, node->path, path_len + 1);
|
||||
+ if (event->len > 0) {
|
||||
+ path_buf[path_len] = '/';
|
||||
+ unsigned int name_len = strlen(event->name);
|
||||
+ memcpy(path_buf + path_len + 1, event->name, name_len + 1);
|
||||
+ path_len += name_len + 1;
|
||||
+ }
|
||||
|
||||
- if (callback != NULL) {
|
||||
- (*callback)(path_buf, event->mask);
|
||||
- }
|
||||
+ if (callback != NULL) {
|
||||
+ (*callback)(path_buf, event->mask);
|
||||
+ }
|
||||
|
||||
- if (is_dir && event->mask & (IN_CREATE | IN_MOVED_TO)) {
|
||||
- int result = walk_tree(path_len, node, true, NULL);
|
||||
- if (result < 0 && result != ERR_IGNORE && result != ERR_CONTINUE) {
|
||||
- return false;
|
||||
+ if (is_dir && event->mask & (IN_CREATE | IN_MOVED_TO)) {
|
||||
+ int result = walk_tree(path_len, node, true, NULL);
|
||||
+ if (result < 0 && result != ERR_IGNORE && result != ERR_CONTINUE) {
|
||||
+ return false;
|
||||
+ }
|
||||
}
|
||||
- }
|
||||
|
||||
- if (is_dir && event->mask & (IN_DELETE | IN_MOVED_FROM)) {
|
||||
- for (int i = 0; i < array_size(node->kids); i++) {
|
||||
- watch_node* kid = array_get(node->kids, i);
|
||||
- if (kid != NULL && strncmp(path_buf, kid->path, kid->path_len) == 0) {
|
||||
- rm_watch(kid->wd, false);
|
||||
- array_put(node->kids, i, NULL);
|
||||
- break;
|
||||
+ if (is_dir && event->mask & (IN_DELETE | IN_MOVED_FROM)) {
|
||||
+ for (int i = 0; i < array_size(node->kids); i++) {
|
||||
+ watch_node* kid = array_get(node->kids, i);
|
||||
+ if (kid != NULL && strncmp(path_buf, kid->path, kid->path_len) == 0) {
|
||||
+ rm_watch(kid, false);
|
||||
+ array_put(node->kids, i, NULL);
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
diff --git a/main.c b/main.c
|
||||
index b6b2e6fdb5b0..32cc8efe7856 100644
|
||||
--- a/main.c
|
||||
+++ b/main.c
|
||||
@@ -246,7 +246,7 @@ static void unregister_roots(void) {
|
||||
watch_root* root;
|
||||
while ((root = array_pop(roots)) != NULL) {
|
||||
userlog(LOG_INFO, "unregistering root: %s", root->path);
|
||||
- unwatch(root->id);
|
||||
+ unwatch(root->id, root->path, strlen(root->path));
|
||||
free(root->path);
|
||||
free(root);
|
||||
}
|
||||
@@ -422,7 +422,7 @@ static void check_root_removal(const char* path) {
|
||||
for (int i = 0; i < array_size(roots); i++) {
|
||||
watch_root* root = array_get(roots, i);
|
||||
if (root->id >= 0 && strcmp(path, UNFLATTEN(root->path)) == 0) {
|
||||
- unwatch(root->id);
|
||||
+ unwatch(root->id, root->path, strlen(root->path));
|
||||
root->id = -1;
|
||||
userlog(LOG_INFO, "root deleted: %s\n", root->path);
|
||||
report_event("DELETE", path);
|
||||
|
39
pkgs/by-name/fs/fsnotifier/package.nix
Normal file
39
pkgs/by-name/fs/fsnotifier/package.nix
Normal file
@ -0,0 +1,39 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "2024.2.0";
|
||||
pname = "fsnotifier";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JetBrains";
|
||||
repo = "intellij-community";
|
||||
rev = "0f6d9ccb67b8fcad0d802cd76209d503c4ed66a6";
|
||||
sha256 = "3TAiVvKi50JQRrVG6J7LUJKTiuOTDyKt4DhoA1QmbrM=";
|
||||
sparseCheckout = [ "native/fsNotifier/linux" ];
|
||||
};
|
||||
|
||||
# fix for hard-links in nix-store, https://github.com/JetBrains/intellij-community/pull/2171
|
||||
patches = [ ./fsnotifier.patch ];
|
||||
|
||||
sourceRoot = "${src.name}/native/fsNotifier/linux";
|
||||
|
||||
buildPhase = ''
|
||||
mkdir -p $out/bin
|
||||
|
||||
$CC -O2 -Wall -Wextra -Wpedantic -D "VERSION=\"${version}\"" -std=c11 main.c inotify.c util.c -o fsnotifier
|
||||
|
||||
cp fsnotifier $out/bin/fsnotifier
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/JetBrains/intellij-community/tree/master/native/fsNotifier/linux";
|
||||
description = "IntelliJ Platform companion program for watching and reporting file and directory structure modification";
|
||||
license = lib.licenses.asl20;
|
||||
mainProgram = "fsnotifier";
|
||||
maintainers = with lib.maintainers; [ shyim ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
@ -16,17 +16,17 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "grafana-alloy";
|
||||
version = "1.2.1";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
rev = "v${version}";
|
||||
owner = "grafana";
|
||||
repo = "alloy";
|
||||
hash = "sha256-RwTwwWz5nEk5eeCK/cZivd3r6WmoIqKjNtEQ0RVk1pw=";
|
||||
hash = "sha256-2OpBRSX/t6hwf1fHogrNTuDAmKArVXxwKHXuHyTXnYA=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
vendorHash = "sha256-UYFZmrE0Pm5bdhloaR9zSEvlPWV/uWo85zjmIuN8Jvc=";
|
||||
vendorHash = "sha256-eMtwmADYbvpIm4FHTHieQ1i4xCty5xCwsZ/JD9r94/8=";
|
||||
|
||||
nativeBuildInputs = [ fixup-yarn-lock yarn nodejs installShellFiles ];
|
||||
|
||||
@ -57,7 +57,7 @@ buildGoModule rec {
|
||||
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
yarnLock = "${src}/internal/web/ui/yarn.lock";
|
||||
hash = "sha256-8/siWMFoUokMXJ13QT8050AXynsApiC67TP/7Hvugsk=";
|
||||
hash = "sha256-Jk+zqR/+NBde9ywncIEJM4kgavqiDvcIAjxJCSMrZDc=";
|
||||
};
|
||||
|
||||
preBuild = ''
|
||||
|
@ -1,13 +1,13 @@
|
||||
{ lib, buildGoModule, fetchFromGitHub, nix-update-script, testers, immich-go }:
|
||||
buildGoModule rec {
|
||||
pname = "immich-go";
|
||||
version = "0.20.1";
|
||||
version = "0.21.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "simulot";
|
||||
repo = "immich-go";
|
||||
rev = "${version}";
|
||||
hash = "sha256-9pIQ3xRskPZtwjCJ7MG8IaVsVkqM6s3Jxy4qG842/h8=";
|
||||
hash = "sha256-mN/3ctEX5R7UepJUs3Ble0s2c0gRxHe5CDey9MoE4YA=";
|
||||
|
||||
# Inspired by: https://github.com/NixOS/nixpkgs/blob/f2d7a289c5a5ece8521dd082b81ac7e4a57c2c5c/pkgs/applications/graphics/pdfcpu/default.nix#L20-L32
|
||||
# The intention here is to write the information into files in the `src`'s
|
||||
@ -24,7 +24,7 @@ buildGoModule rec {
|
||||
'';
|
||||
};
|
||||
|
||||
vendorHash = "sha256-MKWlMoJZ0OECa7Ej26m4D6JYWjnnRuh0rdBUUPnF6SY=";
|
||||
vendorHash = "sha256-Y6awfvbKV0G3VFXCUHLSwUkGaMkTaacruSz8KVi6NoQ=";
|
||||
|
||||
# options used by upstream:
|
||||
# https://github.com/simulot/immich-go/blob/0.13.2/.goreleaser.yaml
|
||||
|
@ -5,25 +5,24 @@
|
||||
}:
|
||||
|
||||
appimageTools.wrapType2 rec {
|
||||
pname = "lunar-client";
|
||||
version = "3.2.11";
|
||||
pname = "lunarclient";
|
||||
version = "3.2.12";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
|
||||
hash = "sha512-qRucW9x4LMmTb8pw0zY1EKXkPfjdahCi2PN/bfdB8CYA4wZp0bfZNaGtPpI/BKPlnR/nfpypEdnHsoqlL9KiCg==";
|
||||
hash = "sha512-dqFFi5Vri5oEbyDdzKiWPF1mbSf0Qv2MBuEqF/rIs1aYMNjCQDu2CqTrhLtctu2VXxKlgzaqktFWKs9WMZayZA==";
|
||||
};
|
||||
|
||||
extraInstallCommands =
|
||||
let contents = appimageTools.extract { inherit pname version src; };
|
||||
in ''
|
||||
source "${makeWrapper}/nix-support/setup-hook"
|
||||
wrapProgram $out/bin/lunar-client \
|
||||
wrapProgram $out/bin/lunarclient \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
|
||||
install -Dm444 ${contents}/launcher.desktop $out/share/applications/lunar-client.desktop
|
||||
install -Dm444 ${contents}/launcher.png $out/share/pixmaps/lunar-client.png
|
||||
substituteInPlace $out/share/applications/lunar-client.desktop \
|
||||
--replace 'Exec=AppRun --no-sandbox %U' 'Exec=lunar-client' \
|
||||
--replace 'Icon=launcher' 'Icon=lunar-client'
|
||||
install -Dm444 ${contents}/lunarclient.desktop -t $out/share/applications/
|
||||
install -Dm444 ${contents}/lunarclient.png -t $out/share/pixmaps/
|
||||
substituteInPlace $out/share/applications/lunarclient.desktop \
|
||||
--replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=lunarclient' \
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
@ -32,7 +31,7 @@ appimageTools.wrapType2 rec {
|
||||
description = "Free Minecraft client with mods, cosmetics, and performance boost";
|
||||
homepage = "https://www.lunarclient.com/";
|
||||
license = with licenses; [ unfree ];
|
||||
mainProgram = "lunar-client";
|
||||
mainProgram = "lunarclient";
|
||||
maintainers = with maintainers; [ Technical27 surfaceflinger ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
|
@ -2,7 +2,6 @@
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
pkg-config,
|
||||
udev,
|
||||
stdenv,
|
||||
@ -24,8 +23,6 @@ rustPlatform.buildRustPackage rec {
|
||||
lockFile = ./Cargo.lock;
|
||||
};
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
postPatch = ''
|
||||
ln -s ${./Cargo.lock} Cargo.lock
|
||||
'';
|
||||
|
80
pkgs/by-name/pr/prrte/package.nix
Normal file
80
pkgs/by-name/pr/prrte/package.nix
Normal file
@ -0,0 +1,80 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
removeReferencesTo,
|
||||
fetchFromGitHub,
|
||||
autoconf,
|
||||
automake,
|
||||
libtool,
|
||||
gitMinimal,
|
||||
perl,
|
||||
python3,
|
||||
flex,
|
||||
hwloc,
|
||||
libevent,
|
||||
zlib,
|
||||
pmix,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "prrte";
|
||||
version = "3.0.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openpmix";
|
||||
repo = "prrte";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-RDxd4veLGbN+T7xCDnNp2lbOM7mwKKD+SKdPmExr1C8=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs ./autogen.pl ./config
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
./autogen.pl
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
moveToOutput "bin/prte_info" "''${!outputDev}"
|
||||
# Fix a broken symlink, created due to FHS assumptions
|
||||
rm "$out/bin/pcc"
|
||||
ln -s ${lib.getDev pmix}/bin/pmixcc "''${!outputDev}"/bin/pcc
|
||||
|
||||
remove-references-to -t "''${!outputDev}" $(readlink -f $out/lib/libprrte${stdenv.hostPlatform.extensions.library})
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
removeReferencesTo
|
||||
perl
|
||||
python3
|
||||
autoconf
|
||||
automake
|
||||
libtool
|
||||
flex
|
||||
gitMinimal
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libevent
|
||||
hwloc
|
||||
zlib
|
||||
pmix
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
description = "PMIx Reference Runtime Environment";
|
||||
homepage = "https://docs.prrte.org/";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ markuskowa ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
@ -21,13 +21,13 @@ let
|
||||
in
|
||||
stdenv'.mkDerivation (finalAttrs: {
|
||||
pname = "renovate";
|
||||
version = "37.440.7";
|
||||
version = "38.18.17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "renovatebot";
|
||||
repo = "renovate";
|
||||
rev = "refs/tags/${finalAttrs.version}";
|
||||
hash = "sha256-VMv55BVeauRa/hmg1Y7D15ltAbccdcMd4Azk5IInuH0=";
|
||||
hash = "sha256-Mur4UH63unYjgwkj9Rscg9V2M38XLrsNuqz+mWn0wR4=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@ -44,7 +44,7 @@ stdenv'.mkDerivation (finalAttrs: {
|
||||
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-ZYQ7G2BKkRxuyg31dysim+P1Vje0VysJm+UFyy4xuKI=";
|
||||
hash = "sha256-3XSseB0rjFv1bsJ5S2fCveFicSQFnTwz4MmjzC7t9Jw=";
|
||||
};
|
||||
|
||||
env.COREPACK_ENABLE_STRICT = 0;
|
||||
|
69
pkgs/by-name/rr/rrdtool/package.nix
Normal file
69
pkgs/by-name/rr/rrdtool/package.nix
Normal file
@ -0,0 +1,69 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
autoreconfHook,
|
||||
gettext,
|
||||
perl,
|
||||
pkg-config,
|
||||
libxml2,
|
||||
pango,
|
||||
cairo,
|
||||
groff,
|
||||
tcl,
|
||||
darwin,
|
||||
}:
|
||||
|
||||
perl.pkgs.toPerlModule (
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rrdtool";
|
||||
version = "1.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "oetiker";
|
||||
repo = "rrdtool-1.x";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-CPbSu1mosNlfj2nqiNVH14a5C5njkfvJM8ix3X3aP8E=";
|
||||
};
|
||||
|
||||
# Fix darwin build
|
||||
patches = lib.optional stdenv.isDarwin (fetchpatch {
|
||||
url = "https://github.com/oetiker/rrdtool-1.x/pull/1262.patch";
|
||||
hash = "sha256-aP0rmDlILn6VC8Tg7HpRXbxL9+KD/PRTbXnbQ7HgPEg=";
|
||||
});
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
autoreconfHook
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
gettext
|
||||
perl
|
||||
libxml2
|
||||
pango
|
||||
cairo
|
||||
groff
|
||||
]
|
||||
++ lib.optionals stdenv.isDarwin [
|
||||
tcl
|
||||
darwin.apple_sdk.frameworks.ApplicationServices
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
# for munin and rrdtool support
|
||||
mkdir -p $out/${perl.libPrefix}
|
||||
mv $out/lib/perl/5* $out/${perl.libPrefix}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://oss.oetiker.ch/rrdtool/";
|
||||
description = "High performance logging in Round Robin Databases";
|
||||
license = licenses.gpl2Only;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [ pSub ];
|
||||
};
|
||||
}
|
||||
)
|
@ -16,13 +16,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "saunafs";
|
||||
version = "4.3.0";
|
||||
version = "4.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "leil-io";
|
||||
repo = "saunafs";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-T/K13JygU7Q/ylPk5ZAby3Kepi8I4z3vBBaigboJhus=";
|
||||
hash = "sha256-t2fb8AA9m2I7Qna/v4F2GNL02iCU0r7zz5TgajHUmrg=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -9,18 +9,18 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "shopware-cli";
|
||||
version = "0.4.50";
|
||||
version = "0.4.51";
|
||||
src = fetchFromGitHub {
|
||||
repo = "shopware-cli";
|
||||
owner = "FriendsOfShopware";
|
||||
rev = version;
|
||||
hash = "sha256-dVq2Aw6oYkr8LAdd0LeFvkzMYSronCsDxesqUh2IGV0=";
|
||||
hash = "sha256-mimFOZjWiDodCopJ23RZxWijOT7bDPUOH+A8GL/UyXs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ installShellFiles makeWrapper ];
|
||||
nativeCheckInputs = [ git dart-sass ];
|
||||
|
||||
vendorHash = "sha256-ABvjNRADmamYiq5A0NZjv1HlGxxAHQlut1ZR2kA04oU=";
|
||||
vendorHash = "sha256-NXk3wH/XHohI7aYK+dvUmh+0hUrBNiH6xouT9EM8eiE=";
|
||||
|
||||
postInstall = ''
|
||||
export HOME="$(mktemp -d)"
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "trickest-cli";
|
||||
version = "1.8.1";
|
||||
version = "1.8.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "trickest";
|
||||
repo = "trickest-cli";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-6fshMuwGv4tkaqySHVsCwX+kBpUt+u/x9qnJNZ3c0HA=";
|
||||
hash = "sha256-X7JGzTaTm7CE5+mTvnV93d5Hx2A1vF+aufmC5/xWRtc=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-gk8YMMvTHBL7yoXU9n0jhtUS472fqLW5m+mSl4Lio6c=";
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
appimageTools.wrapType2 rec {
|
||||
pname = "xlights";
|
||||
version = "2024.13";
|
||||
version = "2024.14";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/smeighan/xLights/releases/download/${version}/xLights-${version}-x86_64.AppImage";
|
||||
hash = "sha256-Oiavnnk5geFao7lq0GpmNg+xs1FeUOt3JhSbLUV8GkE=";
|
||||
hash = "sha256-WqLPesH6KaOAj7gYycyrmzG2NIkKs3cjUm+K83rvha0=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
37
pkgs/development/coq-modules/stalmarck/default.nix
Normal file
37
pkgs/development/coq-modules/stalmarck/default.nix
Normal file
@ -0,0 +1,37 @@
|
||||
{ lib, mkCoqDerivation, coq, version ? null }:
|
||||
|
||||
let
|
||||
repo = "stalmarck";
|
||||
defaultVersion = with lib.versions; lib.switch coq.coq-version [
|
||||
{ case = isEq "8.20"; out = "8.20.0"; }
|
||||
] null;
|
||||
release = {
|
||||
"8.20.0".sha256 = "sha256-jITxQT1jLyZvWCGPnmK8i3IrwsZwMPOV0aBe9r22TIQ=";
|
||||
};
|
||||
releaseRev = v: "v${v}";
|
||||
|
||||
packages = [ "stalmarck" "stalmarck-tactic" ];
|
||||
|
||||
stalmarck_ = package: let
|
||||
pname = package;
|
||||
istac = package == "stalmarck-tactic";
|
||||
propagatedBuildInputs =
|
||||
lib.optional istac (stalmarck_ "stalmarck");
|
||||
description =
|
||||
if istac then
|
||||
"Coq tactic and verified tool for proving tautologies using Stålmarck's algorithm"
|
||||
else
|
||||
"A two-level approach to prove tautologies using Stålmarck's algorithm in Coq.";
|
||||
in mkCoqDerivation {
|
||||
inherit version pname defaultVersion release releaseRev repo
|
||||
propagatedBuildInputs;
|
||||
|
||||
mlPlugin = istac;
|
||||
useDune = istac;
|
||||
|
||||
meta = { inherit description; license = lib.licenses.lgpl21Plus; };
|
||||
|
||||
passthru = lib.genAttrs packages stalmarck_;
|
||||
};
|
||||
in
|
||||
stalmarck_ "stalmarck-tactic"
|
@ -139,10 +139,12 @@ in stdenv.mkDerivation {
|
||||
patches = [
|
||||
./opencl.patch
|
||||
|
||||
# Manual backport of https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30510
|
||||
# Fixes video corruption / crashes when decoding video on AMD iGPUs
|
||||
# FIXME: remove when merged
|
||||
./vcn-pagefault.patch
|
||||
# FIXME: remove in the next update
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.freedesktop.org/mesa/mesa/-/commit/8b35da91b23afc65256b78a59d116fd09544cd28.patch";
|
||||
hash = "sha256-z0KKBtot3VxXiS16YcmwZbeg8HSCLzEbvWdufI/fOk8=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
@ -1,10 +0,0 @@
|
||||
--- a/src/gallium/drivers/radeonsi/radeon_vcn_dec.c
|
||||
+++ b/src/gallium/drivers/radeonsi/radeon_vcn_dec.c
|
||||
@@ -1390,6 +1390,7 @@ static unsigned rvcn_dec_dynamic_dpb_t2_message(struct radeon_decoder *dec, rvcn
|
||||
dummy->dpb.res;
|
||||
addr = dec->ws->buffer_get_virtual_address(dummy_res->buf);
|
||||
}
|
||||
+ dec->ws->cs_add_buffer(&dec->cs, d->dpb.res->buf, RADEON_USAGE_READWRITE | RADEON_USAGE_SYNCHRONIZED, RADEON_DOMAIN_VRAM);
|
||||
dynamic_dpb_t2->dpbAddrLo[i] = addr;
|
||||
dynamic_dpb_t2->dpbAddrHi[i] = addr >> 32;
|
||||
++dynamic_dpb_t2->dpbArraySize;
|
@ -1,136 +1,270 @@
|
||||
{ lib, stdenv, fetchurl, removeReferencesTo, gfortran, perl, libnl
|
||||
, rdma-core, zlib, numactl, libevent, hwloc, targetPackages
|
||||
, libpsm2, libfabric, pmix, ucx, ucc, makeWrapper
|
||||
, config
|
||||
# Enable CUDA support
|
||||
, cudaSupport ? config.cudaSupport, cudaPackages
|
||||
|
||||
# Enable the Sun Grid Engine bindings
|
||||
, enableSGE ? false
|
||||
|
||||
# Pass PATH/LD_LIBRARY_PATH to point to current mpirun by default
|
||||
, enablePrefix ? false
|
||||
|
||||
# Enable libfabric support (necessary for Omnipath networks) on x86_64 linux
|
||||
, fabricSupport ? stdenv.isLinux && stdenv.isx86_64
|
||||
|
||||
# Enable Fortran support
|
||||
, fortranSupport ? true
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
removeReferencesTo,
|
||||
gfortran,
|
||||
perl,
|
||||
libnl,
|
||||
rdma-core,
|
||||
zlib,
|
||||
numactl,
|
||||
libevent,
|
||||
hwloc,
|
||||
targetPackages,
|
||||
libpsm2,
|
||||
libfabric,
|
||||
pmix,
|
||||
ucx,
|
||||
ucc,
|
||||
prrte,
|
||||
makeWrapper,
|
||||
python3,
|
||||
config,
|
||||
# Enable CUDA support
|
||||
cudaSupport ? config.cudaSupport,
|
||||
cudaPackages,
|
||||
# Enable the Sun Grid Engine bindings
|
||||
enableSGE ? false,
|
||||
# Pass PATH/LD_LIBRARY_PATH to point to current mpirun by default
|
||||
enablePrefix ? false,
|
||||
# Enable libfabric support (necessary for Omnipath networks) on x86_64 linux
|
||||
fabricSupport ? stdenv.isLinux && stdenv.isx86_64,
|
||||
# Enable Fortran support
|
||||
fortranSupport ? true,
|
||||
# AVX/SSE options. See passthru.defaultAvxOptions for the available options.
|
||||
# note that opempi fails to build with AVX disabled, meaning that everything
|
||||
# up to AVX is enabled by default.
|
||||
avxOptions ? { },
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "openmpi";
|
||||
version = "4.1.6";
|
||||
version = "5.0.3";
|
||||
|
||||
src = with lib.versions; fetchurl {
|
||||
url = "https://www.open-mpi.org/software/ompi/v${major version}.${minor version}/downloads/${pname}-${version}.tar.bz2";
|
||||
sha256 = "sha256-90CZRIVRbetjtTEa8SLCZRefUyig2FelZ7hdsAsR5BU=";
|
||||
src = fetchurl {
|
||||
url = "https://www.open-mpi.org/software/ompi/v${lib.versions.majorMinor finalAttrs.version}/downloads/openmpi-${finalAttrs.version}.tar.bz2";
|
||||
sha256 = "sha256-mQWC8gazqzLpOKoxu/B8Y5No5EBdyhlvq+fw927tqQs=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs ./
|
||||
|
||||
# Ensure build is reproducible
|
||||
ts=`date -d @$SOURCE_DATE_EPOCH`
|
||||
sed -i 's/OPAL_CONFIGURE_USER=.*/OPAL_CONFIGURE_USER="nixbld"/' configure
|
||||
sed -i 's/OPAL_CONFIGURE_HOST=.*/OPAL_CONFIGURE_HOST="localhost"/' configure
|
||||
sed -i "s/OPAL_CONFIGURE_DATE=.*/OPAL_CONFIGURE_DATE=\"$ts\"/" configure
|
||||
find -name "Makefile.in" -exec sed -i "s/\`date\`/$ts/" \{} \;
|
||||
# This is dynamically detected. Configure does not provide fine grained options
|
||||
# We just disable the check in the configure script for now
|
||||
${lib.pipe (finalAttrs.passthru.defaultAvxOptions // avxOptions) [
|
||||
(lib.mapAttrsToList (
|
||||
option: val: ''
|
||||
substituteInPlace configure \
|
||||
--replace-fail \
|
||||
ompi_cv_op_avx_check_${option}=yes \
|
||||
ompi_cv_op_avx_check_${option}=${if val then "yes" else "no"}
|
||||
''
|
||||
))
|
||||
(lib.concatStringsSep "\n")
|
||||
]}
|
||||
'';
|
||||
|
||||
outputs = [ "out" "man" "dev" ];
|
||||
# Ensure build is reproducible according to manual
|
||||
# https://docs.open-mpi.org/en/v5.0.x/release-notes/general.html#general-notes
|
||||
env = {
|
||||
USER = "nixbld";
|
||||
HOSTNAME = "localhost";
|
||||
SOURCE_DATE_EPOCH = "0";
|
||||
};
|
||||
|
||||
buildInputs = [ zlib ]
|
||||
++ lib.optionals stdenv.isLinux [ libnl numactl pmix ucx ucc ]
|
||||
outputs =
|
||||
[ "out" ]
|
||||
++ lib.optionals stdenv.isLinux [
|
||||
"man"
|
||||
"dev"
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
zlib
|
||||
libevent
|
||||
hwloc
|
||||
]
|
||||
++ lib.optionals stdenv.isLinux [
|
||||
libnl
|
||||
numactl
|
||||
pmix
|
||||
ucx
|
||||
ucc
|
||||
prrte
|
||||
]
|
||||
++ lib.optionals cudaSupport [ cudaPackages.cuda_cudart ]
|
||||
++ [ libevent hwloc ]
|
||||
++ lib.optional (stdenv.isLinux || stdenv.isFreeBSD) rdma-core
|
||||
++ lib.optionals fabricSupport [ libpsm2 libfabric ];
|
||||
++ lib.optionals (stdenv.isLinux || stdenv.isFreeBSD) [ rdma-core ]
|
||||
# needed for internal pmix
|
||||
++ lib.optionals (!stdenv.isLinux) [ python3 ]
|
||||
++ lib.optionals fabricSupport [
|
||||
libpsm2
|
||||
libfabric
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ perl removeReferencesTo makeWrapper ]
|
||||
nativeBuildInputs =
|
||||
[
|
||||
perl
|
||||
removeReferencesTo
|
||||
makeWrapper
|
||||
]
|
||||
++ lib.optionals cudaSupport [ cudaPackages.cuda_nvcc ]
|
||||
++ lib.optionals fortranSupport [ gfortran ];
|
||||
|
||||
configureFlags = lib.optional (!cudaSupport) "--disable-mca-dso"
|
||||
++ lib.optional (!fortranSupport) "--disable-mpi-fortran"
|
||||
++ lib.optionals stdenv.isLinux [
|
||||
"--with-libnl=${lib.getDev libnl}"
|
||||
"--with-pmix=${lib.getDev pmix}"
|
||||
"--with-pmix-libdir=${pmix}/lib"
|
||||
"--enable-mpi-cxx"
|
||||
] ++ lib.optional enableSGE "--with-sge"
|
||||
++ lib.optional enablePrefix "--enable-mpirun-prefix-by-default"
|
||||
configureFlags = [
|
||||
(lib.enableFeature cudaSupport "mca-dso")
|
||||
(lib.enableFeature fortranSupport "mpi-fortran")
|
||||
(lib.withFeatureAs stdenv.isLinux "libnl" (lib.getDev libnl))
|
||||
"--with-pmix=${if stdenv.isLinux then (lib.getDev pmix) else "internal"}"
|
||||
(lib.withFeatureAs stdenv.isLinux "pmix-libdir" "${lib.getLib pmix}/lib")
|
||||
# Puts a "default OMPI_PRTERUN" value to mpirun / mpiexec executables
|
||||
(lib.withFeatureAs stdenv.isLinux "prrte" (lib.getBin prrte))
|
||||
(lib.withFeature enableSGE "sge")
|
||||
(lib.enableFeature enablePrefix "mpirun-prefix-by-default")
|
||||
# TODO: add UCX support, which is recommended to use with cuda for the most robust OpenMPI build
|
||||
# https://github.com/openucx/ucx
|
||||
# https://www.open-mpi.org/faq/?category=buildcuda
|
||||
++ lib.optionals cudaSupport [ "--with-cuda=${lib.getDev cudaPackages.cuda_cudart}" "--enable-dlopen" ]
|
||||
++ lib.optionals fabricSupport [ "--with-psm2=${lib.getDev libpsm2}" "--with-libfabric=${lib.getDev libfabric}" ]
|
||||
;
|
||||
(lib.withFeatureAs cudaSupport "cuda" (lib.getDev cudaPackages.cuda_cudart))
|
||||
(lib.enableFeature cudaSupport "dlopen")
|
||||
(lib.withFeatureAs fabricSupport "psm2" (lib.getDev libpsm2))
|
||||
(lib.withFeatureAs fabricSupport "ofi" (lib.getDev libfabric))
|
||||
# The flag --without-ofi-libdir is not supported from some reason, so we
|
||||
# don't use lib.withFeatureAs
|
||||
] ++ lib.optionals fabricSupport [ "--with-ofi-libdir=${lib.getLib libfabric}/lib" ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
postInstall = ''
|
||||
find $out/lib/ -name "*.la" -exec rm -f \{} \;
|
||||
postInstall =
|
||||
let
|
||||
# The file names we need to iterate are a combination of ${p}${s}, and there
|
||||
# are 7x3 such options. We use lib.mapCartesianProduct to iterate them all.
|
||||
fileNamesToIterate = {
|
||||
p = [
|
||||
"mpi"
|
||||
"shmem"
|
||||
"osh"
|
||||
];
|
||||
s =
|
||||
[
|
||||
"CC"
|
||||
"c++"
|
||||
"cxx"
|
||||
"cc"
|
||||
]
|
||||
++ lib.optionals fortranSupport [
|
||||
"f77"
|
||||
"f90"
|
||||
"fort"
|
||||
];
|
||||
};
|
||||
wrapperDataSubstitutions =
|
||||
{
|
||||
# The attr key is the filename prefix. The list's 1st value is the
|
||||
# compiler=_ line that should be replaced by a compiler=#2 string, where
|
||||
# #2 is the 2nd value in the list.
|
||||
"cc" = [
|
||||
"gcc"
|
||||
"${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc"
|
||||
];
|
||||
"c++" = [
|
||||
"g++"
|
||||
"${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}c++"
|
||||
];
|
||||
}
|
||||
// lib.optionalAttrs fortranSupport {
|
||||
"fort" = [
|
||||
"gfortran"
|
||||
"${targetPackages.gfortran}/bin/${targetPackages.gfortran.targetPrefix}gfortran"
|
||||
];
|
||||
};
|
||||
# The -wrapper-data.txt files that are not symlinks, need to be iterated as
|
||||
# well, here they start withw ${part1}${part2}, and we use
|
||||
# lib.mapCartesianProduct as well.
|
||||
wrapperDataFileNames = {
|
||||
part1 = [
|
||||
"mpi"
|
||||
"shmem"
|
||||
];
|
||||
part2 = builtins.attrNames wrapperDataSubstitutions;
|
||||
};
|
||||
in
|
||||
''
|
||||
find $out/lib/ -name "*.la" -exec rm -f \{} \;
|
||||
|
||||
for f in mpi shmem osh; do
|
||||
for i in f77 f90 CC c++ cxx cc fort; do
|
||||
moveToOutput "bin/$f$i" "''${!outputDev}"
|
||||
echo "move $fi$i"
|
||||
moveToOutput "share/openmpi/$f$i-wrapper-data.txt" "''${!outputDev}"
|
||||
# The main wrapper that all the rest of the commonly used binaries are
|
||||
# symlinked to
|
||||
moveToOutput "bin/opal_wrapper" "''${!outputDev}"
|
||||
# All of the following files are symlinks to opal_wrapper
|
||||
${lib.pipe fileNamesToIterate [
|
||||
(lib.mapCartesianProduct (
|
||||
{ p, s }:
|
||||
''
|
||||
echo "handling ${p}${s}"
|
||||
moveToOutput "bin/${p}${s}" "''${!outputDev}"
|
||||
moveToOutput "share/openmpi/${p}${s}-wrapper-data.txt" "''${!outputDev}"
|
||||
''
|
||||
))
|
||||
(lib.concatStringsSep "\n")
|
||||
]}
|
||||
# default compilers should be indentical to the
|
||||
# compilers at build time
|
||||
${lib.pipe wrapperDataFileNames [
|
||||
(lib.mapCartesianProduct (
|
||||
{ part1, part2 }:
|
||||
''
|
||||
substituteInPlace "''${!outputDev}/share/openmpi/${part1}${part2}-wrapper-data.txt" \
|
||||
--replace-fail \
|
||||
compiler=${lib.elemAt wrapperDataSubstitutions.${part2} 0} \
|
||||
compiler=${lib.elemAt wrapperDataSubstitutions.${part2} 1}
|
||||
''
|
||||
))
|
||||
(lib.concatStringsSep "\n")
|
||||
]}
|
||||
# A symlink to ${lib.getDev pmix}/bin/pmixcc upstreeam puts here as well
|
||||
# from some reason.
|
||||
moveToOutput "bin/pcc" "''${!outputDev}"
|
||||
|
||||
# Handle informative binaries about the compilation
|
||||
for i in {prte,ompi,oshmem}_info; do
|
||||
moveToOutput "bin/$i" "''${!outputDev}"
|
||||
done
|
||||
done
|
||||
'';
|
||||
|
||||
for i in ortecc orte-info ompi_info oshmem_info opal_wrapper; do
|
||||
moveToOutput "bin/$i" "''${!outputDev}"
|
||||
done
|
||||
postFixup =
|
||||
lib.optionalString (lib.elem "man" finalAttrs.outputs) ''
|
||||
remove-references-to -t "''${!outputMan}" $(readlink -f $out/lib/libopen-pal${stdenv.hostPlatform.extensions.sharedLibrary})
|
||||
''
|
||||
+ lib.optionalString (lib.elem "dev" finalAttrs.outputs) ''
|
||||
remove-references-to -t "''${!outputDev}" $out/bin/mpirun
|
||||
remove-references-to -t "''${!outputDev}" $(readlink -f $out/lib/libopen-pal${stdenv.hostPlatform.extensions.sharedLibrary})
|
||||
|
||||
moveToOutput "share/openmpi/ortecc-wrapper-data.txt" "''${!outputDev}"
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
remove-references-to -t $dev $(readlink -f $out/lib/libopen-pal${stdenv.hostPlatform.extensions.sharedLibrary})
|
||||
remove-references-to -t $man $(readlink -f $out/lib/libopen-pal${stdenv.hostPlatform.extensions.sharedLibrary})
|
||||
|
||||
# The path to the wrapper is hard coded in libopen-pal.so, which we just cleared.
|
||||
wrapProgram $dev/bin/opal_wrapper \
|
||||
--set OPAL_INCLUDEDIR $dev/include \
|
||||
--set OPAL_PKGDATADIR $dev/share/openmpi
|
||||
|
||||
# default compilers should be indentical to the
|
||||
# compilers at build time
|
||||
|
||||
echo "$dev/share/openmpi/mpicc-wrapper-data.txt"
|
||||
sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \
|
||||
$dev/share/openmpi/mpicc-wrapper-data.txt
|
||||
|
||||
echo "$dev/share/openmpi/ortecc-wrapper-data.txt"
|
||||
sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \
|
||||
$dev/share/openmpi/ortecc-wrapper-data.txt
|
||||
|
||||
echo "$dev/share/openmpi/mpic++-wrapper-data.txt"
|
||||
sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}c++:' \
|
||||
$dev/share/openmpi/mpic++-wrapper-data.txt
|
||||
'' + lib.optionalString fortranSupport ''
|
||||
|
||||
echo "$dev/share/openmpi/mpifort-wrapper-data.txt"
|
||||
sed -i 's:compiler=.*:compiler=${gfortran}/bin/${gfortran.targetPrefix}gfortran:' \
|
||||
$dev/share/openmpi/mpifort-wrapper-data.txt
|
||||
|
||||
'';
|
||||
# The path to the wrapper is hard coded in libopen-pal.so, which we just cleared.
|
||||
wrapProgram "''${!outputDev}/bin/opal_wrapper" \
|
||||
--set OPAL_INCLUDEDIR "''${!outputDev}/include" \
|
||||
--set OPAL_PKGDATADIR "''${!outputDev}/share/openmpi"
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
|
||||
passthru = {
|
||||
defaultAvxOptions = {
|
||||
sse3 = true;
|
||||
sse41 = true;
|
||||
avx = true;
|
||||
avx2 = stdenv.hostPlatform.avx2Support;
|
||||
avx512 = stdenv.hostPlatform.avx512Support;
|
||||
};
|
||||
inherit cudaSupport;
|
||||
cudatoolkit = cudaPackages.cudatoolkit; # For backward compatibility only
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://www.open-mpi.org/";
|
||||
description = "Open source MPI-3 implementation";
|
||||
longDescription = "The Open MPI Project is an open source MPI-3 implementation that is developed and maintained by a consortium of academic, research, and industry partners. Open MPI is therefore able to combine the expertise, technologies, and resources from all across the High Performance Computing community in order to build the best MPI library available. Open MPI offers advantages for system and software vendors, application developers and computer science researchers.";
|
||||
maintainers = with maintainers; [ markuskowa ];
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with lib.maintainers; [ markuskowa ];
|
||||
license = lib.licenses.bsd3;
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -71,8 +71,9 @@ stdenv.mkDerivation rec {
|
||||
|
||||
# Pin the compiler to the current version in a cross compiler friendly way.
|
||||
# Same pattern as for openmpi (see https://github.com/NixOS/nixpkgs/pull/58964#discussion_r275059427).
|
||||
sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \
|
||||
$dev/share/pmix/pmixcc-wrapper-data.txt
|
||||
substituteInPlace $dev/share/pmix/pmixcc-wrapper-data.txt \
|
||||
--replace-fail compiler=gcc \
|
||||
compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "algaeff";
|
||||
version = "1.1.0";
|
||||
version = "2.0.0";
|
||||
|
||||
minimalOCamlVersion = "5.0";
|
||||
|
||||
@ -15,7 +15,7 @@ buildDunePackage rec {
|
||||
owner = "RedPRL";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-7kwQmoT8rpQWPHc+BZQi9fcZhgHxS99158ebXAXlpQ8=";
|
||||
hash = "sha256-VRZfULbXKRcExU1bnEu/X1KPX+L+dzcRYZVD985rQT4=";
|
||||
};
|
||||
|
||||
doCheck = true;
|
||||
|
@ -1,29 +1,21 @@
|
||||
{ lib, fetchFromGitHub, buildDunePackage
|
||||
, algaeff
|
||||
, bwd
|
||||
, eio
|
||||
, eio_main
|
||||
, lsp
|
||||
, notty
|
||||
}:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "asai";
|
||||
version = "0.1.1";
|
||||
version = "0.3.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "RedPRL";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-Jd90WhSjK4K2amFA5uyGF57NzsgHA8QiccX6qtxO1rQ=";
|
||||
hash = "sha256-Rp4TvSbRz+5+X4XJ1tKUDDgldpLzHHtaF7G7AG6HgKU=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
algaeff
|
||||
bwd
|
||||
lsp
|
||||
eio
|
||||
eio_main
|
||||
notty
|
||||
];
|
||||
|
||||
meta = {
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ lib, fetchFromGitHub, nix-update-script
|
||||
, buildDunePackage
|
||||
, core
|
||||
, base
|
||||
, ppx_sexp_conv
|
||||
}:
|
||||
|
||||
buildDunePackage rec {
|
||||
@ -14,10 +15,11 @@ buildDunePackage rec {
|
||||
sha256 = "sha256-Z2rOaiNGvVDbRwf5XfoNIcenQdrE3fxHnfzyi6Ki2Ic=";
|
||||
};
|
||||
|
||||
minimalOCamlVersion = "4.08";
|
||||
minimalOCamlVersion = "4.14";
|
||||
|
||||
propagatedBuildInputs = [
|
||||
core
|
||||
base
|
||||
ppx_sexp_conv
|
||||
];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
@ -4,8 +4,8 @@
|
||||
}:
|
||||
|
||||
let params = if lib.versionAtLeast ocaml.version "5.0" then {
|
||||
version = "5.1.0";
|
||||
hash = "sha256-J3qkytgJkk2gT83KJ47nNM4cXqVHbx4iTPK+fLwR7Wk=";
|
||||
version = "5.2.0";
|
||||
hash = "sha256-DJzXjV5Tjf69FKUiRioeHghks72pOOHYd73vqhmecS8=";
|
||||
propagatedBuildInputs = [ algaeff bwd ];
|
||||
} else {
|
||||
version = "2.0.0";
|
||||
|
@ -4,7 +4,7 @@
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
hypothesis,
|
||||
poetry-core,
|
||||
hatchling,
|
||||
pytest-asyncio,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
@ -13,8 +13,8 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiosmtplib";
|
||||
version = "3.0.1";
|
||||
format = "pyproject";
|
||||
version = "3.0.2";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
@ -22,10 +22,10 @@ buildPythonPackage rec {
|
||||
owner = "cole";
|
||||
repo = "aiosmtplib";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-67Z+k+PBIGP2oGb/52dMtsapUsHufvFcX+wWiMj5Jsg=";
|
||||
hash = "sha256-1GuxlgNvzVv6hEQY1Mkv7NxAoOik9gpIS90a6flfC+k=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ poetry-core ];
|
||||
build-system = [ hatchling ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
aiosmtpd
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "dvc-data";
|
||||
version = "3.15.1";
|
||||
version = "3.15.2";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -24,7 +24,7 @@ buildPythonPackage rec {
|
||||
owner = "iterative";
|
||||
repo = "dvc-data";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-pr5RtVlGKKtpcmmCNGqcLiBFzJcajpqtPjBbzeCCHF8=";
|
||||
hash = "sha256-8720nqWmi/1Be2ckuCvctfJbOSFCME27OOtA3qZMr7E=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools-scm ];
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "dvclive";
|
||||
version = "3.47.0";
|
||||
version = "3.48.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -42,7 +42,7 @@ buildPythonPackage rec {
|
||||
owner = "iterative";
|
||||
repo = "dvclive";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-oC45cSqiKeorbyPe3GIsJ824U3OS1cKvWxUM901/QwQ=";
|
||||
hash = "sha256-WIVRpJD7B6OI7ZfdHT+DunRRiaxHhri5Ge/B1BQ1kJY=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools-scm ];
|
||||
|
@ -13,14 +13,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "hcloud";
|
||||
version = "2.1.0";
|
||||
version = "2.2.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-cDyy2x1JINthvhuzQdwgMcykGrypnTkk4rJBk1WQ1HQ=";
|
||||
hash = "sha256-NlEpnSmNY8rcfCJVgKqufCmEMSp4UBr5Po2rh1V8OrA=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "holidays";
|
||||
version = "0.53";
|
||||
version = "0.54";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -23,7 +23,7 @@ buildPythonPackage rec {
|
||||
owner = "vacanza";
|
||||
repo = "python-holidays";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-qL6ZjnVecAs8vHbbb2IRQPSDpFFPmFuu16UEBsY8vKw=";
|
||||
hash = "sha256-/mpbNuCnADuguI1v8cpYUdhBN8DjhjklCDVmMOsRvkM=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
@ -1,14 +1,15 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, setuptools-generate
|
||||
, setuptools-scm
|
||||
, colorama
|
||||
, jinja2
|
||||
, jsonschema
|
||||
, pygls
|
||||
, tree-sitter0_21
|
||||
, pytestCheckHook
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools-generate,
|
||||
setuptools-scm,
|
||||
colorama,
|
||||
jinja2,
|
||||
jsonschema,
|
||||
pygls,
|
||||
tree-sitter,
|
||||
pytestCheckHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@ -33,16 +34,9 @@ buildPythonPackage rec {
|
||||
jinja2
|
||||
jsonschema
|
||||
pygls
|
||||
# The build won't fail if we had used tree-sitter (version > 0.21), but
|
||||
# this package is only a dependency of autotools-language-server which also
|
||||
# depends on tree-sitter-languages which must use tree-sitter0_21 and not
|
||||
# tree-sitter. Hence we avoid different tree-sitter versions dependency
|
||||
# mismatch by defaulting here to this lower version.
|
||||
tree-sitter0_21
|
||||
];
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
tree-sitter
|
||||
];
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
pythonImportsCheck = [ "lsp_tree_sitter" ];
|
||||
|
||||
|
@ -4,10 +4,16 @@
|
||||
buildPythonPackage,
|
||||
dotmap,
|
||||
fetchFromGitHub,
|
||||
hypothesis,
|
||||
packaging,
|
||||
parse,
|
||||
pexpect,
|
||||
platformdirs,
|
||||
ppk2-api,
|
||||
print-color,
|
||||
protobuf,
|
||||
pygatt,
|
||||
pyarrow,
|
||||
pyparsing,
|
||||
pypubsub,
|
||||
pyqrcode,
|
||||
pyserial,
|
||||
@ -19,6 +25,7 @@
|
||||
setuptools,
|
||||
tabulate,
|
||||
timeago,
|
||||
webencodings,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@ -35,15 +42,22 @@ buildPythonPackage rec {
|
||||
hash = "sha256-s56apVx7+EXkdw3FUjyGKGFjP+IVbO0/VDB4urXEtXQ=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [ "protobuf" ];
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
bleak
|
||||
dotmap
|
||||
packaging
|
||||
parse
|
||||
pexpect
|
||||
platformdirs
|
||||
ppk2-api
|
||||
print-color
|
||||
protobuf
|
||||
pygatt
|
||||
pyarrow
|
||||
pyparsing
|
||||
pypubsub
|
||||
pyqrcode
|
||||
pyserial
|
||||
@ -52,6 +66,7 @@ buildPythonPackage rec {
|
||||
setuptools
|
||||
tabulate
|
||||
timeago
|
||||
webencodings
|
||||
];
|
||||
|
||||
passthru.optional-dependencies = {
|
||||
@ -59,9 +74,9 @@ buildPythonPackage rec {
|
||||
};
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytap2
|
||||
hypothesis
|
||||
pytestCheckHook
|
||||
];
|
||||
] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
|
||||
|
||||
preCheck = ''
|
||||
export PATH="$PATH:$out/bin";
|
||||
@ -79,6 +94,7 @@ buildPythonPackage rec {
|
||||
"test_main_support"
|
||||
"test_MeshInterface"
|
||||
"test_message_to_json_shows_all"
|
||||
"test_node"
|
||||
"test_SerialInterface_single_port"
|
||||
"test_support_info"
|
||||
"test_TCPInterface"
|
||||
|
@ -1,37 +1,34 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
pythonOlder,
|
||||
pyserial,
|
||||
pytestCheckHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "modbus-tk";
|
||||
version = "1.1.1";
|
||||
version = "1.1.3";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ljean";
|
||||
repo = "modbus-tk";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-zikfVMFdlOJvuKVQGEsK03i58X6BGFsGWGrGOJZGC0g=";
|
||||
src = fetchPypi {
|
||||
pname = "modbus_tk";
|
||||
inherit version;
|
||||
hash = "sha256-aQ+nu4bql4mSRl0tYci1rMY5zg6LgzoKqW1N0XLFZEo=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [ pyserial ];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
# Source no tagged anymore and PyPI doesn't ship tests
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "modbus_tk" ];
|
||||
|
||||
pytestFlagsArray = [ "tests/unittest_*.py" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Module for simple Modbus interactions";
|
||||
homepage = "https://github.com/ljean/modbus-tk";
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "proxy-py";
|
||||
version = "2.4.4";
|
||||
version = "2.4.5";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -31,7 +31,7 @@ buildPythonPackage rec {
|
||||
owner = "abhinavsingh";
|
||||
repo = "proxy.py";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-QWwIbNt2MtRfQaX7uZJzYmS++2MH+gTjWO0aEKYSETI=";
|
||||
hash = "sha256-pn4YYGntG9C8mhECb7PYgN5wwicdlPcZu6Xn2M3iIKA=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -13,14 +13,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyfaidx";
|
||||
version = "0.8.1.1";
|
||||
version = "0.8.1.2";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-bwSCNSYZ8sxWADyiIyG9sNB2S2VnlbweQGKx+psIaGs=";
|
||||
hash = "sha256-2EUkcEVbHnePk5aUR9uOok3rRiTHxAdpUWRZy2+HvDM=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
@ -3,7 +3,6 @@
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
mock,
|
||||
nose,
|
||||
pexpect,
|
||||
pyserial,
|
||||
pytestCheckHook,
|
||||
@ -13,40 +12,33 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pygatt";
|
||||
version = "4.0.5";
|
||||
version = "5.0.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.5";
|
||||
disabled = pythonOlder "3.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "peplin";
|
||||
repo = "pygatt";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-DUZGsztZViVNZwmhXoRN5FOQ7BgUeI0SsYgCHlvsrv0=";
|
||||
hash = "sha256-TMIqC+JvNOLU38a9jkacRAbdmAAd4UekFUDRoAWhHFo=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# Not support for Python < 3.4
|
||||
substituteInPlace setup.py \
|
||||
--replace-fail "'enum-compat'" "" \
|
||||
--replace-fail "'coverage >= 3.7.1'," "" \
|
||||
--replace-fail "'nose >= 1.3.7'" ""
|
||||
substituteInPlace tests/bgapi/test_bgapi.py \
|
||||
--replace-fail "assertEquals" "assertEqual"
|
||||
--replace-fail "setup_requires" "test_requires"
|
||||
'';
|
||||
|
||||
pythonRemoveDeps = [ "enum-compat" ];
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [ pyserial ];
|
||||
|
||||
optional-dependencies.GATTTOOL = [ pexpect ];
|
||||
|
||||
# tests require nose
|
||||
doCheck = pythonOlder "3.12";
|
||||
|
||||
nativeCheckInputs = [
|
||||
mock
|
||||
nose
|
||||
pytestCheckHook
|
||||
] ++ optional-dependencies.GATTTOOL;
|
||||
|
||||
|
@ -1,28 +1,20 @@
|
||||
{
|
||||
lib,
|
||||
setuptools,
|
||||
stdenv,
|
||||
pythonPackages,
|
||||
fetchPypi,
|
||||
pkg-config,
|
||||
qmake,
|
||||
qtbase,
|
||||
qtsvg,
|
||||
qtwebengine,
|
||||
qtwebchannel,
|
||||
qtdeclarative,
|
||||
wrapQtAppsHook,
|
||||
libsForQt5,
|
||||
darwin,
|
||||
buildPythonPackage,
|
||||
python,
|
||||
isPy27,
|
||||
pyqt5,
|
||||
sip,
|
||||
pyqt-builder,
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (pythonPackages)
|
||||
buildPythonPackage
|
||||
python
|
||||
isPy27
|
||||
pyqt5
|
||||
sip
|
||||
pyqt-builder
|
||||
;
|
||||
inherit (darwin) autoSignDarwinBinariesHook;
|
||||
in
|
||||
buildPythonPackage (
|
||||
@ -52,32 +44,33 @@ buildPythonPackage (
|
||||
nativeBuildInputs =
|
||||
[
|
||||
pkg-config
|
||||
qmake
|
||||
libsForQt5.qmake
|
||||
libsForQt5.wrapQtAppsHook
|
||||
]
|
||||
++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ sip ]
|
||||
++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||
python.pythonOnBuildForHost.pkgs.sip
|
||||
]
|
||||
++ [
|
||||
qtbase
|
||||
qtsvg
|
||||
qtwebengine
|
||||
libsForQt5.qtbase
|
||||
libsForQt5.qtsvg
|
||||
libsForQt5.qtwebengine
|
||||
pyqt-builder
|
||||
pythonPackages.setuptools
|
||||
setuptools
|
||||
]
|
||||
++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ qtdeclarative ]
|
||||
++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ libsForQt5.qtdeclarative ]
|
||||
++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook ];
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
sip
|
||||
qtbase
|
||||
qtsvg
|
||||
qtwebengine
|
||||
libsForQt5.qtbase
|
||||
libsForQt5.qtsvg
|
||||
libsForQt5.qtwebengine
|
||||
]
|
||||
++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||
qtwebchannel
|
||||
qtdeclarative
|
||||
libsForQt5.qtwebchannel
|
||||
libsForQt5.qtdeclarative
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ pyqt5 ];
|
||||
@ -98,21 +91,21 @@ buildPythonPackage (
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru = {
|
||||
inherit wrapQtAppsHook;
|
||||
inherit (libsForQt5) wrapQtAppsHook;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Python bindings for Qt5";
|
||||
homepage = "http://www.riverbankcomputing.co.uk";
|
||||
license = licenses.gpl3;
|
||||
hydraPlatforms = lib.lists.intersectLists qtwebengine.meta.platforms platforms.mesaPlatforms;
|
||||
license = lib.licenses.gpl3;
|
||||
hydraPlatforms = lib.lists.intersectLists libsForQt5.qtwebengine.meta.platforms lib.platforms.mesaPlatforms;
|
||||
};
|
||||
}
|
||||
// lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) {
|
||||
# TODO: figure out why the env hooks aren't adding these inclusions automatically
|
||||
env.NIX_CFLAGS_COMPILE = lib.concatStringsSep " " [
|
||||
"-I${lib.getDev qtbase}/include/QtPrintSupport/"
|
||||
"-I${lib.getDev qtwebchannel}/include/QtWebChannel/"
|
||||
"-I${lib.getDev libsForQt5.qtbase}/include/QtPrintSupport/"
|
||||
"-I${lib.getDev libsForQt5.qtwebchannel}/include/QtWebChannel/"
|
||||
];
|
||||
}
|
||||
)
|
||||
|
101
pkgs/development/python-modules/python-escpos/default.nix
Normal file
101
pkgs/development/python-modules/python-escpos/default.nix
Normal file
@ -0,0 +1,101 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
|
||||
setuptools,
|
||||
setuptools-scm,
|
||||
|
||||
pillow,
|
||||
qrcode,
|
||||
python-barcode,
|
||||
six,
|
||||
appdirs,
|
||||
pyyaml,
|
||||
argcomplete,
|
||||
importlib-resources,
|
||||
|
||||
pyusb,
|
||||
pyserial,
|
||||
pycups,
|
||||
|
||||
jaconv,
|
||||
pytestCheckHook,
|
||||
pytest-mock,
|
||||
scripttest,
|
||||
mock,
|
||||
hypothesis,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "python-escpos";
|
||||
version = "3.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "python-escpos";
|
||||
repo = "python-escpos";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-f7qA1+8PwnXS526jjULEoyn0ejnvsneuWDt863p4J2g=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
setuptools-scm
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
pillow
|
||||
qrcode
|
||||
python-barcode
|
||||
six
|
||||
appdirs
|
||||
pyyaml
|
||||
argcomplete
|
||||
importlib-resources
|
||||
];
|
||||
|
||||
optional-dependencies = {
|
||||
usb = [ pyusb ];
|
||||
serial = [ pyserial ];
|
||||
cups = [ pycups ];
|
||||
all = [
|
||||
pyusb
|
||||
pyserial
|
||||
pycups
|
||||
];
|
||||
};
|
||||
|
||||
preCheck = ''
|
||||
# force the tests to use the module in $out
|
||||
rm -r src
|
||||
|
||||
# disable checking coverage
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace-fail "--cov escpos --cov-report=xml" ""
|
||||
|
||||
# allow tests to find the cli executable
|
||||
export PATH="$out/bin:$PATH"
|
||||
'';
|
||||
|
||||
nativeCheckInputs = [
|
||||
jaconv
|
||||
pytestCheckHook
|
||||
pytest-mock
|
||||
scripttest
|
||||
mock
|
||||
hypothesis
|
||||
] ++ optional-dependencies.all;
|
||||
|
||||
pythonImportsCheck = [ "escpos" ];
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/python-escpos/python-escpos/blob/${src.rev}/CHANGELOG.rst";
|
||||
description = "Python library to manipulate ESC/POS printers";
|
||||
homepage = "https://python-escpos.readthedocs.io/";
|
||||
license = lib.licenses.mit;
|
||||
mainProgram = "python-escpos";
|
||||
maintainers = with lib.maintainers; [ tomasajt ];
|
||||
};
|
||||
}
|
@ -16,7 +16,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "python-gitlab";
|
||||
version = "4.8.0";
|
||||
version = "4.9.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -24,7 +24,7 @@ buildPythonPackage rec {
|
||||
src = fetchPypi {
|
||||
pname = "python_gitlab";
|
||||
inherit version;
|
||||
hash = "sha256-wsTXsc1QPZBa/l38Dz9mGZNDYfdq6FXGzsmmZoZNN88=";
|
||||
hash = "sha256-30TbtunJQefr+5JE5+1KpNuQ9cFkmMstE1uObn8Imho=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
|
45
pkgs/development/python-modules/pywebcopy/default.nix
Normal file
45
pkgs/development/python-modules/pywebcopy/default.nix
Normal file
@ -0,0 +1,45 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildPythonPackage,
|
||||
pytestCheckHook,
|
||||
setuptools,
|
||||
cachecontrol,
|
||||
lxml-html-clean,
|
||||
requests,
|
||||
six,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pywebcopy";
|
||||
version = "7.0.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rajatomar788";
|
||||
repo = "pywebcopy";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-XTPk3doF9dqImsLtTB03YKMWLzQrJpJtjNXe+691rZo=";
|
||||
};
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
pythonImportsCheck = [ "pywebcopy" ];
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
cachecontrol
|
||||
lxml-html-clean
|
||||
requests
|
||||
six
|
||||
];
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/rajatomar788/pywebcopy/blob/master/docs/changelog.md";
|
||||
description = "Python package for cloning complete webpages and websites to local storage";
|
||||
homepage = "https://github.com/rajatomar788/pywebcopy/";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ d3vil0p3r ];
|
||||
};
|
||||
}
|
@ -2,11 +2,13 @@
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildPythonPackage,
|
||||
python3Packages,
|
||||
pythonOlder,
|
||||
pyqt5,
|
||||
poppler-qt5,
|
||||
pycups,
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonPackage rec {
|
||||
buildPythonPackage rec {
|
||||
pname = "qpageview";
|
||||
version = "0.6.2";
|
||||
format = "setuptools";
|
||||
@ -20,7 +22,7 @@ python3Packages.buildPythonPackage rec {
|
||||
hash = "sha256-XFMTOD7ums8sbFHUViEI9q6/rCjUmEtXAdd3/OmLsHU=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
propagatedBuildInputs = [
|
||||
pyqt5
|
||||
poppler-qt5
|
||||
pycups
|
||||
|
50
pkgs/development/python-modules/riden/default.nix
Normal file
50
pkgs/development/python-modules/riden/default.nix
Normal file
@ -0,0 +1,50 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
click,
|
||||
fetchFromGitHub,
|
||||
modbus-tk,
|
||||
poetry-core,
|
||||
pyserial,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "riden";
|
||||
version = "1.2.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "geeksville";
|
||||
repo = "riden";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-uR1CsVsGn/QC4krHaxl6GqRnTPbFdRaqyMEl2RVMHPU=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
poetry-core
|
||||
setuptools
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
click
|
||||
modbus-tk
|
||||
pyserial
|
||||
];
|
||||
|
||||
# Module has no tests
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "riden" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Module for Riden RD power supplies";
|
||||
homepage = "https://github.com/geeksville/riden";
|
||||
changelog = "https://github.com/geeksville/Riden/releases/tag/${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
@ -18,7 +18,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "textual";
|
||||
version = "0.75.0";
|
||||
version = "0.72.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -39,7 +39,10 @@ buildPythonPackage rec {
|
||||
] ++ markdown-it-py.optional-dependencies.plugins ++ markdown-it-py.optional-dependencies.linkify;
|
||||
|
||||
optional-dependencies = {
|
||||
syntax = [ tree-sitter ] ++ lib.optionals (pythonOlder "3.12") [ tree-sitter-languages ];
|
||||
syntax = [
|
||||
tree-sitter
|
||||
tree-sitter-languages
|
||||
];
|
||||
};
|
||||
|
||||
nativeCheckInputs = [
|
||||
@ -48,7 +51,8 @@ buildPythonPackage rec {
|
||||
pytestCheckHook
|
||||
syrupy
|
||||
time-machine
|
||||
] ++ lib.flatten (builtins.attrValues optional-dependencies);
|
||||
tree-sitter
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
# Snapshot tests require syrupy<4
|
||||
|
@ -59,7 +59,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "transformers";
|
||||
version = "4.43.4";
|
||||
version = "4.44.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -68,7 +68,7 @@ buildPythonPackage rec {
|
||||
owner = "huggingface";
|
||||
repo = "transformers";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-NgCYBBFQpXF5QZEmvPBjiJfcoDvCg+aWx9+ljAcqv6Q=";
|
||||
hash = "sha256-i3KKfkYvKRYrs/kiwBJdyFzMiXKwyBEeUuZcHszip3k=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, setuptools
|
||||
, wheel
|
||||
, cython
|
||||
, tree-sitter0_21
|
||||
, pytestCheckHook
|
||||
, python
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
cython,
|
||||
tree-sitter,
|
||||
pytestCheckHook,
|
||||
python,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@ -34,20 +34,14 @@ buildPythonPackage rec {
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
cython
|
||||
];
|
||||
dependencies = [
|
||||
# https://github.com/grantjenks/py-tree-sitter-languages/issues/67
|
||||
tree-sitter0_21
|
||||
];
|
||||
dependencies = [ tree-sitter ];
|
||||
# Generate languages.so file (build won't fail without this, but tests will).
|
||||
preBuild = ''
|
||||
${python.pythonOnBuildForHost.interpreter} build.py
|
||||
'';
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
# Without cd $out, tests fail to import the compiled cython extensions.
|
||||
# Without copying the ./tests/ directory to $out, pytest won't detect the
|
||||
# tests and run them. See also:
|
||||
@ -64,5 +58,7 @@ buildPythonPackage rec {
|
||||
homepage = "https://github.com/grantjenks/py-tree-sitter-languages";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ doronbehar ];
|
||||
# https://github.com/grantjenks/py-tree-sitter-languages/issues/67
|
||||
broken = versionAtLeast tree-sitter.version "0.22";
|
||||
};
|
||||
}
|
||||
|
@ -10,7 +10,7 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "tree-sitter0_21";
|
||||
pname = "tree-sitter";
|
||||
version = "0.21.3";
|
||||
pyproject = true;
|
||||
|
@ -18,14 +18,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ufo2ft";
|
||||
version = "3.2.5";
|
||||
version = "3.2.7";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-PUPk92wugtIZWXP8vq8bJNxqTDhDENKdNhW1kNEcL3E=";
|
||||
hash = "sha256-fA5It0mr6sjAQECGPOsS//lZJ9OqKelfhdzV770sMHQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -57,7 +57,7 @@
|
||||
grpcio,
|
||||
}:
|
||||
let
|
||||
version = "0.15.0";
|
||||
version = "0.15.1";
|
||||
optional-dependencies = {
|
||||
huggingflace = [
|
||||
langdetect
|
||||
@ -100,7 +100,7 @@ buildPythonPackage {
|
||||
owner = "Unstructured-IO";
|
||||
repo = "unstructured";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-O44zmD+giqnfrEoKjU/+AkDykZdn2jLjpm+X65Em2KY=";
|
||||
hash = "sha256-zDlkqeP89O3u5Yir9Xi+Z6BpLd6r0QXJ563kc2krjAs=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "zha-quirks";
|
||||
version = "0.0.117";
|
||||
version = "0.0.118";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.12";
|
||||
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
||||
owner = "zigpy";
|
||||
repo = "zha-device-handlers";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-uk1G8X5TLuA4spTrd+077wggCooqvqJZh3NIwC4/BFM=";
|
||||
hash = "sha256-LudwIENP1KCX7+HwyklCUdAu5mRLDcnMEZBzbRH2FM0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "zha";
|
||||
version = "0.0.23";
|
||||
version = "0.0.27";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.12";
|
||||
@ -35,7 +35,7 @@ buildPythonPackage rec {
|
||||
owner = "zigpy";
|
||||
repo = "zha";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-a0rr8pJCoVtDR3iNCDpLZnapetzNHMj8uCu667lNcGE=";
|
||||
hash = "sha256-urECZtYmwKWboF84SVTiUJthYW0hRBKL9kwRpWvcSoc=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "zigpy-zigate";
|
||||
version = "0.13.0";
|
||||
version = "0.13.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -25,7 +25,7 @@ buildPythonPackage rec {
|
||||
owner = "zigpy";
|
||||
repo = "zigpy-zigate";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-fLNUTrPR1bc6H2mpdHj6O4pbrfLTb3filBE4mSDhZn0=";
|
||||
hash = "sha256-Mwccb0OQgSknH8prbFejkGRVI7ii/r9D87aRyQrGgWs=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -19,7 +19,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "zigpy-znp";
|
||||
version = "0.12.3";
|
||||
version = "0.12.4";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -28,7 +28,7 @@ buildPythonPackage rec {
|
||||
owner = "zigpy";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-qrIYcGumOHu3/gG9MOyKngAhOkeZEmCgXIDDcghoYn0=";
|
||||
hash = "sha256-5DuqM7MgntV/3WquR+0Cr/vIwYL35ZVpGlNZPj92jJ4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
|
@ -11,6 +11,7 @@
|
||||
cryptography,
|
||||
fetchFromGitHub,
|
||||
freezegun,
|
||||
frozendict,
|
||||
importlib-resources,
|
||||
jsonschema,
|
||||
pycryptodome,
|
||||
@ -26,7 +27,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "zigpy";
|
||||
version = "0.65.0";
|
||||
version = "0.65.2";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -35,7 +36,7 @@ buildPythonPackage rec {
|
||||
owner = "zigpy";
|
||||
repo = "zigpy";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-CyVmMDZ+8B3SYRR6JKFeI/dyQbJk70/slm3hRV1f3ig=";
|
||||
hash = "sha256-rNqo4NtIdg9MoOKde26/RUcfX/VYiVkNj97v/RJcB4E=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@ -53,6 +54,7 @@ buildPythonPackage rec {
|
||||
aiosqlite
|
||||
crccheck
|
||||
cryptography
|
||||
frozendict
|
||||
jsonschema
|
||||
pyserial-asyncio
|
||||
typing-extensions
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "eslint_d";
|
||||
version = "13.1.2";
|
||||
version = "14.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mantoni";
|
||||
repo = "eslint_d.js";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-2G6I6Tx6LqgZ5EpVw4ux/JXv+Iky6Coenbh51JoFg7Q=";
|
||||
hash = "sha256-r0pb9qbWfyVUHuHrNhiYm+0zlF5WId3dH7QCubzZDts=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-L6abWbSnxY6gGMXBjxobEg8cpl0p3lMST9T42QGk4yM=";
|
||||
npmDepsHash = "sha256-0Db18y7MUnnnr8v+bBOUhGBCsZcZ9OGtGqSVH7/wYQc=";
|
||||
|
||||
dontNpmBuild = true;
|
||||
|
||||
|
@ -1,5 +1,9 @@
|
||||
{
|
||||
lib,
|
||||
mkKdeDerivation,
|
||||
substituteAll,
|
||||
procps,
|
||||
xsettingsd,
|
||||
pkg-config,
|
||||
wrapGAppsHook3,
|
||||
sass,
|
||||
@ -11,7 +15,17 @@ mkKdeDerivation {
|
||||
|
||||
# The gtkconfig KDED module will crash the daemon if the GSettings schemas
|
||||
# aren't found.
|
||||
patches = [./0001-gsettings-schemas-path.patch];
|
||||
patches = [
|
||||
./0001-gsettings-schemas-path.patch
|
||||
(
|
||||
substituteAll {
|
||||
src = ./dependency-paths.patch;
|
||||
pgrep = lib.getExe' procps "pgrep";
|
||||
xsettingsd = lib.getExe xsettingsd;
|
||||
}
|
||||
)
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
NIX_CFLAGS_COMPILE+=" -DGSETTINGS_SCHEMAS_PATH=\"$GSETTINGS_SCHEMAS_PATH\""
|
||||
'';
|
||||
@ -21,4 +35,10 @@ mkKdeDerivation {
|
||||
dontWrapGApps = true; # There is nothing to wrap
|
||||
|
||||
extraCmakeFlags = ["-DGLIB_SCHEMAS_DIR=${gsettings-desktop-schemas.out}/"];
|
||||
|
||||
# Hardcoded as QStrings, which are UTF-16 so Nix can't pick these up automatically
|
||||
postFixup = ''
|
||||
mkdir -p $out/nix-support
|
||||
echo "${procps} ${xsettingsd}" > $out/nix-support/depends
|
||||
'';
|
||||
}
|
||||
|
22
pkgs/kde/plasma/kde-gtk-config/dependency-paths.patch
Normal file
22
pkgs/kde/plasma/kde-gtk-config/dependency-paths.patch
Normal file
@ -0,0 +1,22 @@
|
||||
diff --git a/kded/config_editor/xsettings.cpp b/kded/config_editor/xsettings.cpp
|
||||
index 1f9fe5b..9824973 100644
|
||||
--- a/kded/config_editor/xsettings.cpp
|
||||
+++ b/kded/config_editor/xsettings.cpp
|
||||
@@ -46,7 +46,7 @@ void replaceValueInXSettingsdContents(QString &xSettingsdContents, const QString
|
||||
pid_t pidOfXSettingsd()
|
||||
{
|
||||
QProcess pgrep;
|
||||
- pgrep.start(QStringLiteral("pgrep"),
|
||||
+ pgrep.start(QStringLiteral("@pgrep@"),
|
||||
QStringList{
|
||||
QStringLiteral("-u"),
|
||||
QString::number(getuid()),
|
||||
@@ -67,7 +67,7 @@ reloadXSettingsd(void *)
|
||||
{
|
||||
pid_t xSettingsdPid = pidOfXSettingsd();
|
||||
if (xSettingsdPid == 0) {
|
||||
- QProcess::startDetached(QStandardPaths::findExecutable(QStringLiteral("xsettingsd")), QStringList());
|
||||
+ QProcess::startDetached(QStringLiteral("@xsettingsd@"), QStringList());
|
||||
} else {
|
||||
kill(xSettingsdPid, SIGHUP);
|
||||
}
|
@ -2,7 +2,9 @@
|
||||
lib,
|
||||
mkKdeDerivation,
|
||||
substituteAll,
|
||||
fontconfig,
|
||||
xorg,
|
||||
lsof,
|
||||
pkg-config,
|
||||
spirv-tools,
|
||||
qtsvg,
|
||||
@ -19,10 +21,13 @@ mkKdeDerivation {
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./tool-paths.patch;
|
||||
xmessage = "${lib.getBin xorg.xmessage}/bin/xmessage";
|
||||
xsetroot = "${lib.getBin xorg.xsetroot}/bin/xsetroot";
|
||||
qdbus = "${lib.getBin qttools}/bin/qdbus";
|
||||
src = ./dependency-paths.patch;
|
||||
fc-match = lib.getExe' fontconfig "fc-match";
|
||||
lsof = lib.getExe lsof;
|
||||
qdbus = lib.getExe' qttools "qdbus";
|
||||
xmessage = lib.getExe xorg.xmessage;
|
||||
xrdb = lib.getExe xorg.xrdb;
|
||||
xsetroot = lib.getExe xorg.xsetroot;
|
||||
})
|
||||
];
|
||||
|
||||
@ -50,5 +55,11 @@ mkKdeDerivation {
|
||||
gpsd
|
||||
];
|
||||
|
||||
# Hardcoded as QStrings, which are UTF-16 so Nix can't pick these up automatically
|
||||
postFixup = ''
|
||||
mkdir -p $out/nix-support
|
||||
echo "${lsof} ${xorg.xmessage} ${xorg.xsetroot}" > $out/nix-support/depends
|
||||
'';
|
||||
|
||||
passthru.providedSessions = ["plasma" "plasmax11"];
|
||||
}
|
||||
|
149
pkgs/kde/plasma/plasma-workspace/dependency-paths.patch
Normal file
149
pkgs/kde/plasma/plasma-workspace/dependency-paths.patch
Normal file
@ -0,0 +1,149 @@
|
||||
diff --git a/applets/devicenotifier/plugin/ksolidnotify.cpp b/applets/devicenotifier/plugin/ksolidnotify.cpp
|
||||
index bcbb58a034..be2570ce97 100644
|
||||
--- a/applets/devicenotifier/plugin/ksolidnotify.cpp
|
||||
+++ b/applets/devicenotifier/plugin/ksolidnotify.cpp
|
||||
@@ -169,7 +169,7 @@ void KSolidNotify::queryBlockingApps(const QString &devicePath)
|
||||
Q_EMIT blockingAppsReady(blockApps);
|
||||
p->deleteLater();
|
||||
});
|
||||
- p->start(QStringLiteral("lsof"), {QStringLiteral("-t"), devicePath});
|
||||
+ p->start(QStringLiteral("@lsof@"), {QStringLiteral("-t"), devicePath});
|
||||
// p.start(QStringLiteral("fuser"), {QStringLiteral("-m"), devicePath});
|
||||
}
|
||||
|
||||
diff --git a/kcms/fonts/fontinit.cpp b/kcms/fonts/fontinit.cpp
|
||||
index e27e21a7bd..abbf7f32e1 100644
|
||||
--- a/kcms/fonts/fontinit.cpp
|
||||
+++ b/kcms/fonts/fontinit.cpp
|
||||
@@ -27,7 +27,7 @@ Q_DECL_EXPORT void kcminit()
|
||||
|
||||
const QByteArray input = "Xft.dpi: " + QByteArray::number(dpi);
|
||||
QProcess p;
|
||||
- p.start(QStringLiteral("xrdb"), {QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp")});
|
||||
+ p.start(QStringLiteral("@xrdb@"), {QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp")});
|
||||
p.setProcessChannelMode(QProcess::ForwardedChannels);
|
||||
p.write(input);
|
||||
p.closeWriteChannel();
|
||||
diff --git a/kcms/fonts/fonts.cpp b/kcms/fonts/fonts.cpp
|
||||
index 92d8fadd44..2a973d76ef 100644
|
||||
--- a/kcms/fonts/fonts.cpp
|
||||
+++ b/kcms/fonts/fonts.cpp
|
||||
@@ -135,7 +135,7 @@ void KFonts::save()
|
||||
if (fontsAASettings()->forceFontDPI() == 0 && forceFontDPIChanged && KWindowSystem::isPlatformX11()) {
|
||||
QProcess proc;
|
||||
proc.setProcessChannelMode(QProcess::ForwardedChannels);
|
||||
- proc.start("xrdb",
|
||||
+ proc.start("@xrdb@",
|
||||
QStringList() << "-quiet"
|
||||
<< "-remove"
|
||||
<< "-nocpp");
|
||||
diff --git a/kcms/kfontinst/kcmfontinst/FcQuery.cpp b/kcms/kfontinst/kcmfontinst/FcQuery.cpp
|
||||
index 771c790c74..1be64b0527 100644
|
||||
--- a/kcms/kfontinst/kcmfontinst/FcQuery.cpp
|
||||
+++ b/kcms/kfontinst/kcmfontinst/FcQuery.cpp
|
||||
@@ -44,7 +44,7 @@ void CFcQuery::run(const QString &query)
|
||||
connect(m_proc, SIGNAL(finished(int, QProcess::ExitStatus)), SLOT(procExited()));
|
||||
connect(m_proc, &QProcess::readyReadStandardOutput, this, &CFcQuery::data);
|
||||
|
||||
- m_proc->start("fc-match", args);
|
||||
+ m_proc->start("@fc-match@", args);
|
||||
}
|
||||
|
||||
void CFcQuery::procExited()
|
||||
diff --git a/kcms/krdb/krdb.cpp b/kcms/krdb/krdb.cpp
|
||||
index 8fdd99f9ed..1bd7d552a5 100644
|
||||
--- a/kcms/krdb/krdb.cpp
|
||||
+++ b/kcms/krdb/krdb.cpp
|
||||
@@ -423,7 +423,7 @@ void runRdb(unsigned int flags)
|
||||
contents += "Xft.dpi: " + QString::number(dpi) + '\n';
|
||||
else {
|
||||
KProcess queryProc;
|
||||
- queryProc << QStringLiteral("xrdb") << QStringLiteral("-query");
|
||||
+ queryProc << QStringLiteral("@xrdb@") << QStringLiteral("-query");
|
||||
queryProc.setOutputChannelMode(KProcess::OnlyStdoutChannel);
|
||||
queryProc.start();
|
||||
if (queryProc.waitForFinished()) {
|
||||
@@ -443,7 +443,7 @@ void runRdb(unsigned int flags)
|
||||
}
|
||||
|
||||
KProcess loadProc;
|
||||
- loadProc << QStringLiteral("xrdb") << QStringLiteral("-quiet") << QStringLiteral("-load") << QStringLiteral("-nocpp");
|
||||
+ loadProc << QStringLiteral("@xrdb@") << QStringLiteral("-quiet") << QStringLiteral("-load") << QStringLiteral("-nocpp");
|
||||
loadProc.start();
|
||||
if (loadProc.waitForStarted()) {
|
||||
loadProc.write(db);
|
||||
@@ -461,16 +461,16 @@ void runRdb(unsigned int flags)
|
||||
|
||||
KProcess proc;
|
||||
#ifndef NDEBUG
|
||||
- proc << QStringLiteral("xrdb") << QStringLiteral("-merge") << tmpFile.fileName();
|
||||
+ proc << QStringLiteral("@xrdb@") << QStringLiteral("-merge") << tmpFile.fileName();
|
||||
#else
|
||||
- proc << "xrdb"
|
||||
+ proc << "@xrdb@"
|
||||
<< "-quiet"
|
||||
<< "-merge" << tmpFile.fileName();
|
||||
#endif
|
||||
proc.execute();
|
||||
|
||||
// Needed for applications that don't set their own cursor.
|
||||
- QProcess::execute(QStringLiteral("xsetroot"), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
|
||||
+ QProcess::execute(QStringLiteral("@xsetroot@"), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
|
||||
|
||||
applyGtkStyles(1);
|
||||
applyGtkStyles(2);
|
||||
diff --git a/ksmserver/plasma-restoresession.service.in b/ksmserver/plasma-restoresession.service.in
|
||||
index 2c52a4b87d..fd7fdc8ac1 100644
|
||||
--- a/ksmserver/plasma-restoresession.service.in
|
||||
+++ b/ksmserver/plasma-restoresession.service.in
|
||||
@@ -5,5 +5,5 @@ RefuseManualStart=yes
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
-ExecStart=-@QtBinariesDir@/qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.restoreSession
|
||||
+ExecStart=-@qdbus@ org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.restoreSession
|
||||
Slice=session.slice
|
||||
diff --git a/startkde/kcminit/plasma-kcminit-phase1.service.in b/startkde/kcminit/plasma-kcminit-phase1.service.in
|
||||
index 7218628ce9..9126475ea4 100644
|
||||
--- a/startkde/kcminit/plasma-kcminit-phase1.service.in
|
||||
+++ b/startkde/kcminit/plasma-kcminit-phase1.service.in
|
||||
@@ -6,5 +6,5 @@ PartOf=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
-ExecStart=@QtBinariesDir@/qdbus org.kde.kcminit /kcminit org.kde.KCMInit.runPhase1
|
||||
+ExecStart=@qdbus@ org.kde.kcminit /kcminit org.kde.KCMInit.runPhase1
|
||||
Slice=session.slice
|
||||
diff --git a/startkde/startplasma.cpp b/startkde/startplasma.cpp
|
||||
index 0bd4511189..602b7e9eb0 100644
|
||||
--- a/startkde/startplasma.cpp
|
||||
+++ b/startkde/startplasma.cpp
|
||||
@@ -57,7 +57,7 @@ void sigtermHandler(int signalNumber)
|
||||
void messageBox(const QString &text)
|
||||
{
|
||||
out << text;
|
||||
- runSync(QStringLiteral("xmessage"), {QStringLiteral("-geometry"), QStringLiteral("500x100"), text});
|
||||
+ runSync(QStringLiteral("@xmessage@"), {QStringLiteral("-geometry"), QStringLiteral("500x100"), text});
|
||||
}
|
||||
|
||||
QStringList allServices(const QLatin1String &prefix)
|
||||
@@ -507,7 +507,7 @@ QProcess *setupKSplash()
|
||||
if (ksplashCfg.readEntry("Engine", QStringLiteral("KSplashQML")) == QLatin1String("KSplashQML")) {
|
||||
p = new QProcess;
|
||||
p->setProcessChannelMode(QProcess::ForwardedChannels);
|
||||
- p->start(QStringLiteral("ksplashqml"), {ksplashCfg.readEntry("Theme", QStringLiteral("Breeze"))});
|
||||
+ p->start(QStringLiteral(CMAKE_INSTALL_FULL_BINDIR "/ksplashqml"), {ksplashCfg.readEntry("Theme", QStringLiteral("Breeze"))});
|
||||
}
|
||||
}
|
||||
return p;
|
||||
diff --git a/startkde/systemd/plasma-ksplash-ready.service.in b/startkde/systemd/plasma-ksplash-ready.service.in
|
||||
index 3f6744f378..c51266794d 100644
|
||||
--- a/startkde/systemd/plasma-ksplash-ready.service.in
|
||||
+++ b/startkde/systemd/plasma-ksplash-ready.service.in
|
||||
@@ -6,5 +6,5 @@ PartOf=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
-ExecStart=-@QtBinariesDir@/qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage ready
|
||||
+ExecStart=-@qdbus@ org.kde.KSplash /KSplash org.kde.KSplash.setStage ready
|
||||
Slice=session.slice
|
@ -1,68 +0,0 @@
|
||||
diff --git a/kcms/krdb/krdb.cpp b/kcms/krdb/krdb.cpp
|
||||
index 46363ddcb..d787f9993 100644
|
||||
--- a/kcms/krdb/krdb.cpp
|
||||
+++ b/kcms/krdb/krdb.cpp
|
||||
@@ -468,7 +468,7 @@ void runRdb(unsigned int flags)
|
||||
proc.execute();
|
||||
|
||||
// Needed for applications that don't set their own cursor.
|
||||
- QProcess::execute(QStringLiteral("xsetroot"), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
|
||||
+ QProcess::execute(QStringLiteral("@xsetroot@"), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
|
||||
|
||||
applyGtkStyles(1);
|
||||
applyGtkStyles(2);
|
||||
diff --git a/startkde/startplasma.cpp b/startkde/startplasma.cpp
|
||||
index b0158c97d..c8f7fe223 100644
|
||||
--- a/startkde/startplasma.cpp
|
||||
+++ b/startkde/startplasma.cpp
|
||||
@@ -50,7 +50,7 @@ void sigtermHandler(int signalNumber)
|
||||
void messageBox(const QString &text)
|
||||
{
|
||||
out << text;
|
||||
- runSync(QStringLiteral("xmessage"), {QStringLiteral("-geometry"), QStringLiteral("500x100"), text});
|
||||
+ runSync(QStringLiteral("@xmessage@"), {QStringLiteral("-geometry"), QStringLiteral("500x100"), text});
|
||||
}
|
||||
|
||||
QStringList allServices(const QLatin1String &prefix)
|
||||
@@ -484,7 +484,7 @@ QProcess *setupKSplash()
|
||||
if (ksplashCfg.readEntry("Engine", QStringLiteral("KSplashQML")) == QLatin1String("KSplashQML")) {
|
||||
p = new QProcess;
|
||||
p->setProcessChannelMode(QProcess::ForwardedChannels);
|
||||
- p->start(QStringLiteral("ksplashqml"), {ksplashCfg.readEntry("Theme", QStringLiteral("Breeze"))});
|
||||
+ p->start(QStringLiteral(CMAKE_INSTALL_FULL_BINDIR "/ksplashqml"), {ksplashCfg.readEntry("Theme", QStringLiteral("Breeze"))});
|
||||
}
|
||||
}
|
||||
return p;
|
||||
diff --git a/ksmserver/plasma-restoresession.service.in b/ksmserver/plasma-restoresession.service.in
|
||||
index 2c52a4b87..fd7fdc8ac 100644
|
||||
--- a/ksmserver/plasma-restoresession.service.in
|
||||
+++ b/ksmserver/plasma-restoresession.service.in
|
||||
@@ -5,5 +5,5 @@ RefuseManualStart=yes
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
-ExecStart=-@QtBinariesDir@/qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.restoreSession
|
||||
+ExecStart=-@qdbus@ org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.restoreSession
|
||||
Slice=session.slice
|
||||
diff --git a/startkde/kcminit/plasma-kcminit-phase1.service.in b/startkde/kcminit/plasma-kcminit-phase1.service.in
|
||||
index 7218628ce..9126475ea 100644
|
||||
--- a/startkde/kcminit/plasma-kcminit-phase1.service.in
|
||||
+++ b/startkde/kcminit/plasma-kcminit-phase1.service.in
|
||||
@@ -6,5 +6,5 @@ PartOf=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
-ExecStart=@QtBinariesDir@/qdbus org.kde.kcminit /kcminit org.kde.KCMInit.runPhase1
|
||||
+ExecStart=@qdbus@ org.kde.kcminit /kcminit org.kde.KCMInit.runPhase1
|
||||
Slice=session.slice
|
||||
diff --git a/startkde/systemd/plasma-ksplash-ready.service.in b/startkde/systemd/plasma-ksplash-ready.service.in
|
||||
index 3f6744f37..c51266794 100644
|
||||
--- a/startkde/systemd/plasma-ksplash-ready.service.in
|
||||
+++ b/startkde/systemd/plasma-ksplash-ready.service.in
|
||||
@@ -6,5 +6,5 @@ PartOf=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
-ExecStart=-@QtBinariesDir@/qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage ready
|
||||
+ExecStart=-@qdbus@ org.kde.KSplash /KSplash org.kde.KSplash.setStage ready
|
||||
Slice=session.slice
|
@ -1,6 +1,6 @@
|
||||
{ lib, stdenv, buildPythonApplication, fetchFromGitHub, python3Packages, pyqtwebengine, lilypond }:
|
||||
{ lib, stdenv, fetchFromGitHub, python311Packages, lilypond }:
|
||||
|
||||
buildPythonApplication rec {
|
||||
python311Packages.buildPythonApplication rec {
|
||||
pname = "frescobaldi";
|
||||
version = "3.3.0";
|
||||
|
||||
@ -11,7 +11,7 @@ buildPythonApplication rec {
|
||||
sha256 = "sha256-Q6ruthNcpjLlYydUetkuTECiCIzu055bw40O8BPGq/A=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
propagatedBuildInputs = with python311Packages; [
|
||||
qpageview
|
||||
lilypond
|
||||
pygame
|
||||
@ -22,7 +22,7 @@ buildPythonApplication rec {
|
||||
pyqtwebengine
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
|
||||
nativeBuildInputs = [ python311Packages.pyqtwebengine.wrapQtAppsHook ];
|
||||
|
||||
# Needed because source is fetched from git
|
||||
preBuild = ''
|
||||
|
@ -15,12 +15,12 @@ callPackage ./generic.nix args {
|
||||
# this attribute is the correct one for this package.
|
||||
kernelModuleAttribute = "zfs_2_2";
|
||||
# check the release notes for compatible kernels
|
||||
kernelCompatible = kernel.kernelOlder "6.9";
|
||||
kernelCompatible = kernel.kernelOlder "6.10";
|
||||
|
||||
latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_8;
|
||||
latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_9;
|
||||
|
||||
# this package should point to the latest release.
|
||||
version = "2.2.4";
|
||||
version = "2.2.5";
|
||||
|
||||
tests = [
|
||||
nixosTests.zfs.installer
|
||||
@ -29,5 +29,5 @@ callPackage ./generic.nix args {
|
||||
|
||||
maintainers = with lib.maintainers; [ adamcstephens amarshall ];
|
||||
|
||||
hash = "sha256-SSp/1Tu1iGx5UDcG4j0k2fnYxK05cdE8gzfSn8DU5Z4=";
|
||||
hash = "sha256-BkwcNPk+jX8CXp5xEVrg4THof7o/5j8RY2SY6+IPNTg=";
|
||||
}
|
||||
|
@ -23,31 +23,13 @@ callPackage ./generic.nix args {
|
||||
# IMPORTANT: Always use a tagged release candidate or commits from the
|
||||
# zfs-<version>-staging branch, because this is tested by the OpenZFS
|
||||
# maintainers.
|
||||
version = "2.2.4-unstable-2024-07-15";
|
||||
rev = "/54ef0fdf60a8e7633c38cb46e1f5bcfcec792f4e";
|
||||
version = "2.2.5";
|
||||
# rev = "";
|
||||
|
||||
isUnstable = true;
|
||||
tests = [
|
||||
nixosTests.zfs.unstable
|
||||
];
|
||||
|
||||
# 6.10 patches approved+merged to the default branch, not in staging yet
|
||||
# https://github.com/openzfs/zfs/pull/16250
|
||||
extraPatches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/openzfs/zfs/commit/7ca7bb7fd723a91366ce767aea53c4f5c2d65afb.patch";
|
||||
hash = "sha256-vUX4lgywh5ox6DjtIfeC90KjbLoW3Ol0rK/L65jOENo=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://github.com/openzfs/zfs/commit/e951dba48a6330aca9c161c50189f6974e6877f0.patch";
|
||||
hash = "sha256-A1h0ZLY+nlReBMTlEm3O9kwBqto1cgsZdnJsHpR6hw0=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://github.com/openzfs/zfs/commit/b409892ae5028965a6fe98dde1346594807e6e45.patch";
|
||||
hash = "sha256-pW1b8ktglFhwVRapTB5th9UCyjyrPmCVPg53nMENax8=";
|
||||
})
|
||||
|
||||
];
|
||||
|
||||
hash = "sha256-7vZeIzA2yDW/gSCcS2AM3+C9qbRIbA9XbCRUxikW2+M=";
|
||||
hash = "sha256-BkwcNPk+jX8CXp5xEVrg4THof7o/5j8RY2SY6+IPNTg=";
|
||||
}
|
||||
|
@ -11,7 +11,9 @@ buildPythonPackage rec {
|
||||
hash = "sha256-GmbIqO+03LgbUxJ1nTStXrYN3t2MfvzbeYRAipfTW1o=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ django-mailman3 readme-renderer ];
|
||||
propagatedBuildInputs = [
|
||||
django-mailman3 readme-renderer
|
||||
] ++ readme-renderer.optional-dependencies.md;
|
||||
nativeCheckInputs = [ beautifulsoup4 vcrpy mock ];
|
||||
|
||||
# Tries to connect to database.
|
||||
|
@ -29,10 +29,6 @@ lib.fix (self: python3.override {
|
||||
hash = "sha256-WF3FFrnrBCphnvCjnD19Vf6BvbTfCaUsnN3g0Hvxqn0=";
|
||||
};
|
||||
});
|
||||
|
||||
readme-renderer = super.readme-renderer.overridePythonAttrs (_: {
|
||||
propagatedBuildInputs = [ self.cmarkgfm ];
|
||||
});
|
||||
})
|
||||
|
||||
overlay;
|
||||
|
@ -38,7 +38,18 @@ in phpPackage.buildComposerProject rec {
|
||||
php = phpPackage;
|
||||
|
||||
buildInputs = [
|
||||
graphviz
|
||||
ipmitool
|
||||
libvirt
|
||||
monitoring-plugins
|
||||
mtr
|
||||
net-snmp
|
||||
nfdump
|
||||
nmap
|
||||
rrdtool
|
||||
system-sendmail
|
||||
unixtools.whereis
|
||||
whois
|
||||
(python3.withPackages (ps: with ps; [
|
||||
pymysql
|
||||
python-dotenv
|
||||
@ -80,13 +91,15 @@ in phpPackage.buildComposerProject rec {
|
||||
--replace '"default": "/usr/bin/snmpwalk",' '"default": "${net-snmp}/bin/snmpwalk",' \
|
||||
--replace '"default": "/usr/bin/virsh",' '"default": "${libvirt}/bin/virsh",' \
|
||||
--replace '"default": "/usr/bin/whois",' '"default": "${whois}/bin/whois",' \
|
||||
--replace '"default": "/usr/lib/nagios/plugins",' '"default": "${monitoring-plugins}/libexec",' \
|
||||
--replace '"default": "/usr/lib/nagios/plugins",' '"default": "${monitoring-plugins}/bin",' \
|
||||
--replace '"default": "/usr/sbin/sendmail",' '"default": "${system-sendmail}/bin/sendmail",'
|
||||
|
||||
substituteInPlace $out/LibreNMS/wrapper.py --replace '/usr/bin/env php' '${phpPackage}/bin/php'
|
||||
substituteInPlace $out/LibreNMS/__init__.py --replace '"/usr/bin/env", "php"' '"${phpPackage}/bin/php"'
|
||||
substituteInPlace $out/snmp-scan.py --replace '"/usr/bin/env", "php"' '"${phpPackage}/bin/php"'
|
||||
|
||||
substituteInPlace $out/lnms --replace '\App\Checks::runningUser();' '//\App\Checks::runningUser(); //removed as nix forces ownership to root'
|
||||
|
||||
wrapProgram $out/daily.sh --prefix PATH : ${phpPackage}/bin
|
||||
|
||||
rm -rf $out/logs $out/rrd $out/bootstrap/cache $out/storage $out/.env
|
||||
|
@ -104,7 +104,7 @@ rec {
|
||||
NIX_CFLAGS_LINK = toString args.env.NIX_CFLAGS_LINK + " -static";
|
||||
};
|
||||
} else {
|
||||
NIX_CFLAGS_LINK = toString (args.env.NIX_CFLAGS_LINK or "") + " -static";
|
||||
NIX_CFLAGS_LINK = toString (args.NIX_CFLAGS_LINK or "") + " -static";
|
||||
} // lib.optionalAttrs (!(args.dontAddStaticConfigureFlags or false)) {
|
||||
configureFlags = (args.configureFlags or []) ++ [
|
||||
"--disable-shared" # brrr...
|
||||
|
@ -356,7 +356,7 @@ else let
|
||||
then attrs.name + hostSuffix
|
||||
else
|
||||
# we cannot coerce null to a string below
|
||||
assert assertMsg (attrs ? version && attrs.version != null) "The ‘version’ attribute cannot be null.";
|
||||
assert assertMsg (attrs ? version && attrs.version != null) "The `version` attribute cannot be null.";
|
||||
"${attrs.pname}${staticMarker}${hostSuffix}-${attrs.version}"
|
||||
);
|
||||
}) // {
|
||||
@ -572,14 +572,17 @@ let
|
||||
checkedEnv =
|
||||
let
|
||||
overlappingNames = attrNames (builtins.intersectAttrs env derivationArg);
|
||||
prettyPrint = lib.generators.toPretty {};
|
||||
makeError = name: " - ${name}: in `env`: ${prettyPrint env.${name}}; in derivation arguments: ${prettyPrint derivationArg.${name}}";
|
||||
errors = lib.concatMapStringsSep "\n" makeError overlappingNames;
|
||||
in
|
||||
assert assertMsg envIsExportable
|
||||
"When using structured attributes, `env` must be an attribute set of environment variables.";
|
||||
assert assertMsg (overlappingNames == [ ])
|
||||
"The ‘env’ attribute set cannot contain any attributes passed to derivation. The following attributes are overlapping: ${concatStringsSep ", " overlappingNames}";
|
||||
"The `env` attribute set cannot contain any attributes passed to derivation. The following attributes are overlapping:\n${errors}";
|
||||
mapAttrs
|
||||
(n: v: assert assertMsg (isString v || isBool v || isInt v || isDerivation v)
|
||||
"The ‘env’ attribute set can only contain derivation, string, boolean or integer attributes. The ‘${n}’ attribute is of type ${builtins.typeOf v}."; v)
|
||||
"The `env` attribute set can only contain derivation, string, boolean or integer attributes. The `${n}` attribute is of type ${builtins.typeOf v}."; v)
|
||||
env;
|
||||
|
||||
# Fixed-output derivations may not reference other paths, which means that
|
||||
|
@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ romildo ];
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "xsettingsd";
|
||||
};
|
||||
}
|
||||
|
@ -1,19 +1,20 @@
|
||||
{ lib
|
||||
, fetchFromGitLab
|
||||
, mkDerivation
|
||||
, qtbase
|
||||
, cmake
|
||||
, kconfig
|
||||
, kio
|
||||
, kiconthemes
|
||||
, kxmlgui
|
||||
, ki18n
|
||||
, kguiaddons
|
||||
, extra-cmake-modules
|
||||
, boost
|
||||
, shared-mime-info
|
||||
, rrdtool
|
||||
, breeze-icons
|
||||
{
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
mkDerivation,
|
||||
qtbase,
|
||||
cmake,
|
||||
kconfig,
|
||||
kio,
|
||||
kiconthemes,
|
||||
kxmlgui,
|
||||
ki18n,
|
||||
kguiaddons,
|
||||
extra-cmake-modules,
|
||||
boost,
|
||||
shared-mime-info,
|
||||
rrdtool,
|
||||
breeze-icons,
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
@ -26,6 +27,10 @@ mkDerivation rec {
|
||||
hash = "sha256-bUVL5eRQ5UkSZo562pnyEcj0fVoSC5WHRq4BfN67jEM=";
|
||||
};
|
||||
|
||||
postPatch = lib.optional (!lib.versionOlder rrdtool.version "1.9.0") ''
|
||||
substituteInPlace kcollectd/rrd_interface.cc --replace-fail 'char *arg[] =' 'const char *arg[] ='
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
extra-cmake-modules
|
||||
|
@ -1,48 +0,0 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, gettext
|
||||
, perl
|
||||
, pkg-config
|
||||
, libxml2
|
||||
, pango
|
||||
, cairo
|
||||
, groff
|
||||
, tcl
|
||||
, darwin
|
||||
}:
|
||||
|
||||
perl.pkgs.toPerlModule (stdenv.mkDerivation rec {
|
||||
pname = "rrdtool";
|
||||
version = "1.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "oetiker";
|
||||
repo = "rrdtool-1.x";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-a+AxU1+YpkGoFs1Iu/CHAEZ4XIkWs7Vsnr6RcfXzsBE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
autoreconfHook
|
||||
];
|
||||
|
||||
buildInputs = [ gettext perl libxml2 pango cairo groff ]
|
||||
++ lib.optionals stdenv.isDarwin [ tcl darwin.apple_sdk.frameworks.ApplicationServices ];
|
||||
|
||||
postInstall = ''
|
||||
# for munin and rrdtool support
|
||||
mkdir -p $out/${perl.libPrefix}
|
||||
mv $out/lib/perl/5* $out/${perl.libPrefix}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://oss.oetiker.ch/rrdtool/";
|
||||
description = "High performance logging in Round Robin Databases";
|
||||
license = licenses.gpl2Only;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [ pSub ];
|
||||
};
|
||||
})
|
@ -1,27 +1,29 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, autoreconfHook
|
||||
, curl
|
||||
, expat
|
||||
, fetchFromGitHub
|
||||
, git
|
||||
, json_c
|
||||
, libcap
|
||||
, libmaxminddb
|
||||
, libmysqlclient
|
||||
, libpcap
|
||||
, libsodium
|
||||
, ndpi
|
||||
, net-snmp
|
||||
, openssl
|
||||
, pkg-config
|
||||
, rdkafka
|
||||
, gtest
|
||||
, rrdtool
|
||||
, hiredis
|
||||
, sqlite
|
||||
, which
|
||||
, zeromq
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
autoreconfHook,
|
||||
curl,
|
||||
expat,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
git,
|
||||
json_c,
|
||||
libcap,
|
||||
libmaxminddb,
|
||||
libmysqlclient,
|
||||
libpcap,
|
||||
libsodium,
|
||||
ndpi,
|
||||
net-snmp,
|
||||
openssl,
|
||||
pkg-config,
|
||||
rdkafka,
|
||||
gtest,
|
||||
rrdtool,
|
||||
hiredis,
|
||||
sqlite,
|
||||
which,
|
||||
zeromq,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@ -36,6 +38,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
patches = lib.optional (!lib.versionOlder rrdtool.version "1.9.0") (fetchpatch {
|
||||
url = "https://github.com/ntop/ntopng/commit/5069aa4a6259bd0830a33f2ece980612dba5ace9.patch";
|
||||
hash = "sha256-CnYzSE39J7pC2wHxp7Xst6g5pzQbpNUynJUVrTrtuOg=";
|
||||
});
|
||||
|
||||
preConfigure = ''
|
||||
substituteInPlace Makefile.in \
|
||||
--replace "/bin/rm" "rm"
|
||||
|
@ -7968,7 +7968,7 @@ with pkgs;
|
||||
wxGTK = wxGTK32;
|
||||
};
|
||||
|
||||
frescobaldi = python3Packages.callPackage ../misc/frescobaldi { };
|
||||
frescobaldi = callPackage ../misc/frescobaldi { };
|
||||
|
||||
freshfetch = callPackage ../tools/misc/freshfetch {
|
||||
inherit (darwin.apple_sdk.frameworks) AppKit CoreFoundation DiskArbitration Foundation IOKit;
|
||||
@ -12295,8 +12295,6 @@ with pkgs;
|
||||
|
||||
rpmextract = callPackage ../tools/archivers/rpmextract { };
|
||||
|
||||
rrdtool = callPackage ../tools/misc/rrdtool { };
|
||||
|
||||
rscw = callPackage ../applications/radio/rscw { };
|
||||
|
||||
rset = callPackage ../tools/admin/rset { };
|
||||
|
@ -121,6 +121,8 @@ let
|
||||
smpl = callPackage ../development/coq-modules/smpl { };
|
||||
smtcoq = callPackage ../development/coq-modules/smtcoq { };
|
||||
ssprove = callPackage ../development/coq-modules/ssprove {};
|
||||
stalmarck-tactic = callPackage ../development/coq-modules/stalmarck {};
|
||||
stalmarck = self.stalmarck-tactic.stalmarck;
|
||||
stdpp = callPackage ../development/coq-modules/stdpp { };
|
||||
StructTact = callPackage ../development/coq-modules/StructTact {};
|
||||
tlc = callPackage ../development/coq-modules/tlc {};
|
||||
|
@ -10403,6 +10403,8 @@ self: super: with self; {
|
||||
|
||||
pytlv = callPackage ../development/python-modules/pytlv { };
|
||||
|
||||
pywebcopy = callPackage ../development/python-modules/pywebcopy { };
|
||||
|
||||
python-codon-tables = callPackage ../development/python-modules/python-codon-tables { };
|
||||
|
||||
python-creole = callPackage ../development/python-modules/python-creole { };
|
||||
@ -10415,6 +10417,8 @@ self: super: with self; {
|
||||
|
||||
python-ecobee-api = callPackage ../development/python-modules/python-ecobee-api { };
|
||||
|
||||
python-escpos = callPackage ../development/python-modules/python-escpos { };
|
||||
|
||||
python-ffmpeg = callPackage ../development/python-modules/python-ffmpeg { };
|
||||
|
||||
python-flirt = callPackage ../development/python-modules/python-flirt { };
|
||||
@ -12029,9 +12033,7 @@ self: super: with self; {
|
||||
|
||||
pyqtgraph = callPackage ../development/python-modules/pyqtgraph { };
|
||||
|
||||
pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine {
|
||||
pythonPackages = self;
|
||||
};
|
||||
pyqtwebengine = callPackage ../development/python-modules/pyqtwebengine { };
|
||||
|
||||
pyquery = callPackage ../development/python-modules/pyquery { };
|
||||
|
||||
@ -13684,6 +13686,8 @@ self: super: with self; {
|
||||
|
||||
rich-theme-manager = callPackage ../development/python-modules/rich-theme-manager { };
|
||||
|
||||
riden = callPackage ../development/python-modules/riden { };
|
||||
|
||||
ring-doorbell = callPackage ../development/python-modules/ring-doorbell { };
|
||||
|
||||
rio-tiler = callPackage ../development/python-modules/rio-tiler { };
|
||||
@ -15810,7 +15814,7 @@ self: super: with self; {
|
||||
|
||||
tree-sitter = callPackage ../development/python-modules/tree-sitter { };
|
||||
|
||||
tree-sitter0_21 = callPackage ../development/python-modules/tree-sitter0_21 { };
|
||||
tree-sitter_0_21 = callPackage ../development/python-modules/tree-sitter/0_21.nix { };
|
||||
|
||||
tree-sitter-html = callPackage ../development/python-modules/tree-sitter-html { };
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user