Merge staging-next into staging
This commit is contained in:
commit
4b7471c330
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.services.librenms;
|
cfg = config.services.librenms;
|
||||||
settingsFormat = pkgs.formats.json {};
|
settingsFormat = pkgs.formats.json { };
|
||||||
configJson = settingsFormat.generate "librenms-config.json" cfg.settings;
|
configJson = settingsFormat.generate "librenms-config.json" cfg.settings;
|
||||||
|
|
||||||
package = pkgs.librenms.override {
|
package = pkgs.librenms.override {
|
||||||
@ -16,12 +16,13 @@ let
|
|||||||
upload_max_filesize = 100M
|
upload_max_filesize = 100M
|
||||||
date.timezone = "${config.time.timeZone}"
|
date.timezone = "${config.time.timeZone}"
|
||||||
'';
|
'';
|
||||||
phpIni = pkgs.runCommand "php.ini" {
|
phpIni = pkgs.runCommand "php.ini"
|
||||||
inherit (package) phpPackage;
|
{
|
||||||
inherit phpOptions;
|
inherit (package) phpPackage;
|
||||||
preferLocalBuild = true;
|
inherit phpOptions;
|
||||||
passAsFile = [ "phpOptions" ];
|
preferLocalBuild = true;
|
||||||
} ''
|
passAsFile = [ "phpOptions" ];
|
||||||
|
} ''
|
||||||
cat $phpPackage/etc/php.ini $phpOptionsPath > $out
|
cat $phpPackage/etc/php.ini $phpOptionsPath > $out
|
||||||
'';
|
'';
|
||||||
|
|
||||||
@ -31,14 +32,20 @@ let
|
|||||||
if [[ "$USER" != ${cfg.user} ]]; then
|
if [[ "$USER" != ${cfg.user} ]]; then
|
||||||
sudo='exec /run/wrappers/bin/sudo -u ${cfg.user}'
|
sudo='exec /run/wrappers/bin/sudo -u ${cfg.user}'
|
||||||
fi
|
fi
|
||||||
$sudo ${package}/artisan $*
|
$sudo ${package}/artisan "$@"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
lnmsWrapper = pkgs.writeShellScriptBin "lnms" ''
|
lnmsWrapper = pkgs.writeShellScriptBin "lnms" ''
|
||||||
cd ${package}
|
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" ''
|
configFile = pkgs.writeText "config.php" ''
|
||||||
<?php
|
<?php
|
||||||
$new_config = json_decode(file_get_contents("${cfg.dataDir}/config.json"), true);
|
$new_config = json_decode(file_get_contents("${cfg.dataDir}/config.json"), true);
|
||||||
@ -47,7 +54,8 @@ let
|
|||||||
${lib.optionalString (cfg.extraConfig != null) cfg.extraConfig}
|
${lib.optionalString (cfg.extraConfig != null) cfg.extraConfig}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
options.services.librenms = with lib; {
|
options.services.librenms = with lib; {
|
||||||
enable = mkEnableOption "LibreNMS network monitoring system";
|
enable = mkEnableOption "LibreNMS network monitoring system";
|
||||||
|
|
||||||
@ -191,7 +199,8 @@ in {
|
|||||||
nginx = mkOption {
|
nginx = mkOption {
|
||||||
type = types.submodule (
|
type = types.submodule (
|
||||||
recursiveUpdate
|
recursiveUpdate
|
||||||
(import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) {}
|
(import ../web-servers/nginx/vhost-options.nix { inherit config lib; })
|
||||||
|
{ }
|
||||||
);
|
);
|
||||||
default = { };
|
default = { };
|
||||||
example = literalExpression ''
|
example = literalExpression ''
|
||||||
@ -240,6 +249,7 @@ in {
|
|||||||
default = "localhost";
|
default = "localhost";
|
||||||
description = ''
|
description = ''
|
||||||
Hostname or IP of the MySQL/MariaDB server.
|
Hostname or IP of the MySQL/MariaDB server.
|
||||||
|
Ignored if 'socket' is defined.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -248,6 +258,7 @@ in {
|
|||||||
default = 3306;
|
default = 3306;
|
||||||
description = ''
|
description = ''
|
||||||
Port of the MySQL/MariaDB server.
|
Port of the MySQL/MariaDB server.
|
||||||
|
Ignored if 'socket' is defined.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -264,15 +275,28 @@ in {
|
|||||||
default = "librenms";
|
default = "librenms";
|
||||||
description = ''
|
description = ''
|
||||||
Name of the user on the MySQL/MariaDB server.
|
Name of the user on the MySQL/MariaDB server.
|
||||||
|
Ignored if 'socket' is defined.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
passwordFile = mkOption {
|
passwordFile = mkOption {
|
||||||
type = types.path;
|
type = types.nullOr types.path;
|
||||||
|
default = null;
|
||||||
example = "/run/secrets/mysql.pass";
|
example = "/run/secrets/mysql.pass";
|
||||||
description = ''
|
description = ''
|
||||||
A file containing the password for the user of the MySQL/MariaDB server.
|
A file containing the password for the user of the MySQL/MariaDB server.
|
||||||
Must be readable for the LibreNMS user.
|
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 {
|
settings = mkOption {
|
||||||
type = types.submodule {
|
type = types.submodule {
|
||||||
freeformType = settingsFormat.type;
|
freeformType = settingsFormat.type;
|
||||||
options = {};
|
options = { };
|
||||||
};
|
};
|
||||||
description = ''
|
description = ''
|
||||||
Attrset of the LibreNMS configuration.
|
Attrset of the LibreNMS configuration.
|
||||||
@ -483,13 +507,15 @@ in {
|
|||||||
EnvironmentFile = lib.mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
|
EnvironmentFile = lib.mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
|
||||||
User = cfg.user;
|
User = cfg.user;
|
||||||
Group = cfg.group;
|
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')
|
DB_PASSWORD=$(cat ${cfg.database.passwordFile} | tr -d '\n')
|
||||||
echo "ALTER USER '${cfg.database.username}'@'localhost' IDENTIFIED BY '$DB_PASSWORD';" | ${pkgs.mariadb}/bin/mysql
|
echo "ALTER USER '${cfg.database.username}'@'localhost' IDENTIFIED BY '$DB_PASSWORD';" | ${pkgs.mariadb}/bin/mysql
|
||||||
${lib.optionalString cfg.useDistributedPollers ''
|
${lib.optionalString cfg.useDistributedPollers ''
|
||||||
echo "ALTER USER '${cfg.database.username}'@'%' IDENTIFIED BY '$DB_PASSWORD';" | ${pkgs.mariadb}/bin/mysql
|
echo "ALTER USER '${cfg.database.username}'@'%' IDENTIFIED BY '$DB_PASSWORD';" | ${pkgs.mariadb}/bin/mysql
|
||||||
''}
|
''}
|
||||||
''}"];
|
''}"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
script = ''
|
script = ''
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
@ -516,13 +542,24 @@ in {
|
|||||||
${lib.optionalString (cfg.useDistributedPollers || cfg.distributedPoller.enable) ''
|
${lib.optionalString (cfg.useDistributedPollers || cfg.distributedPoller.enable) ''
|
||||||
echo "CACHE_DRIVER=memcached" >> ${cfg.dataDir}/.env
|
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_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
|
# clear cache after update
|
||||||
OLD_VERSION=$(cat ${cfg.dataDir}/version)
|
OLD_VERSION=$(cat ${cfg.dataDir}/version)
|
||||||
if [[ $OLD_VERSION != "${package.version}" ]]; then
|
if [[ $OLD_VERSION != "${package.version}" ]]; then
|
||||||
@ -560,29 +597,31 @@ in {
|
|||||||
|
|
||||||
services.cron = {
|
services.cron = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemCronJobs = let
|
systemCronJobs =
|
||||||
env = "PHPRC=${phpIni}";
|
let
|
||||||
in [
|
env = "PHPRC=${phpIni}";
|
||||||
# based on crontab provided by LibreNMS
|
in
|
||||||
"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"
|
# 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}"
|
"${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"
|
"* * * * * ${cfg.user} ${env} ${package}/alerts.php >> /dev/null 2>&1"
|
||||||
|
|
||||||
"*/5 * * * * ${cfg.user} ${env} ${package}/poll-billing.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"
|
"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}/check-services.php >> /dev/null 2>&1"
|
||||||
|
|
||||||
# extra: fast ping
|
# extra: fast ping
|
||||||
"* * * * * ${cfg.user} ${env} ${package}/ping.php >> /dev/null 2>&1"
|
"* * * * * ${cfg.user} ${env} ${package}/ping.php >> /dev/null 2>&1"
|
||||||
|
|
||||||
# daily.sh tasks are split to exclude update
|
# 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 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 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 peeringdb >> /dev/null 2>&1"
|
||||||
"19 0 * * * ${cfg.user} ${env} ${package}/daily.sh mac_oui >> /dev/null 2>&1"
|
"19 0 * * * ${cfg.user} ${env} ${package}/daily.sh mac_oui >> /dev/null 2>&1"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
security.wrappers = {
|
security.wrappers = {
|
||||||
|
@ -168,7 +168,7 @@ in {
|
|||||||
message = "Backups for database backends other than sqlite will need customization";
|
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}";
|
message = "Backup directory can not be in ${dataDir}";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@ -3,7 +3,8 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
|
|||||||
let
|
let
|
||||||
api_token = "f87f42114e44b63ad1b9e3c3d33d6fbe"; # random md5 hash
|
api_token = "f87f42114e44b63ad1b9e3c3d33d6fbe"; # random md5 hash
|
||||||
wrong_api_token = "e68ba041fcf1eab923a7a6de3af5f726"; # another random md5 hash
|
wrong_api_token = "e68ba041fcf1eab923a7a6de3af5f726"; # another random md5 hash
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
name = "librenms";
|
name = "librenms";
|
||||||
meta.maintainers = lib.teams.wdz.members;
|
meta.maintainers = lib.teams.wdz.members;
|
||||||
|
|
||||||
@ -60,37 +61,29 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
nodes.snmphost = {
|
nodes.snmphost = {
|
||||||
networking.firewall.allowedUDPPorts = [ 161 ];
|
|
||||||
|
|
||||||
systemd.services.snmpd = {
|
services.snmpd = {
|
||||||
description = "snmpd";
|
enable = true;
|
||||||
after = [ "network-online.target" ];
|
openFirewall = true;
|
||||||
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
|
|
||||||
|
|
||||||
group MyROGroup v2c readonly
|
configText = ''
|
||||||
view all included .1 80
|
com2sec readonly default public
|
||||||
access MyROGroup "" any noauth exact all none none
|
|
||||||
|
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 = ''
|
testScript = ''
|
||||||
start_all()
|
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_unit("lnms-api-init.service")
|
||||||
librenms.wait_for_open_port(80)
|
librenms.wait_for_open_port(80)
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
, librttopo
|
, librttopo
|
||||||
, libspatialite
|
, libspatialite
|
||||||
, libxml2
|
, libxml2
|
||||||
|
, libz
|
||||||
, minizip
|
, minizip
|
||||||
, proj
|
, proj
|
||||||
, readosm
|
, readosm
|
||||||
@ -34,6 +35,7 @@ stdenv.mkDerivation rec {
|
|||||||
librttopo
|
librttopo
|
||||||
libspatialite
|
libspatialite
|
||||||
libxml2
|
libxml2
|
||||||
|
libz
|
||||||
minizip
|
minizip
|
||||||
proj
|
proj
|
||||||
readosm
|
readosm
|
||||||
|
@ -14,12 +14,12 @@
|
|||||||
}:
|
}:
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "vdr-softhddevice";
|
pname = "vdr-softhddevice";
|
||||||
version = "2.3.6";
|
version = "2.3.7";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ua0lnj";
|
owner = "ua0lnj";
|
||||||
repo = "vdr-plugin-softhddevice";
|
repo = "vdr-plugin-softhddevice";
|
||||||
sha256 = "sha256-T3OG93Bx1RVyXeqkNJvhOSGojZHIWT3DHHEIzUoykds=";
|
sha256 = "sha256-gn1Z3pw8f0Tpo8Ot0hP9+p/KbK/EGOInE34BCH3aVp0=";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -5,7 +5,10 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
python3 = python311;
|
python3 = python311.override {
|
||||||
|
self = python3;
|
||||||
|
packageOverrides = _: super: { tree-sitter = super.tree-sitter_0_21; };
|
||||||
|
};
|
||||||
in
|
in
|
||||||
python3.pkgs.buildPythonApplication rec {
|
python3.pkgs.buildPythonApplication rec {
|
||||||
pname = "autotools-language-server";
|
pname = "autotools-language-server";
|
||||||
|
@ -15,14 +15,14 @@ let
|
|||||||
"cli"
|
"cli"
|
||||||
"desktop"
|
"desktop"
|
||||||
];
|
];
|
||||||
version = "0.39.0";
|
version = "0.40.0";
|
||||||
cli = fetchurl {
|
cli = fetchurl {
|
||||||
url = "https://storage.googleapis.com/caido-releases/v${version}/caido-cli-v${version}-linux-x86_64.tar.gz";
|
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 {
|
desktop = fetchurl {
|
||||||
url = "https://storage.googleapis.com/caido-releases/v${version}/caido-desktop-v${version}-linux-x86_64.AppImage";
|
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 {
|
appimageContents = appimageTools.extractType2 {
|
||||||
inherit pname version;
|
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
|
, rustPlatform
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, makeBinaryWrapper
|
, makeBinaryWrapper
|
||||||
|
, pixman
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, libinput
|
, libinput
|
||||||
, libglvnd
|
, libglvnd
|
||||||
@ -18,27 +19,34 @@
|
|||||||
, useSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
|
, useSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
|
||||||
}:
|
}:
|
||||||
|
|
||||||
rustPlatform.buildRustPackage {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "cosmic-comp";
|
pname = "cosmic-comp";
|
||||||
version = "unstable-2023-11-13";
|
version = "1.0.0-alpha.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "pop-os";
|
owner = "pop-os";
|
||||||
repo = "cosmic-comp";
|
repo = "cosmic-comp";
|
||||||
rev = "d051d141979820f50b75bd686c745fb7f84fcd05";
|
rev = "epoch-${version}";
|
||||||
hash = "sha256-8okRiVVPzmuPJjnv1YoQPQFI8g0j1DQhwUoO51dHgGA=";
|
hash = "sha256-4NAIpyaITFNaTDBcsleIwKPq8nHNa77C7y+5hCIYXZE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoLock = {
|
cargoLock = {
|
||||||
lockFile = ./Cargo.lock;
|
lockFile = ./Cargo.lock;
|
||||||
outputHashes = {
|
outputHashes = {
|
||||||
"cosmic-config-0.1.0" = "sha256-5WajbfcfCc0ZRpJfysqEydthOsF04ipb35QVWuWKrEs=";
|
"atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
|
||||||
"cosmic-protocols-0.1.0" = "sha256-st46wmOncJvu0kj6qaot6LT/ojmW/BwXbbGf8s0mdZ8=";
|
"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=";
|
"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=";
|
"smithay-egui-0.1.0" = "sha256-FcSoKCwYk3okwQURiQlDUcfk9m/Ne6pSblGAzHDaVHg=";
|
||||||
"softbuffer-0.2.0" = "sha256-VD2GmxC58z7Qfu/L+sfENE+T8L40mvUKKSfgLmCTmjY=";
|
"softbuffer-0.4.1" = "sha256-a0bUFz6O8CWRweNt/OxTvflnPYwO5nm6vsyc/WcXyNg=";
|
||||||
"taffy-0.3.11" = "sha256-0hXOEj6IjSW8e1t+rvxBFX6V9XRum3QO2Des1XlHJEw=";
|
"taffy-0.3.11" = "sha256-SCx9GEIJjWdoNVyq+RZAGn0N71qraKZxf9ZWhvyzLaI=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -50,6 +58,7 @@ rustPlatform.buildRustPackage {
|
|||||||
libinput
|
libinput
|
||||||
libxkbcommon
|
libxkbcommon
|
||||||
mesa
|
mesa
|
||||||
|
pixman
|
||||||
seatd
|
seatd
|
||||||
udev
|
udev
|
||||||
wayland
|
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
|
, cosmic-icons
|
||||||
, just
|
, just
|
||||||
, pkg-config
|
, pkg-config
|
||||||
|
, glib
|
||||||
, libxkbcommon
|
, libxkbcommon
|
||||||
, wayland
|
, wayland
|
||||||
, xorg
|
, xorg
|
||||||
@ -13,34 +14,38 @@
|
|||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "cosmic-files";
|
pname = "cosmic-files";
|
||||||
version = "0-unstable-2024-06-10";
|
version = "1.0.0-alpha.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "pop-os";
|
owner = "pop-os";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "6123108f3ae3c7074264184952f0a53e49a981d5";
|
rev = "epoch-${version}";
|
||||||
hash = "sha256-BeqpoLIZbR5Dg7OGYGQMFWBLdD96n4t7fX8Ju9/h5JU=";
|
hash = "sha256-UwQwZRzOyMvLRRmU2noxGrqblezkR8J2PNMVoyG0M0w=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoLock = {
|
cargoLock = {
|
||||||
lockFile = ./Cargo.lock;
|
lockFile = ./Cargo.lock;
|
||||||
outputHashes = {
|
outputHashes = {
|
||||||
"accesskit-0.12.2" = "sha256-ksaYMGT/oug7isQY8/1WD97XDUsX2ShBdabUzxWffYw=";
|
"accesskit-0.12.2" = "sha256-1UwgRyUe0PQrZrpS7574oNLi13fg5HpgILtZGW6JNtQ=";
|
||||||
"atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
|
"atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
|
||||||
"cosmic-config-0.1.0" = "sha256-eaG/HCwlKqSfEp6GEPeBS63j5WHq4qdYTNHqnW2zeeE=";
|
"clipboard_macos-0.1.0" = "sha256-cG5vnkiyDlQnbEfV2sPbmBYKv1hd3pjJrymfZb8ziKk=";
|
||||||
"cosmic-text-0.11.2" = "sha256-Y9i5stMYpx+iqn4y5DJm1O1+3UIGp0/fSsnNq3Zloug=";
|
"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=";
|
"d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4=";
|
||||||
|
"fs_extra-1.3.0" = "sha256-ftg5oanoqhipPnbUsqnA4aZcyHqn9XsINJdrStIPLoE=";
|
||||||
"glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
|
"glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
|
||||||
|
"smithay-clipboard-0.8.0" = "sha256-4InFXm0ahrqFrtNLeqIuE3yeOpxKZJZx+Bc0yQDtv34=";
|
||||||
"softbuffer-0.4.1" = "sha256-a0bUFz6O8CWRweNt/OxTvflnPYwO5nm6vsyc/WcXyNg=";
|
"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=";
|
"taffy-0.3.11" = "sha256-SCx9GEIJjWdoNVyq+RZAGn0N71qraKZxf9ZWhvyzLaI=";
|
||||||
|
"trash-5.0.0" = "sha256-6cMo2GtMJjU+fbehlsGNmj3LbzSP+vOjA4en3OgmZ54=";
|
||||||
"winit-0.29.10" = "sha256-ScTII2AzK3SC8MVeASZ9jhVWsEaGrSQ2BnApTxgfxK4=";
|
"winit-0.29.10" = "sha256-ScTII2AzK3SC8MVeASZ9jhVWsEaGrSQ2BnApTxgfxK4=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# COSMIC applications now uses vergen for the About page
|
# COSMIC applications now uses vergen for the About page
|
||||||
# Update the COMMIT_DATE to match when the commit was made
|
# 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;
|
env.VERGEN_GIT_SHA = src.rev;
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
@ -48,7 +53,7 @@ rustPlatform.buildRustPackage rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = [ just pkg-config makeBinaryWrapper ];
|
nativeBuildInputs = [ just pkg-config makeBinaryWrapper ];
|
||||||
buildInputs = [ wayland ];
|
buildInputs = [ glib libxkbcommon wayland ];
|
||||||
|
|
||||||
dontUseJustBuild = true;
|
dontUseJustBuild = true;
|
||||||
|
|
||||||
@ -65,7 +70,7 @@ rustPlatform.buildRustPackage rec {
|
|||||||
postInstall = ''
|
postInstall = ''
|
||||||
wrapProgram "$out/bin/${pname}" \
|
wrapProgram "$out/bin/${pname}" \
|
||||||
--suffix XDG_DATA_DIRS : "${cosmic-icons}/share" \
|
--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; {
|
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 {
|
buildGoModule rec {
|
||||||
pname = "grafana-alloy";
|
pname = "grafana-alloy";
|
||||||
version = "1.2.1";
|
version = "1.3.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
owner = "grafana";
|
owner = "grafana";
|
||||||
repo = "alloy";
|
repo = "alloy";
|
||||||
hash = "sha256-RwTwwWz5nEk5eeCK/cZivd3r6WmoIqKjNtEQ0RVk1pw=";
|
hash = "sha256-2OpBRSX/t6hwf1fHogrNTuDAmKArVXxwKHXuHyTXnYA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
proxyVendor = true;
|
proxyVendor = true;
|
||||||
vendorHash = "sha256-UYFZmrE0Pm5bdhloaR9zSEvlPWV/uWo85zjmIuN8Jvc=";
|
vendorHash = "sha256-eMtwmADYbvpIm4FHTHieQ1i4xCty5xCwsZ/JD9r94/8=";
|
||||||
|
|
||||||
nativeBuildInputs = [ fixup-yarn-lock yarn nodejs installShellFiles ];
|
nativeBuildInputs = [ fixup-yarn-lock yarn nodejs installShellFiles ];
|
||||||
|
|
||||||
@ -57,7 +57,7 @@ buildGoModule rec {
|
|||||||
|
|
||||||
yarnOfflineCache = fetchYarnDeps {
|
yarnOfflineCache = fetchYarnDeps {
|
||||||
yarnLock = "${src}/internal/web/ui/yarn.lock";
|
yarnLock = "${src}/internal/web/ui/yarn.lock";
|
||||||
hash = "sha256-8/siWMFoUokMXJ13QT8050AXynsApiC67TP/7Hvugsk=";
|
hash = "sha256-Jk+zqR/+NBde9ywncIEJM4kgavqiDvcIAjxJCSMrZDc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
{ lib, buildGoModule, fetchFromGitHub, nix-update-script, testers, immich-go }:
|
{ lib, buildGoModule, fetchFromGitHub, nix-update-script, testers, immich-go }:
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "immich-go";
|
pname = "immich-go";
|
||||||
version = "0.20.1";
|
version = "0.21.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "simulot";
|
owner = "simulot";
|
||||||
repo = "immich-go";
|
repo = "immich-go";
|
||||||
rev = "${version}";
|
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
|
# 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
|
# 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:
|
# options used by upstream:
|
||||||
# https://github.com/simulot/immich-go/blob/0.13.2/.goreleaser.yaml
|
# https://github.com/simulot/immich-go/blob/0.13.2/.goreleaser.yaml
|
||||||
|
@ -5,25 +5,24 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
appimageTools.wrapType2 rec {
|
appimageTools.wrapType2 rec {
|
||||||
pname = "lunar-client";
|
pname = "lunarclient";
|
||||||
version = "3.2.11";
|
version = "3.2.12";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
|
url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
|
||||||
hash = "sha512-qRucW9x4LMmTb8pw0zY1EKXkPfjdahCi2PN/bfdB8CYA4wZp0bfZNaGtPpI/BKPlnR/nfpypEdnHsoqlL9KiCg==";
|
hash = "sha512-dqFFi5Vri5oEbyDdzKiWPF1mbSf0Qv2MBuEqF/rIs1aYMNjCQDu2CqTrhLtctu2VXxKlgzaqktFWKs9WMZayZA==";
|
||||||
};
|
};
|
||||||
|
|
||||||
extraInstallCommands =
|
extraInstallCommands =
|
||||||
let contents = appimageTools.extract { inherit pname version src; };
|
let contents = appimageTools.extract { inherit pname version src; };
|
||||||
in ''
|
in ''
|
||||||
source "${makeWrapper}/nix-support/setup-hook"
|
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}}"
|
--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}/lunarclient.desktop -t $out/share/applications/
|
||||||
install -Dm444 ${contents}/launcher.png $out/share/pixmaps/lunar-client.png
|
install -Dm444 ${contents}/lunarclient.png -t $out/share/pixmaps/
|
||||||
substituteInPlace $out/share/applications/lunar-client.desktop \
|
substituteInPlace $out/share/applications/lunarclient.desktop \
|
||||||
--replace 'Exec=AppRun --no-sandbox %U' 'Exec=lunar-client' \
|
--replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=lunarclient' \
|
||||||
--replace 'Icon=launcher' 'Icon=lunar-client'
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru.updateScript = ./update.sh;
|
passthru.updateScript = ./update.sh;
|
||||||
@ -32,7 +31,7 @@ appimageTools.wrapType2 rec {
|
|||||||
description = "Free Minecraft client with mods, cosmetics, and performance boost";
|
description = "Free Minecraft client with mods, cosmetics, and performance boost";
|
||||||
homepage = "https://www.lunarclient.com/";
|
homepage = "https://www.lunarclient.com/";
|
||||||
license = with licenses; [ unfree ];
|
license = with licenses; [ unfree ];
|
||||||
mainProgram = "lunar-client";
|
mainProgram = "lunarclient";
|
||||||
maintainers = with maintainers; [ Technical27 surfaceflinger ];
|
maintainers = with maintainers; [ Technical27 surfaceflinger ];
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
};
|
};
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
lib,
|
lib,
|
||||||
rustPlatform,
|
rustPlatform,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
nix-update-script,
|
|
||||||
pkg-config,
|
pkg-config,
|
||||||
udev,
|
udev,
|
||||||
stdenv,
|
stdenv,
|
||||||
@ -24,8 +23,6 @@ rustPlatform.buildRustPackage rec {
|
|||||||
lockFile = ./Cargo.lock;
|
lockFile = ./Cargo.lock;
|
||||||
};
|
};
|
||||||
|
|
||||||
passthru.updateScript = nix-update-script { };
|
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
ln -s ${./Cargo.lock} Cargo.lock
|
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
|
in
|
||||||
stdenv'.mkDerivation (finalAttrs: {
|
stdenv'.mkDerivation (finalAttrs: {
|
||||||
pname = "renovate";
|
pname = "renovate";
|
||||||
version = "37.440.7";
|
version = "38.18.17";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "renovatebot";
|
owner = "renovatebot";
|
||||||
repo = "renovate";
|
repo = "renovate";
|
||||||
rev = "refs/tags/${finalAttrs.version}";
|
rev = "refs/tags/${finalAttrs.version}";
|
||||||
hash = "sha256-VMv55BVeauRa/hmg1Y7D15ltAbccdcMd4Azk5IInuH0=";
|
hash = "sha256-Mur4UH63unYjgwkj9Rscg9V2M38XLrsNuqz+mWn0wR4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
@ -44,7 +44,7 @@ stdenv'.mkDerivation (finalAttrs: {
|
|||||||
|
|
||||||
pnpmDeps = pnpm_9.fetchDeps {
|
pnpmDeps = pnpm_9.fetchDeps {
|
||||||
inherit (finalAttrs) pname version src;
|
inherit (finalAttrs) pname version src;
|
||||||
hash = "sha256-ZYQ7G2BKkRxuyg31dysim+P1Vje0VysJm+UFyy4xuKI=";
|
hash = "sha256-3XSseB0rjFv1bsJ5S2fCveFicSQFnTwz4MmjzC7t9Jw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
env.COREPACK_ENABLE_STRICT = 0;
|
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: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "saunafs";
|
pname = "saunafs";
|
||||||
version = "4.3.0";
|
version = "4.4.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "leil-io";
|
owner = "leil-io";
|
||||||
repo = "saunafs";
|
repo = "saunafs";
|
||||||
rev = "v${finalAttrs.version}";
|
rev = "v${finalAttrs.version}";
|
||||||
hash = "sha256-T/K13JygU7Q/ylPk5ZAby3Kepi8I4z3vBBaigboJhus=";
|
hash = "sha256-t2fb8AA9m2I7Qna/v4F2GNL02iCU0r7zz5TgajHUmrg=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
@ -9,18 +9,18 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "shopware-cli";
|
pname = "shopware-cli";
|
||||||
version = "0.4.50";
|
version = "0.4.51";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
repo = "shopware-cli";
|
repo = "shopware-cli";
|
||||||
owner = "FriendsOfShopware";
|
owner = "FriendsOfShopware";
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-dVq2Aw6oYkr8LAdd0LeFvkzMYSronCsDxesqUh2IGV0=";
|
hash = "sha256-mimFOZjWiDodCopJ23RZxWijOT7bDPUOH+A8GL/UyXs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ installShellFiles makeWrapper ];
|
nativeBuildInputs = [ installShellFiles makeWrapper ];
|
||||||
nativeCheckInputs = [ git dart-sass ];
|
nativeCheckInputs = [ git dart-sass ];
|
||||||
|
|
||||||
vendorHash = "sha256-ABvjNRADmamYiq5A0NZjv1HlGxxAHQlut1ZR2kA04oU=";
|
vendorHash = "sha256-NXk3wH/XHohI7aYK+dvUmh+0hUrBNiH6xouT9EM8eiE=";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
export HOME="$(mktemp -d)"
|
export HOME="$(mktemp -d)"
|
||||||
|
@ -6,13 +6,13 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "trickest-cli";
|
pname = "trickest-cli";
|
||||||
version = "1.8.1";
|
version = "1.8.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "trickest";
|
owner = "trickest";
|
||||||
repo = "trickest-cli";
|
repo = "trickest-cli";
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-6fshMuwGv4tkaqySHVsCwX+kBpUt+u/x9qnJNZ3c0HA=";
|
hash = "sha256-X7JGzTaTm7CE5+mTvnV93d5Hx2A1vF+aufmC5/xWRtc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-gk8YMMvTHBL7yoXU9n0jhtUS472fqLW5m+mSl4Lio6c=";
|
vendorHash = "sha256-gk8YMMvTHBL7yoXU9n0jhtUS472fqLW5m+mSl4Lio6c=";
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
appimageTools.wrapType2 rec {
|
appimageTools.wrapType2 rec {
|
||||||
pname = "xlights";
|
pname = "xlights";
|
||||||
version = "2024.13";
|
version = "2024.14";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/smeighan/xLights/releases/download/${version}/xLights-${version}-x86_64.AppImage";
|
url = "https://github.com/smeighan/xLights/releases/download/${version}/xLights-${version}-x86_64.AppImage";
|
||||||
hash = "sha256-Oiavnnk5geFao7lq0GpmNg+xs1FeUOt3JhSbLUV8GkE=";
|
hash = "sha256-WqLPesH6KaOAj7gYycyrmzG2NIkKs3cjUm+K83rvha0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
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 = [
|
patches = [
|
||||||
./opencl.patch
|
./opencl.patch
|
||||||
|
|
||||||
# Manual backport of https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30510
|
|
||||||
# Fixes video corruption / crashes when decoding video on AMD iGPUs
|
# Fixes video corruption / crashes when decoding video on AMD iGPUs
|
||||||
# FIXME: remove when merged
|
# FIXME: remove in the next update
|
||||||
./vcn-pagefault.patch
|
(fetchpatch {
|
||||||
|
url = "https://gitlab.freedesktop.org/mesa/mesa/-/commit/8b35da91b23afc65256b78a59d116fd09544cd28.patch";
|
||||||
|
hash = "sha256-z0KKBtot3VxXiS16YcmwZbeg8HSCLzEbvWdufI/fOk8=";
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
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
|
lib,
|
||||||
, libpsm2, libfabric, pmix, ucx, ucc, makeWrapper
|
stdenv,
|
||||||
, config
|
fetchurl,
|
||||||
# Enable CUDA support
|
removeReferencesTo,
|
||||||
, cudaSupport ? config.cudaSupport, cudaPackages
|
gfortran,
|
||||||
|
perl,
|
||||||
# Enable the Sun Grid Engine bindings
|
libnl,
|
||||||
, enableSGE ? false
|
rdma-core,
|
||||||
|
zlib,
|
||||||
# Pass PATH/LD_LIBRARY_PATH to point to current mpirun by default
|
numactl,
|
||||||
, enablePrefix ? false
|
libevent,
|
||||||
|
hwloc,
|
||||||
# Enable libfabric support (necessary for Omnipath networks) on x86_64 linux
|
targetPackages,
|
||||||
, fabricSupport ? stdenv.isLinux && stdenv.isx86_64
|
libpsm2,
|
||||||
|
libfabric,
|
||||||
# Enable Fortran support
|
pmix,
|
||||||
, fortranSupport ? true
|
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";
|
pname = "openmpi";
|
||||||
version = "4.1.6";
|
version = "5.0.3";
|
||||||
|
|
||||||
src = with lib.versions; fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.open-mpi.org/software/ompi/v${major version}.${minor version}/downloads/${pname}-${version}.tar.bz2";
|
url = "https://www.open-mpi.org/software/ompi/v${lib.versions.majorMinor finalAttrs.version}/downloads/openmpi-${finalAttrs.version}.tar.bz2";
|
||||||
sha256 = "sha256-90CZRIVRbetjtTEa8SLCZRefUyig2FelZ7hdsAsR5BU=";
|
sha256 = "sha256-mQWC8gazqzLpOKoxu/B8Y5No5EBdyhlvq+fw927tqQs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
patchShebangs ./
|
patchShebangs ./
|
||||||
|
|
||||||
# Ensure build is reproducible
|
# This is dynamically detected. Configure does not provide fine grained options
|
||||||
ts=`date -d @$SOURCE_DATE_EPOCH`
|
# We just disable the check in the configure script for now
|
||||||
sed -i 's/OPAL_CONFIGURE_USER=.*/OPAL_CONFIGURE_USER="nixbld"/' configure
|
${lib.pipe (finalAttrs.passthru.defaultAvxOptions // avxOptions) [
|
||||||
sed -i 's/OPAL_CONFIGURE_HOST=.*/OPAL_CONFIGURE_HOST="localhost"/' configure
|
(lib.mapAttrsToList (
|
||||||
sed -i "s/OPAL_CONFIGURE_DATE=.*/OPAL_CONFIGURE_DATE=\"$ts\"/" configure
|
option: val: ''
|
||||||
find -name "Makefile.in" -exec sed -i "s/\`date\`/$ts/" \{} \;
|
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 ]
|
outputs =
|
||||||
++ lib.optionals stdenv.isLinux [ libnl numactl pmix ucx ucc ]
|
[ "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 ]
|
++ lib.optionals cudaSupport [ cudaPackages.cuda_cudart ]
|
||||||
++ [ libevent hwloc ]
|
++ lib.optionals (stdenv.isLinux || stdenv.isFreeBSD) [ rdma-core ]
|
||||||
++ lib.optional (stdenv.isLinux || stdenv.isFreeBSD) rdma-core
|
# needed for internal pmix
|
||||||
++ lib.optionals fabricSupport [ libpsm2 libfabric ];
|
++ 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 cudaSupport [ cudaPackages.cuda_nvcc ]
|
||||||
++ lib.optionals fortranSupport [ gfortran ];
|
++ lib.optionals fortranSupport [ gfortran ];
|
||||||
|
|
||||||
configureFlags = lib.optional (!cudaSupport) "--disable-mca-dso"
|
configureFlags = [
|
||||||
++ lib.optional (!fortranSupport) "--disable-mpi-fortran"
|
(lib.enableFeature cudaSupport "mca-dso")
|
||||||
++ lib.optionals stdenv.isLinux [
|
(lib.enableFeature fortranSupport "mpi-fortran")
|
||||||
"--with-libnl=${lib.getDev libnl}"
|
(lib.withFeatureAs stdenv.isLinux "libnl" (lib.getDev libnl))
|
||||||
"--with-pmix=${lib.getDev pmix}"
|
"--with-pmix=${if stdenv.isLinux then (lib.getDev pmix) else "internal"}"
|
||||||
"--with-pmix-libdir=${pmix}/lib"
|
(lib.withFeatureAs stdenv.isLinux "pmix-libdir" "${lib.getLib pmix}/lib")
|
||||||
"--enable-mpi-cxx"
|
# Puts a "default OMPI_PRTERUN" value to mpirun / mpiexec executables
|
||||||
] ++ lib.optional enableSGE "--with-sge"
|
(lib.withFeatureAs stdenv.isLinux "prrte" (lib.getBin prrte))
|
||||||
++ lib.optional enablePrefix "--enable-mpirun-prefix-by-default"
|
(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
|
# TODO: add UCX support, which is recommended to use with cuda for the most robust OpenMPI build
|
||||||
# https://github.com/openucx/ucx
|
# https://github.com/openucx/ucx
|
||||||
# https://www.open-mpi.org/faq/?category=buildcuda
|
# https://www.open-mpi.org/faq/?category=buildcuda
|
||||||
++ lib.optionals cudaSupport [ "--with-cuda=${lib.getDev cudaPackages.cuda_cudart}" "--enable-dlopen" ]
|
(lib.withFeatureAs cudaSupport "cuda" (lib.getDev cudaPackages.cuda_cudart))
|
||||||
++ lib.optionals fabricSupport [ "--with-psm2=${lib.getDev libpsm2}" "--with-libfabric=${lib.getDev libfabric}" ]
|
(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;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
postInstall = ''
|
postInstall =
|
||||||
find $out/lib/ -name "*.la" -exec rm -f \{} \;
|
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
|
# The main wrapper that all the rest of the commonly used binaries are
|
||||||
for i in f77 f90 CC c++ cxx cc fort; do
|
# symlinked to
|
||||||
moveToOutput "bin/$f$i" "''${!outputDev}"
|
moveToOutput "bin/opal_wrapper" "''${!outputDev}"
|
||||||
echo "move $fi$i"
|
# All of the following files are symlinks to opal_wrapper
|
||||||
moveToOutput "share/openmpi/$f$i-wrapper-data.txt" "''${!outputDev}"
|
${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
|
||||||
done
|
'';
|
||||||
|
|
||||||
for i in ortecc orte-info ompi_info oshmem_info opal_wrapper; do
|
postFixup =
|
||||||
moveToOutput "bin/$i" "''${!outputDev}"
|
lib.optionalString (lib.elem "man" finalAttrs.outputs) ''
|
||||||
done
|
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}"
|
# 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" \
|
||||||
postFixup = ''
|
--set OPAL_PKGDATADIR "''${!outputDev}/share/openmpi"
|
||||||
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
|
|
||||||
|
|
||||||
'';
|
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
|
defaultAvxOptions = {
|
||||||
|
sse3 = true;
|
||||||
|
sse41 = true;
|
||||||
|
avx = true;
|
||||||
|
avx2 = stdenv.hostPlatform.avx2Support;
|
||||||
|
avx512 = stdenv.hostPlatform.avx512Support;
|
||||||
|
};
|
||||||
inherit cudaSupport;
|
inherit cudaSupport;
|
||||||
cudatoolkit = cudaPackages.cudatoolkit; # For backward compatibility only
|
cudatoolkit = cudaPackages.cudatoolkit; # For backward compatibility only
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = {
|
||||||
homepage = "https://www.open-mpi.org/";
|
homepage = "https://www.open-mpi.org/";
|
||||||
description = "Open source MPI-3 implementation";
|
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.";
|
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 ];
|
maintainers = with lib.maintainers; [ markuskowa ];
|
||||||
license = licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
platforms = platforms.unix;
|
platforms = lib.platforms.unix;
|
||||||
};
|
};
|
||||||
}
|
})
|
||||||
|
@ -71,8 +71,9 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
# Pin the compiler to the current version in a cross compiler friendly way.
|
# 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).
|
# 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:' \
|
substituteInPlace $dev/share/pmix/pmixcc-wrapper-data.txt \
|
||||||
$dev/share/pmix/pmixcc-wrapper-data.txt
|
--replace-fail compiler=gcc \
|
||||||
|
compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc
|
||||||
'';
|
'';
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
buildDunePackage rec {
|
buildDunePackage rec {
|
||||||
pname = "algaeff";
|
pname = "algaeff";
|
||||||
version = "1.1.0";
|
version = "2.0.0";
|
||||||
|
|
||||||
minimalOCamlVersion = "5.0";
|
minimalOCamlVersion = "5.0";
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ buildDunePackage rec {
|
|||||||
owner = "RedPRL";
|
owner = "RedPRL";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-7kwQmoT8rpQWPHc+BZQi9fcZhgHxS99158ebXAXlpQ8=";
|
hash = "sha256-VRZfULbXKRcExU1bnEu/X1KPX+L+dzcRYZVD985rQT4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
@ -1,29 +1,21 @@
|
|||||||
{ lib, fetchFromGitHub, buildDunePackage
|
{ lib, fetchFromGitHub, buildDunePackage
|
||||||
, algaeff
|
, algaeff
|
||||||
, bwd
|
, bwd
|
||||||
, eio
|
|
||||||
, eio_main
|
|
||||||
, lsp
|
|
||||||
, notty
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildDunePackage rec {
|
buildDunePackage rec {
|
||||||
pname = "asai";
|
pname = "asai";
|
||||||
version = "0.1.1";
|
version = "0.3.0";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "RedPRL";
|
owner = "RedPRL";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-Jd90WhSjK4K2amFA5uyGF57NzsgHA8QiccX6qtxO1rQ=";
|
hash = "sha256-Rp4TvSbRz+5+X4XJ1tKUDDgldpLzHHtaF7G7AG6HgKU=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
algaeff
|
algaeff
|
||||||
bwd
|
bwd
|
||||||
lsp
|
|
||||||
eio
|
|
||||||
eio_main
|
|
||||||
notty
|
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
{ lib, fetchFromGitHub, nix-update-script
|
{ lib, fetchFromGitHub, nix-update-script
|
||||||
, buildDunePackage
|
, buildDunePackage
|
||||||
, core
|
, base
|
||||||
|
, ppx_sexp_conv
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildDunePackage rec {
|
buildDunePackage rec {
|
||||||
@ -14,10 +15,11 @@ buildDunePackage rec {
|
|||||||
sha256 = "sha256-Z2rOaiNGvVDbRwf5XfoNIcenQdrE3fxHnfzyi6Ki2Ic=";
|
sha256 = "sha256-Z2rOaiNGvVDbRwf5XfoNIcenQdrE3fxHnfzyi6Ki2Ic=";
|
||||||
};
|
};
|
||||||
|
|
||||||
minimalOCamlVersion = "4.08";
|
minimalOCamlVersion = "4.14";
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
core
|
base
|
||||||
|
ppx_sexp_conv
|
||||||
];
|
];
|
||||||
|
|
||||||
passthru.updateScript = nix-update-script { };
|
passthru.updateScript = nix-update-script { };
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
let params = if lib.versionAtLeast ocaml.version "5.0" then {
|
let params = if lib.versionAtLeast ocaml.version "5.0" then {
|
||||||
version = "5.1.0";
|
version = "5.2.0";
|
||||||
hash = "sha256-J3qkytgJkk2gT83KJ47nNM4cXqVHbx4iTPK+fLwR7Wk=";
|
hash = "sha256-DJzXjV5Tjf69FKUiRioeHghks72pOOHYd73vqhmecS8=";
|
||||||
propagatedBuildInputs = [ algaeff bwd ];
|
propagatedBuildInputs = [ algaeff bwd ];
|
||||||
} else {
|
} else {
|
||||||
version = "2.0.0";
|
version = "2.0.0";
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
buildPythonPackage,
|
buildPythonPackage,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
hypothesis,
|
hypothesis,
|
||||||
poetry-core,
|
hatchling,
|
||||||
pytest-asyncio,
|
pytest-asyncio,
|
||||||
pytestCheckHook,
|
pytestCheckHook,
|
||||||
pythonOlder,
|
pythonOlder,
|
||||||
@ -13,8 +13,8 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "aiosmtplib";
|
pname = "aiosmtplib";
|
||||||
version = "3.0.1";
|
version = "3.0.2";
|
||||||
format = "pyproject";
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.7";
|
disabled = pythonOlder "3.7";
|
||||||
|
|
||||||
@ -22,10 +22,10 @@ buildPythonPackage rec {
|
|||||||
owner = "cole";
|
owner = "cole";
|
||||||
repo = "aiosmtplib";
|
repo = "aiosmtplib";
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-67Z+k+PBIGP2oGb/52dMtsapUsHufvFcX+wWiMj5Jsg=";
|
hash = "sha256-1GuxlgNvzVv6hEQY1Mkv7NxAoOik9gpIS90a6flfC+k=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ poetry-core ];
|
build-system = [ hatchling ];
|
||||||
|
|
||||||
nativeCheckInputs = [
|
nativeCheckInputs = [
|
||||||
aiosmtpd
|
aiosmtpd
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "dvc-data";
|
pname = "dvc-data";
|
||||||
version = "3.15.1";
|
version = "3.15.2";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.8";
|
disabled = pythonOlder "3.8";
|
||||||
@ -24,7 +24,7 @@ buildPythonPackage rec {
|
|||||||
owner = "iterative";
|
owner = "iterative";
|
||||||
repo = "dvc-data";
|
repo = "dvc-data";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-pr5RtVlGKKtpcmmCNGqcLiBFzJcajpqtPjBbzeCCHF8=";
|
hash = "sha256-8720nqWmi/1Be2ckuCvctfJbOSFCME27OOtA3qZMr7E=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ setuptools-scm ];
|
nativeBuildInputs = [ setuptools-scm ];
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "dvclive";
|
pname = "dvclive";
|
||||||
version = "3.47.0";
|
version = "3.48.0";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.9";
|
disabled = pythonOlder "3.9";
|
||||||
@ -42,7 +42,7 @@ buildPythonPackage rec {
|
|||||||
owner = "iterative";
|
owner = "iterative";
|
||||||
repo = "dvclive";
|
repo = "dvclive";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-oC45cSqiKeorbyPe3GIsJ824U3OS1cKvWxUM901/QwQ=";
|
hash = "sha256-WIVRpJD7B6OI7ZfdHT+DunRRiaxHhri5Ge/B1BQ1kJY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
build-system = [ setuptools-scm ];
|
build-system = [ setuptools-scm ];
|
||||||
|
@ -13,14 +13,14 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "hcloud";
|
pname = "hcloud";
|
||||||
version = "2.1.0";
|
version = "2.2.0";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.7";
|
disabled = pythonOlder "3.7";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
hash = "sha256-cDyy2x1JINthvhuzQdwgMcykGrypnTkk4rJBk1WQ1HQ=";
|
hash = "sha256-NlEpnSmNY8rcfCJVgKqufCmEMSp4UBr5Po2rh1V8OrA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
build-system = [ setuptools ];
|
build-system = [ setuptools ];
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "holidays";
|
pname = "holidays";
|
||||||
version = "0.53";
|
version = "0.54";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.8";
|
disabled = pythonOlder "3.8";
|
||||||
@ -23,7 +23,7 @@ buildPythonPackage rec {
|
|||||||
owner = "vacanza";
|
owner = "vacanza";
|
||||||
repo = "python-holidays";
|
repo = "python-holidays";
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-qL6ZjnVecAs8vHbbb2IRQPSDpFFPmFuu16UEBsY8vKw=";
|
hash = "sha256-/mpbNuCnADuguI1v8cpYUdhBN8DjhjklCDVmMOsRvkM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
build-system = [
|
build-system = [
|
||||||
|
@ -1,14 +1,15 @@
|
|||||||
{ lib
|
{
|
||||||
, buildPythonPackage
|
lib,
|
||||||
, fetchFromGitHub
|
buildPythonPackage,
|
||||||
, setuptools-generate
|
fetchFromGitHub,
|
||||||
, setuptools-scm
|
setuptools-generate,
|
||||||
, colorama
|
setuptools-scm,
|
||||||
, jinja2
|
colorama,
|
||||||
, jsonschema
|
jinja2,
|
||||||
, pygls
|
jsonschema,
|
||||||
, tree-sitter0_21
|
pygls,
|
||||||
, pytestCheckHook
|
tree-sitter,
|
||||||
|
pytestCheckHook,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
@ -33,16 +34,9 @@ buildPythonPackage rec {
|
|||||||
jinja2
|
jinja2
|
||||||
jsonschema
|
jsonschema
|
||||||
pygls
|
pygls
|
||||||
# The build won't fail if we had used tree-sitter (version > 0.21), but
|
tree-sitter
|
||||||
# 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
|
|
||||||
];
|
];
|
||||||
|
nativeCheckInputs = [ pytestCheckHook ];
|
||||||
|
|
||||||
pythonImportsCheck = [ "lsp_tree_sitter" ];
|
pythonImportsCheck = [ "lsp_tree_sitter" ];
|
||||||
|
|
||||||
|
@ -4,10 +4,16 @@
|
|||||||
buildPythonPackage,
|
buildPythonPackage,
|
||||||
dotmap,
|
dotmap,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
|
hypothesis,
|
||||||
packaging,
|
packaging,
|
||||||
|
parse,
|
||||||
pexpect,
|
pexpect,
|
||||||
|
platformdirs,
|
||||||
|
ppk2-api,
|
||||||
|
print-color,
|
||||||
protobuf,
|
protobuf,
|
||||||
pygatt,
|
pyarrow,
|
||||||
|
pyparsing,
|
||||||
pypubsub,
|
pypubsub,
|
||||||
pyqrcode,
|
pyqrcode,
|
||||||
pyserial,
|
pyserial,
|
||||||
@ -19,6 +25,7 @@
|
|||||||
setuptools,
|
setuptools,
|
||||||
tabulate,
|
tabulate,
|
||||||
timeago,
|
timeago,
|
||||||
|
webencodings,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
@ -35,15 +42,22 @@ buildPythonPackage rec {
|
|||||||
hash = "sha256-s56apVx7+EXkdw3FUjyGKGFjP+IVbO0/VDB4urXEtXQ=";
|
hash = "sha256-s56apVx7+EXkdw3FUjyGKGFjP+IVbO0/VDB4urXEtXQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pythonRelaxDeps = [ "protobuf" ];
|
||||||
|
|
||||||
build-system = [ setuptools ];
|
build-system = [ setuptools ];
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
bleak
|
bleak
|
||||||
dotmap
|
dotmap
|
||||||
packaging
|
packaging
|
||||||
|
parse
|
||||||
pexpect
|
pexpect
|
||||||
|
platformdirs
|
||||||
|
ppk2-api
|
||||||
|
print-color
|
||||||
protobuf
|
protobuf
|
||||||
pygatt
|
pyarrow
|
||||||
|
pyparsing
|
||||||
pypubsub
|
pypubsub
|
||||||
pyqrcode
|
pyqrcode
|
||||||
pyserial
|
pyserial
|
||||||
@ -52,6 +66,7 @@ buildPythonPackage rec {
|
|||||||
setuptools
|
setuptools
|
||||||
tabulate
|
tabulate
|
||||||
timeago
|
timeago
|
||||||
|
webencodings
|
||||||
];
|
];
|
||||||
|
|
||||||
passthru.optional-dependencies = {
|
passthru.optional-dependencies = {
|
||||||
@ -59,9 +74,9 @@ buildPythonPackage rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
nativeCheckInputs = [
|
nativeCheckInputs = [
|
||||||
pytap2
|
hypothesis
|
||||||
pytestCheckHook
|
pytestCheckHook
|
||||||
];
|
] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
|
||||||
|
|
||||||
preCheck = ''
|
preCheck = ''
|
||||||
export PATH="$PATH:$out/bin";
|
export PATH="$PATH:$out/bin";
|
||||||
@ -79,6 +94,7 @@ buildPythonPackage rec {
|
|||||||
"test_main_support"
|
"test_main_support"
|
||||||
"test_MeshInterface"
|
"test_MeshInterface"
|
||||||
"test_message_to_json_shows_all"
|
"test_message_to_json_shows_all"
|
||||||
|
"test_node"
|
||||||
"test_SerialInterface_single_port"
|
"test_SerialInterface_single_port"
|
||||||
"test_support_info"
|
"test_support_info"
|
||||||
"test_TCPInterface"
|
"test_TCPInterface"
|
||||||
|
@ -1,37 +1,34 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
buildPythonPackage,
|
buildPythonPackage,
|
||||||
fetchFromGitHub,
|
fetchPypi,
|
||||||
setuptools,
|
setuptools,
|
||||||
pythonOlder,
|
pythonOlder,
|
||||||
pyserial,
|
pyserial,
|
||||||
pytestCheckHook,
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "modbus-tk";
|
pname = "modbus-tk";
|
||||||
version = "1.1.1";
|
version = "1.1.3";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.10";
|
disabled = pythonOlder "3.10";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchPypi {
|
||||||
owner = "ljean";
|
pname = "modbus_tk";
|
||||||
repo = "modbus-tk";
|
inherit version;
|
||||||
rev = "refs/tags/${version}";
|
hash = "sha256-aQ+nu4bql4mSRl0tYci1rMY5zg6LgzoKqW1N0XLFZEo=";
|
||||||
hash = "sha256-zikfVMFdlOJvuKVQGEsK03i58X6BGFsGWGrGOJZGC0g=";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
build-system = [ setuptools ];
|
build-system = [ setuptools ];
|
||||||
|
|
||||||
dependencies = [ pyserial ];
|
dependencies = [ pyserial ];
|
||||||
|
|
||||||
nativeCheckInputs = [ pytestCheckHook ];
|
# Source no tagged anymore and PyPI doesn't ship tests
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
pythonImportsCheck = [ "modbus_tk" ];
|
pythonImportsCheck = [ "modbus_tk" ];
|
||||||
|
|
||||||
pytestFlagsArray = [ "tests/unittest_*.py" ];
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Module for simple Modbus interactions";
|
description = "Module for simple Modbus interactions";
|
||||||
homepage = "https://github.com/ljean/modbus-tk";
|
homepage = "https://github.com/ljean/modbus-tk";
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "proxy-py";
|
pname = "proxy-py";
|
||||||
version = "2.4.4";
|
version = "2.4.5";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.7";
|
disabled = pythonOlder "3.7";
|
||||||
@ -31,7 +31,7 @@ buildPythonPackage rec {
|
|||||||
owner = "abhinavsingh";
|
owner = "abhinavsingh";
|
||||||
repo = "proxy.py";
|
repo = "proxy.py";
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-QWwIbNt2MtRfQaX7uZJzYmS++2MH+gTjWO0aEKYSETI=";
|
hash = "sha256-pn4YYGntG9C8mhECb7PYgN5wwicdlPcZu6Xn2M3iIKA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -13,14 +13,14 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "pyfaidx";
|
pname = "pyfaidx";
|
||||||
version = "0.8.1.1";
|
version = "0.8.1.2";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.7";
|
disabled = pythonOlder "3.7";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
hash = "sha256-bwSCNSYZ8sxWADyiIyG9sNB2S2VnlbweQGKx+psIaGs=";
|
hash = "sha256-2EUkcEVbHnePk5aUR9uOok3rRiTHxAdpUWRZy2+HvDM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
build-system = [
|
build-system = [
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
buildPythonPackage,
|
buildPythonPackage,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
mock,
|
mock,
|
||||||
nose,
|
|
||||||
pexpect,
|
pexpect,
|
||||||
pyserial,
|
pyserial,
|
||||||
pytestCheckHook,
|
pytestCheckHook,
|
||||||
@ -13,40 +12,33 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "pygatt";
|
pname = "pygatt";
|
||||||
version = "4.0.5";
|
version = "5.0.0";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.5";
|
disabled = pythonOlder "3.10";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "peplin";
|
owner = "peplin";
|
||||||
repo = "pygatt";
|
repo = "pygatt";
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-DUZGsztZViVNZwmhXoRN5FOQ7BgUeI0SsYgCHlvsrv0=";
|
hash = "sha256-TMIqC+JvNOLU38a9jkacRAbdmAAd4UekFUDRoAWhHFo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
# Not support for Python < 3.4
|
|
||||||
substituteInPlace setup.py \
|
substituteInPlace setup.py \
|
||||||
--replace-fail "'enum-compat'" "" \
|
--replace-fail "setup_requires" "test_requires"
|
||||||
--replace-fail "'coverage >= 3.7.1'," "" \
|
|
||||||
--replace-fail "'nose >= 1.3.7'" ""
|
|
||||||
substituteInPlace tests/bgapi/test_bgapi.py \
|
|
||||||
--replace-fail "assertEquals" "assertEqual"
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
pythonRemoveDeps = [ "enum-compat" ];
|
||||||
|
|
||||||
build-system = [ setuptools ];
|
build-system = [ setuptools ];
|
||||||
|
|
||||||
dependencies = [ pyserial ];
|
dependencies = [ pyserial ];
|
||||||
|
|
||||||
optional-dependencies.GATTTOOL = [ pexpect ];
|
optional-dependencies.GATTTOOL = [ pexpect ];
|
||||||
|
|
||||||
# tests require nose
|
|
||||||
doCheck = pythonOlder "3.12";
|
|
||||||
|
|
||||||
nativeCheckInputs = [
|
nativeCheckInputs = [
|
||||||
mock
|
mock
|
||||||
nose
|
|
||||||
pytestCheckHook
|
pytestCheckHook
|
||||||
] ++ optional-dependencies.GATTTOOL;
|
] ++ optional-dependencies.GATTTOOL;
|
||||||
|
|
||||||
|
@ -1,28 +1,20 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
|
setuptools,
|
||||||
stdenv,
|
stdenv,
|
||||||
pythonPackages,
|
|
||||||
fetchPypi,
|
fetchPypi,
|
||||||
pkg-config,
|
pkg-config,
|
||||||
qmake,
|
libsForQt5,
|
||||||
qtbase,
|
|
||||||
qtsvg,
|
|
||||||
qtwebengine,
|
|
||||||
qtwebchannel,
|
|
||||||
qtdeclarative,
|
|
||||||
wrapQtAppsHook,
|
|
||||||
darwin,
|
darwin,
|
||||||
|
buildPythonPackage,
|
||||||
|
python,
|
||||||
|
isPy27,
|
||||||
|
pyqt5,
|
||||||
|
sip,
|
||||||
|
pyqt-builder,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (pythonPackages)
|
|
||||||
buildPythonPackage
|
|
||||||
python
|
|
||||||
isPy27
|
|
||||||
pyqt5
|
|
||||||
sip
|
|
||||||
pyqt-builder
|
|
||||||
;
|
|
||||||
inherit (darwin) autoSignDarwinBinariesHook;
|
inherit (darwin) autoSignDarwinBinariesHook;
|
||||||
in
|
in
|
||||||
buildPythonPackage (
|
buildPythonPackage (
|
||||||
@ -52,32 +44,33 @@ buildPythonPackage (
|
|||||||
nativeBuildInputs =
|
nativeBuildInputs =
|
||||||
[
|
[
|
||||||
pkg-config
|
pkg-config
|
||||||
qmake
|
libsForQt5.qmake
|
||||||
|
libsForQt5.wrapQtAppsHook
|
||||||
]
|
]
|
||||||
++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ sip ]
|
++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ sip ]
|
||||||
++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||||
python.pythonOnBuildForHost.pkgs.sip
|
python.pythonOnBuildForHost.pkgs.sip
|
||||||
]
|
]
|
||||||
++ [
|
++ [
|
||||||
qtbase
|
libsForQt5.qtbase
|
||||||
qtsvg
|
libsForQt5.qtsvg
|
||||||
qtwebengine
|
libsForQt5.qtwebengine
|
||||||
pyqt-builder
|
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 ];
|
++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook ];
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[
|
[
|
||||||
sip
|
sip
|
||||||
qtbase
|
libsForQt5.qtbase
|
||||||
qtsvg
|
libsForQt5.qtsvg
|
||||||
qtwebengine
|
libsForQt5.qtwebengine
|
||||||
]
|
]
|
||||||
++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||||
qtwebchannel
|
libsForQt5.qtwebchannel
|
||||||
qtdeclarative
|
libsForQt5.qtdeclarative
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = [ pyqt5 ];
|
propagatedBuildInputs = [ pyqt5 ];
|
||||||
@ -98,21 +91,21 @@ buildPythonPackage (
|
|||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
inherit wrapQtAppsHook;
|
inherit (libsForQt5) wrapQtAppsHook;
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = {
|
||||||
description = "Python bindings for Qt5";
|
description = "Python bindings for Qt5";
|
||||||
homepage = "http://www.riverbankcomputing.co.uk";
|
homepage = "http://www.riverbankcomputing.co.uk";
|
||||||
license = licenses.gpl3;
|
license = lib.licenses.gpl3;
|
||||||
hydraPlatforms = lib.lists.intersectLists qtwebengine.meta.platforms platforms.mesaPlatforms;
|
hydraPlatforms = lib.lists.intersectLists libsForQt5.qtwebengine.meta.platforms lib.platforms.mesaPlatforms;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
// lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) {
|
// lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) {
|
||||||
# TODO: figure out why the env hooks aren't adding these inclusions automatically
|
# TODO: figure out why the env hooks aren't adding these inclusions automatically
|
||||||
env.NIX_CFLAGS_COMPILE = lib.concatStringsSep " " [
|
env.NIX_CFLAGS_COMPILE = lib.concatStringsSep " " [
|
||||||
"-I${lib.getDev qtbase}/include/QtPrintSupport/"
|
"-I${lib.getDev libsForQt5.qtbase}/include/QtPrintSupport/"
|
||||||
"-I${lib.getDev qtwebchannel}/include/QtWebChannel/"
|
"-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 {
|
buildPythonPackage rec {
|
||||||
pname = "python-gitlab";
|
pname = "python-gitlab";
|
||||||
version = "4.8.0";
|
version = "4.9.0";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.7";
|
disabled = pythonOlder "3.7";
|
||||||
@ -24,7 +24,7 @@ buildPythonPackage rec {
|
|||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
pname = "python_gitlab";
|
pname = "python_gitlab";
|
||||||
inherit version;
|
inherit version;
|
||||||
hash = "sha256-wsTXsc1QPZBa/l38Dz9mGZNDYfdq6FXGzsmmZoZNN88=";
|
hash = "sha256-30TbtunJQefr+5JE5+1KpNuQ9cFkmMstE1uObn8Imho=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ setuptools ];
|
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,
|
lib,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
buildPythonPackage,
|
buildPythonPackage,
|
||||||
python3Packages,
|
|
||||||
pythonOlder,
|
pythonOlder,
|
||||||
|
pyqt5,
|
||||||
|
poppler-qt5,
|
||||||
|
pycups,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
python3Packages.buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "qpageview";
|
pname = "qpageview";
|
||||||
version = "0.6.2";
|
version = "0.6.2";
|
||||||
format = "setuptools";
|
format = "setuptools";
|
||||||
@ -20,7 +22,7 @@ python3Packages.buildPythonPackage rec {
|
|||||||
hash = "sha256-XFMTOD7ums8sbFHUViEI9q6/rCjUmEtXAdd3/OmLsHU=";
|
hash = "sha256-XFMTOD7ums8sbFHUViEI9q6/rCjUmEtXAdd3/OmLsHU=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [
|
propagatedBuildInputs = [
|
||||||
pyqt5
|
pyqt5
|
||||||
poppler-qt5
|
poppler-qt5
|
||||||
pycups
|
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 {
|
buildPythonPackage rec {
|
||||||
pname = "textual";
|
pname = "textual";
|
||||||
version = "0.75.0";
|
version = "0.72.0";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.8";
|
disabled = pythonOlder "3.8";
|
||||||
@ -39,7 +39,10 @@ buildPythonPackage rec {
|
|||||||
] ++ markdown-it-py.optional-dependencies.plugins ++ markdown-it-py.optional-dependencies.linkify;
|
] ++ markdown-it-py.optional-dependencies.plugins ++ markdown-it-py.optional-dependencies.linkify;
|
||||||
|
|
||||||
optional-dependencies = {
|
optional-dependencies = {
|
||||||
syntax = [ tree-sitter ] ++ lib.optionals (pythonOlder "3.12") [ tree-sitter-languages ];
|
syntax = [
|
||||||
|
tree-sitter
|
||||||
|
tree-sitter-languages
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeCheckInputs = [
|
nativeCheckInputs = [
|
||||||
@ -48,7 +51,8 @@ buildPythonPackage rec {
|
|||||||
pytestCheckHook
|
pytestCheckHook
|
||||||
syrupy
|
syrupy
|
||||||
time-machine
|
time-machine
|
||||||
] ++ lib.flatten (builtins.attrValues optional-dependencies);
|
tree-sitter
|
||||||
|
];
|
||||||
|
|
||||||
disabledTestPaths = [
|
disabledTestPaths = [
|
||||||
# Snapshot tests require syrupy<4
|
# Snapshot tests require syrupy<4
|
||||||
|
@ -59,7 +59,7 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "transformers";
|
pname = "transformers";
|
||||||
version = "4.43.4";
|
version = "4.44.0";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.8";
|
disabled = pythonOlder "3.8";
|
||||||
@ -68,7 +68,7 @@ buildPythonPackage rec {
|
|||||||
owner = "huggingface";
|
owner = "huggingface";
|
||||||
repo = "transformers";
|
repo = "transformers";
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-NgCYBBFQpXF5QZEmvPBjiJfcoDvCg+aWx9+ljAcqv6Q=";
|
hash = "sha256-i3KKfkYvKRYrs/kiwBJdyFzMiXKwyBEeUuZcHszip3k=";
|
||||||
};
|
};
|
||||||
|
|
||||||
build-system = [ setuptools ];
|
build-system = [ setuptools ];
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
{ lib
|
{
|
||||||
, buildPythonPackage
|
lib,
|
||||||
, fetchFromGitHub
|
buildPythonPackage,
|
||||||
, setuptools
|
fetchFromGitHub,
|
||||||
, wheel
|
setuptools,
|
||||||
, cython
|
cython,
|
||||||
, tree-sitter0_21
|
tree-sitter,
|
||||||
, pytestCheckHook
|
pytestCheckHook,
|
||||||
, python
|
python,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
@ -34,20 +34,14 @@ buildPythonPackage rec {
|
|||||||
|
|
||||||
build-system = [
|
build-system = [
|
||||||
setuptools
|
setuptools
|
||||||
wheel
|
|
||||||
cython
|
cython
|
||||||
];
|
];
|
||||||
dependencies = [
|
dependencies = [ tree-sitter ];
|
||||||
# https://github.com/grantjenks/py-tree-sitter-languages/issues/67
|
|
||||||
tree-sitter0_21
|
|
||||||
];
|
|
||||||
# Generate languages.so file (build won't fail without this, but tests will).
|
# Generate languages.so file (build won't fail without this, but tests will).
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
${python.pythonOnBuildForHost.interpreter} build.py
|
${python.pythonOnBuildForHost.interpreter} build.py
|
||||||
'';
|
'';
|
||||||
nativeCheckInputs = [
|
nativeCheckInputs = [ pytestCheckHook ];
|
||||||
pytestCheckHook
|
|
||||||
];
|
|
||||||
# Without cd $out, tests fail to import the compiled cython extensions.
|
# Without cd $out, tests fail to import the compiled cython extensions.
|
||||||
# Without copying the ./tests/ directory to $out, pytest won't detect the
|
# Without copying the ./tests/ directory to $out, pytest won't detect the
|
||||||
# tests and run them. See also:
|
# tests and run them. See also:
|
||||||
@ -64,5 +58,7 @@ buildPythonPackage rec {
|
|||||||
homepage = "https://github.com/grantjenks/py-tree-sitter-languages";
|
homepage = "https://github.com/grantjenks/py-tree-sitter-languages";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = with maintainers; [ doronbehar ];
|
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 {
|
buildPythonPackage rec {
|
||||||
pname = "tree-sitter0_21";
|
pname = "tree-sitter";
|
||||||
version = "0.21.3";
|
version = "0.21.3";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
@ -18,14 +18,14 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "ufo2ft";
|
pname = "ufo2ft";
|
||||||
version = "3.2.5";
|
version = "3.2.7";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.8";
|
disabled = pythonOlder "3.8";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
hash = "sha256-PUPk92wugtIZWXP8vq8bJNxqTDhDENKdNhW1kNEcL3E=";
|
hash = "sha256-fA5It0mr6sjAQECGPOsS//lZJ9OqKelfhdzV770sMHQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -57,7 +57,7 @@
|
|||||||
grpcio,
|
grpcio,
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
version = "0.15.0";
|
version = "0.15.1";
|
||||||
optional-dependencies = {
|
optional-dependencies = {
|
||||||
huggingflace = [
|
huggingflace = [
|
||||||
langdetect
|
langdetect
|
||||||
@ -100,7 +100,7 @@ buildPythonPackage {
|
|||||||
owner = "Unstructured-IO";
|
owner = "Unstructured-IO";
|
||||||
repo = "unstructured";
|
repo = "unstructured";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-O44zmD+giqnfrEoKjU/+AkDykZdn2jLjpm+X65Em2KY=";
|
hash = "sha256-zDlkqeP89O3u5Yir9Xi+Z6BpLd6r0QXJ563kc2krjAs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "zha-quirks";
|
pname = "zha-quirks";
|
||||||
version = "0.0.117";
|
version = "0.0.118";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.12";
|
disabled = pythonOlder "3.12";
|
||||||
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
|||||||
owner = "zigpy";
|
owner = "zigpy";
|
||||||
repo = "zha-device-handlers";
|
repo = "zha-device-handlers";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-uk1G8X5TLuA4spTrd+077wggCooqvqJZh3NIwC4/BFM=";
|
hash = "sha256-LudwIENP1KCX7+HwyklCUdAu5mRLDcnMEZBzbRH2FM0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "zha";
|
pname = "zha";
|
||||||
version = "0.0.23";
|
version = "0.0.27";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.12";
|
disabled = pythonOlder "3.12";
|
||||||
@ -35,7 +35,7 @@ buildPythonPackage rec {
|
|||||||
owner = "zigpy";
|
owner = "zigpy";
|
||||||
repo = "zha";
|
repo = "zha";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-a0rr8pJCoVtDR3iNCDpLZnapetzNHMj8uCu667lNcGE=";
|
hash = "sha256-urECZtYmwKWboF84SVTiUJthYW0hRBKL9kwRpWvcSoc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "zigpy-zigate";
|
pname = "zigpy-zigate";
|
||||||
version = "0.13.0";
|
version = "0.13.1";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.8";
|
disabled = pythonOlder "3.8";
|
||||||
@ -25,7 +25,7 @@ buildPythonPackage rec {
|
|||||||
owner = "zigpy";
|
owner = "zigpy";
|
||||||
repo = "zigpy-zigate";
|
repo = "zigpy-zigate";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-fLNUTrPR1bc6H2mpdHj6O4pbrfLTb3filBE4mSDhZn0=";
|
hash = "sha256-Mwccb0OQgSknH8prbFejkGRVI7ii/r9D87aRyQrGgWs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "zigpy-znp";
|
pname = "zigpy-znp";
|
||||||
version = "0.12.3";
|
version = "0.12.4";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.7";
|
disabled = pythonOlder "3.7";
|
||||||
@ -28,7 +28,7 @@ buildPythonPackage rec {
|
|||||||
owner = "zigpy";
|
owner = "zigpy";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-qrIYcGumOHu3/gG9MOyKngAhOkeZEmCgXIDDcghoYn0=";
|
hash = "sha256-5DuqM7MgntV/3WquR+0Cr/vIwYL35ZVpGlNZPj92jJ4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ setuptools ];
|
nativeBuildInputs = [ setuptools ];
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
cryptography,
|
cryptography,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
freezegun,
|
freezegun,
|
||||||
|
frozendict,
|
||||||
importlib-resources,
|
importlib-resources,
|
||||||
jsonschema,
|
jsonschema,
|
||||||
pycryptodome,
|
pycryptodome,
|
||||||
@ -26,7 +27,7 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "zigpy";
|
pname = "zigpy";
|
||||||
version = "0.65.0";
|
version = "0.65.2";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.8";
|
disabled = pythonOlder "3.8";
|
||||||
@ -35,7 +36,7 @@ buildPythonPackage rec {
|
|||||||
owner = "zigpy";
|
owner = "zigpy";
|
||||||
repo = "zigpy";
|
repo = "zigpy";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-CyVmMDZ+8B3SYRR6JKFeI/dyQbJk70/slm3hRV1f3ig=";
|
hash = "sha256-rNqo4NtIdg9MoOKde26/RUcfX/VYiVkNj97v/RJcB4E=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
@ -53,6 +54,7 @@ buildPythonPackage rec {
|
|||||||
aiosqlite
|
aiosqlite
|
||||||
crccheck
|
crccheck
|
||||||
cryptography
|
cryptography
|
||||||
|
frozendict
|
||||||
jsonschema
|
jsonschema
|
||||||
pyserial-asyncio
|
pyserial-asyncio
|
||||||
typing-extensions
|
typing-extensions
|
||||||
|
@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
buildNpmPackage rec {
|
buildNpmPackage rec {
|
||||||
pname = "eslint_d";
|
pname = "eslint_d";
|
||||||
version = "13.1.2";
|
version = "14.0.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "mantoni";
|
owner = "mantoni";
|
||||||
repo = "eslint_d.js";
|
repo = "eslint_d.js";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-2G6I6Tx6LqgZ5EpVw4ux/JXv+Iky6Coenbh51JoFg7Q=";
|
hash = "sha256-r0pb9qbWfyVUHuHrNhiYm+0zlF5WId3dH7QCubzZDts=";
|
||||||
};
|
};
|
||||||
|
|
||||||
npmDepsHash = "sha256-L6abWbSnxY6gGMXBjxobEg8cpl0p3lMST9T42QGk4yM=";
|
npmDepsHash = "sha256-0Db18y7MUnnnr8v+bBOUhGBCsZcZ9OGtGqSVH7/wYQc=";
|
||||||
|
|
||||||
dontNpmBuild = true;
|
dontNpmBuild = true;
|
||||||
|
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
lib,
|
||||||
mkKdeDerivation,
|
mkKdeDerivation,
|
||||||
|
substituteAll,
|
||||||
|
procps,
|
||||||
|
xsettingsd,
|
||||||
pkg-config,
|
pkg-config,
|
||||||
wrapGAppsHook3,
|
wrapGAppsHook3,
|
||||||
sass,
|
sass,
|
||||||
@ -11,7 +15,17 @@ mkKdeDerivation {
|
|||||||
|
|
||||||
# The gtkconfig KDED module will crash the daemon if the GSettings schemas
|
# The gtkconfig KDED module will crash the daemon if the GSettings schemas
|
||||||
# aren't found.
|
# 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 = ''
|
preConfigure = ''
|
||||||
NIX_CFLAGS_COMPILE+=" -DGSETTINGS_SCHEMAS_PATH=\"$GSETTINGS_SCHEMAS_PATH\""
|
NIX_CFLAGS_COMPILE+=" -DGSETTINGS_SCHEMAS_PATH=\"$GSETTINGS_SCHEMAS_PATH\""
|
||||||
'';
|
'';
|
||||||
@ -21,4 +35,10 @@ mkKdeDerivation {
|
|||||||
dontWrapGApps = true; # There is nothing to wrap
|
dontWrapGApps = true; # There is nothing to wrap
|
||||||
|
|
||||||
extraCmakeFlags = ["-DGLIB_SCHEMAS_DIR=${gsettings-desktop-schemas.out}/"];
|
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,
|
lib,
|
||||||
mkKdeDerivation,
|
mkKdeDerivation,
|
||||||
substituteAll,
|
substituteAll,
|
||||||
|
fontconfig,
|
||||||
xorg,
|
xorg,
|
||||||
|
lsof,
|
||||||
pkg-config,
|
pkg-config,
|
||||||
spirv-tools,
|
spirv-tools,
|
||||||
qtsvg,
|
qtsvg,
|
||||||
@ -19,10 +21,13 @@ mkKdeDerivation {
|
|||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
(substituteAll {
|
(substituteAll {
|
||||||
src = ./tool-paths.patch;
|
src = ./dependency-paths.patch;
|
||||||
xmessage = "${lib.getBin xorg.xmessage}/bin/xmessage";
|
fc-match = lib.getExe' fontconfig "fc-match";
|
||||||
xsetroot = "${lib.getBin xorg.xsetroot}/bin/xsetroot";
|
lsof = lib.getExe lsof;
|
||||||
qdbus = "${lib.getBin qttools}/bin/qdbus";
|
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
|
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"];
|
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";
|
pname = "frescobaldi";
|
||||||
version = "3.3.0";
|
version = "3.3.0";
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ buildPythonApplication rec {
|
|||||||
sha256 = "sha256-Q6ruthNcpjLlYydUetkuTECiCIzu055bw40O8BPGq/A=";
|
sha256 = "sha256-Q6ruthNcpjLlYydUetkuTECiCIzu055bw40O8BPGq/A=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [
|
propagatedBuildInputs = with python311Packages; [
|
||||||
qpageview
|
qpageview
|
||||||
lilypond
|
lilypond
|
||||||
pygame
|
pygame
|
||||||
@ -22,7 +22,7 @@ buildPythonApplication rec {
|
|||||||
pyqtwebengine
|
pyqtwebengine
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
|
nativeBuildInputs = [ python311Packages.pyqtwebengine.wrapQtAppsHook ];
|
||||||
|
|
||||||
# Needed because source is fetched from git
|
# Needed because source is fetched from git
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
|
@ -15,12 +15,12 @@ callPackage ./generic.nix args {
|
|||||||
# this attribute is the correct one for this package.
|
# this attribute is the correct one for this package.
|
||||||
kernelModuleAttribute = "zfs_2_2";
|
kernelModuleAttribute = "zfs_2_2";
|
||||||
# check the release notes for compatible kernels
|
# 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.
|
# this package should point to the latest release.
|
||||||
version = "2.2.4";
|
version = "2.2.5";
|
||||||
|
|
||||||
tests = [
|
tests = [
|
||||||
nixosTests.zfs.installer
|
nixosTests.zfs.installer
|
||||||
@ -29,5 +29,5 @@ callPackage ./generic.nix args {
|
|||||||
|
|
||||||
maintainers = with lib.maintainers; [ adamcstephens amarshall ];
|
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
|
# IMPORTANT: Always use a tagged release candidate or commits from the
|
||||||
# zfs-<version>-staging branch, because this is tested by the OpenZFS
|
# zfs-<version>-staging branch, because this is tested by the OpenZFS
|
||||||
# maintainers.
|
# maintainers.
|
||||||
version = "2.2.4-unstable-2024-07-15";
|
version = "2.2.5";
|
||||||
rev = "/54ef0fdf60a8e7633c38cb46e1f5bcfcec792f4e";
|
# rev = "";
|
||||||
|
|
||||||
isUnstable = true;
|
isUnstable = true;
|
||||||
tests = [
|
tests = [
|
||||||
nixosTests.zfs.unstable
|
nixosTests.zfs.unstable
|
||||||
];
|
];
|
||||||
|
|
||||||
# 6.10 patches approved+merged to the default branch, not in staging yet
|
hash = "sha256-BkwcNPk+jX8CXp5xEVrg4THof7o/5j8RY2SY6+IPNTg=";
|
||||||
# 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=";
|
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,9 @@ buildPythonPackage rec {
|
|||||||
hash = "sha256-GmbIqO+03LgbUxJ1nTStXrYN3t2MfvzbeYRAipfTW1o=";
|
hash = "sha256-GmbIqO+03LgbUxJ1nTStXrYN3t2MfvzbeYRAipfTW1o=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ django-mailman3 readme-renderer ];
|
propagatedBuildInputs = [
|
||||||
|
django-mailman3 readme-renderer
|
||||||
|
] ++ readme-renderer.optional-dependencies.md;
|
||||||
nativeCheckInputs = [ beautifulsoup4 vcrpy mock ];
|
nativeCheckInputs = [ beautifulsoup4 vcrpy mock ];
|
||||||
|
|
||||||
# Tries to connect to database.
|
# Tries to connect to database.
|
||||||
|
@ -29,10 +29,6 @@ lib.fix (self: python3.override {
|
|||||||
hash = "sha256-WF3FFrnrBCphnvCjnD19Vf6BvbTfCaUsnN3g0Hvxqn0=";
|
hash = "sha256-WF3FFrnrBCphnvCjnD19Vf6BvbTfCaUsnN3g0Hvxqn0=";
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
readme-renderer = super.readme-renderer.overridePythonAttrs (_: {
|
|
||||||
propagatedBuildInputs = [ self.cmarkgfm ];
|
|
||||||
});
|
|
||||||
})
|
})
|
||||||
|
|
||||||
overlay;
|
overlay;
|
||||||
|
@ -38,7 +38,18 @@ in phpPackage.buildComposerProject rec {
|
|||||||
php = phpPackage;
|
php = phpPackage;
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
graphviz
|
||||||
|
ipmitool
|
||||||
|
libvirt
|
||||||
|
monitoring-plugins
|
||||||
|
mtr
|
||||||
|
net-snmp
|
||||||
|
nfdump
|
||||||
|
nmap
|
||||||
|
rrdtool
|
||||||
|
system-sendmail
|
||||||
unixtools.whereis
|
unixtools.whereis
|
||||||
|
whois
|
||||||
(python3.withPackages (ps: with ps; [
|
(python3.withPackages (ps: with ps; [
|
||||||
pymysql
|
pymysql
|
||||||
python-dotenv
|
python-dotenv
|
||||||
@ -80,13 +91,15 @@ in phpPackage.buildComposerProject rec {
|
|||||||
--replace '"default": "/usr/bin/snmpwalk",' '"default": "${net-snmp}/bin/snmpwalk",' \
|
--replace '"default": "/usr/bin/snmpwalk",' '"default": "${net-snmp}/bin/snmpwalk",' \
|
||||||
--replace '"default": "/usr/bin/virsh",' '"default": "${libvirt}/bin/virsh",' \
|
--replace '"default": "/usr/bin/virsh",' '"default": "${libvirt}/bin/virsh",' \
|
||||||
--replace '"default": "/usr/bin/whois",' '"default": "${whois}/bin/whois",' \
|
--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",'
|
--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/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/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/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
|
wrapProgram $out/daily.sh --prefix PATH : ${phpPackage}/bin
|
||||||
|
|
||||||
rm -rf $out/logs $out/rrd $out/bootstrap/cache $out/storage $out/.env
|
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";
|
NIX_CFLAGS_LINK = toString args.env.NIX_CFLAGS_LINK + " -static";
|
||||||
};
|
};
|
||||||
} else {
|
} 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)) {
|
} // lib.optionalAttrs (!(args.dontAddStaticConfigureFlags or false)) {
|
||||||
configureFlags = (args.configureFlags or []) ++ [
|
configureFlags = (args.configureFlags or []) ++ [
|
||||||
"--disable-shared" # brrr...
|
"--disable-shared" # brrr...
|
||||||
|
@ -356,7 +356,7 @@ else let
|
|||||||
then attrs.name + hostSuffix
|
then attrs.name + hostSuffix
|
||||||
else
|
else
|
||||||
# we cannot coerce null to a string below
|
# 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}"
|
"${attrs.pname}${staticMarker}${hostSuffix}-${attrs.version}"
|
||||||
);
|
);
|
||||||
}) // {
|
}) // {
|
||||||
@ -572,14 +572,17 @@ let
|
|||||||
checkedEnv =
|
checkedEnv =
|
||||||
let
|
let
|
||||||
overlappingNames = attrNames (builtins.intersectAttrs env derivationArg);
|
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
|
in
|
||||||
assert assertMsg envIsExportable
|
assert assertMsg envIsExportable
|
||||||
"When using structured attributes, `env` must be an attribute set of environment variables.";
|
"When using structured attributes, `env` must be an attribute set of environment variables.";
|
||||||
assert assertMsg (overlappingNames == [ ])
|
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
|
mapAttrs
|
||||||
(n: v: assert assertMsg (isString v || isBool v || isInt v || isDerivation v)
|
(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;
|
env;
|
||||||
|
|
||||||
# Fixed-output derivations may not reference other paths, which means that
|
# Fixed-output derivations may not reference other paths, which means that
|
||||||
|
@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
|
|||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
maintainers = with maintainers; [ romildo ];
|
maintainers = with maintainers; [ romildo ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
mainProgram = "xsettingsd";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,19 +1,20 @@
|
|||||||
{ lib
|
{
|
||||||
, fetchFromGitLab
|
lib,
|
||||||
, mkDerivation
|
fetchFromGitLab,
|
||||||
, qtbase
|
mkDerivation,
|
||||||
, cmake
|
qtbase,
|
||||||
, kconfig
|
cmake,
|
||||||
, kio
|
kconfig,
|
||||||
, kiconthemes
|
kio,
|
||||||
, kxmlgui
|
kiconthemes,
|
||||||
, ki18n
|
kxmlgui,
|
||||||
, kguiaddons
|
ki18n,
|
||||||
, extra-cmake-modules
|
kguiaddons,
|
||||||
, boost
|
extra-cmake-modules,
|
||||||
, shared-mime-info
|
boost,
|
||||||
, rrdtool
|
shared-mime-info,
|
||||||
, breeze-icons
|
rrdtool,
|
||||||
|
breeze-icons,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
@ -26,6 +27,10 @@ mkDerivation rec {
|
|||||||
hash = "sha256-bUVL5eRQ5UkSZo562pnyEcj0fVoSC5WHRq4BfN67jEM=";
|
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 = [
|
nativeBuildInputs = [
|
||||||
cmake
|
cmake
|
||||||
extra-cmake-modules
|
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
|
lib,
|
||||||
, autoreconfHook
|
stdenv,
|
||||||
, curl
|
autoreconfHook,
|
||||||
, expat
|
curl,
|
||||||
, fetchFromGitHub
|
expat,
|
||||||
, git
|
fetchFromGitHub,
|
||||||
, json_c
|
fetchpatch,
|
||||||
, libcap
|
git,
|
||||||
, libmaxminddb
|
json_c,
|
||||||
, libmysqlclient
|
libcap,
|
||||||
, libpcap
|
libmaxminddb,
|
||||||
, libsodium
|
libmysqlclient,
|
||||||
, ndpi
|
libpcap,
|
||||||
, net-snmp
|
libsodium,
|
||||||
, openssl
|
ndpi,
|
||||||
, pkg-config
|
net-snmp,
|
||||||
, rdkafka
|
openssl,
|
||||||
, gtest
|
pkg-config,
|
||||||
, rrdtool
|
rdkafka,
|
||||||
, hiredis
|
gtest,
|
||||||
, sqlite
|
rrdtool,
|
||||||
, which
|
hiredis,
|
||||||
, zeromq
|
sqlite,
|
||||||
|
which,
|
||||||
|
zeromq,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
@ -36,6 +38,11 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
fetchSubmodules = true;
|
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 = ''
|
preConfigure = ''
|
||||||
substituteInPlace Makefile.in \
|
substituteInPlace Makefile.in \
|
||||||
--replace "/bin/rm" "rm"
|
--replace "/bin/rm" "rm"
|
||||||
|
@ -7968,7 +7968,7 @@ with pkgs;
|
|||||||
wxGTK = wxGTK32;
|
wxGTK = wxGTK32;
|
||||||
};
|
};
|
||||||
|
|
||||||
frescobaldi = python3Packages.callPackage ../misc/frescobaldi { };
|
frescobaldi = callPackage ../misc/frescobaldi { };
|
||||||
|
|
||||||
freshfetch = callPackage ../tools/misc/freshfetch {
|
freshfetch = callPackage ../tools/misc/freshfetch {
|
||||||
inherit (darwin.apple_sdk.frameworks) AppKit CoreFoundation DiskArbitration Foundation IOKit;
|
inherit (darwin.apple_sdk.frameworks) AppKit CoreFoundation DiskArbitration Foundation IOKit;
|
||||||
@ -12295,8 +12295,6 @@ with pkgs;
|
|||||||
|
|
||||||
rpmextract = callPackage ../tools/archivers/rpmextract { };
|
rpmextract = callPackage ../tools/archivers/rpmextract { };
|
||||||
|
|
||||||
rrdtool = callPackage ../tools/misc/rrdtool { };
|
|
||||||
|
|
||||||
rscw = callPackage ../applications/radio/rscw { };
|
rscw = callPackage ../applications/radio/rscw { };
|
||||||
|
|
||||||
rset = callPackage ../tools/admin/rset { };
|
rset = callPackage ../tools/admin/rset { };
|
||||||
|
@ -121,6 +121,8 @@ let
|
|||||||
smpl = callPackage ../development/coq-modules/smpl { };
|
smpl = callPackage ../development/coq-modules/smpl { };
|
||||||
smtcoq = callPackage ../development/coq-modules/smtcoq { };
|
smtcoq = callPackage ../development/coq-modules/smtcoq { };
|
||||||
ssprove = callPackage ../development/coq-modules/ssprove {};
|
ssprove = callPackage ../development/coq-modules/ssprove {};
|
||||||
|
stalmarck-tactic = callPackage ../development/coq-modules/stalmarck {};
|
||||||
|
stalmarck = self.stalmarck-tactic.stalmarck;
|
||||||
stdpp = callPackage ../development/coq-modules/stdpp { };
|
stdpp = callPackage ../development/coq-modules/stdpp { };
|
||||||
StructTact = callPackage ../development/coq-modules/StructTact {};
|
StructTact = callPackage ../development/coq-modules/StructTact {};
|
||||||
tlc = callPackage ../development/coq-modules/tlc {};
|
tlc = callPackage ../development/coq-modules/tlc {};
|
||||||
|
@ -10403,6 +10403,8 @@ self: super: with self; {
|
|||||||
|
|
||||||
pytlv = callPackage ../development/python-modules/pytlv { };
|
pytlv = callPackage ../development/python-modules/pytlv { };
|
||||||
|
|
||||||
|
pywebcopy = callPackage ../development/python-modules/pywebcopy { };
|
||||||
|
|
||||||
python-codon-tables = callPackage ../development/python-modules/python-codon-tables { };
|
python-codon-tables = callPackage ../development/python-modules/python-codon-tables { };
|
||||||
|
|
||||||
python-creole = callPackage ../development/python-modules/python-creole { };
|
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-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-ffmpeg = callPackage ../development/python-modules/python-ffmpeg { };
|
||||||
|
|
||||||
python-flirt = callPackage ../development/python-modules/python-flirt { };
|
python-flirt = callPackage ../development/python-modules/python-flirt { };
|
||||||
@ -12029,9 +12033,7 @@ self: super: with self; {
|
|||||||
|
|
||||||
pyqtgraph = callPackage ../development/python-modules/pyqtgraph { };
|
pyqtgraph = callPackage ../development/python-modules/pyqtgraph { };
|
||||||
|
|
||||||
pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine {
|
pyqtwebengine = callPackage ../development/python-modules/pyqtwebengine { };
|
||||||
pythonPackages = self;
|
|
||||||
};
|
|
||||||
|
|
||||||
pyquery = callPackage ../development/python-modules/pyquery { };
|
pyquery = callPackage ../development/python-modules/pyquery { };
|
||||||
|
|
||||||
@ -13684,6 +13686,8 @@ self: super: with self; {
|
|||||||
|
|
||||||
rich-theme-manager = callPackage ../development/python-modules/rich-theme-manager { };
|
rich-theme-manager = callPackage ../development/python-modules/rich-theme-manager { };
|
||||||
|
|
||||||
|
riden = callPackage ../development/python-modules/riden { };
|
||||||
|
|
||||||
ring-doorbell = callPackage ../development/python-modules/ring-doorbell { };
|
ring-doorbell = callPackage ../development/python-modules/ring-doorbell { };
|
||||||
|
|
||||||
rio-tiler = callPackage ../development/python-modules/rio-tiler { };
|
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-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 { };
|
tree-sitter-html = callPackage ../development/python-modules/tree-sitter-html { };
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user