Merge remote-tracking branch 'origin/staging-next' into staging

Conflicts:
-	pkgs/development/python-modules/uvcclient/default.nix
-	pkgs/development/tools/rust/rust-analyzer/default.nix
This commit is contained in:
Martin Weinelt 2024-07-18 12:35:18 +02:00
commit 983077457f
No known key found for this signature in database
GPG Key ID: 87C1E9888F856759
155 changed files with 2421 additions and 3070 deletions

View File

@ -138,3 +138,6 @@ acd0e3898feb321cb9a71a0fd376f1157d0f4553
# azure-cli: move to by-name, nixfmt #325950
96cd538b68bd1d0a0a37979356d669abbba32ebc
# poptracker: format with nixfmt-rfc-style (#326697)
ff5c8f6cc3d1f2e017e86d50965c14b71f00567b

View File

@ -159,6 +159,12 @@
github = "13r0ck";
githubId = 58987761;
};
_21CSM = {
name = "21CSM";
email = "21CSM@tutanota.com";
github = "21CSM";
githubId = 81891917;
};
_21eleven = {
name = "Noah Lidell";
email = "noahlidell@gmail.com";
@ -10149,6 +10155,12 @@
githubId = 12773748;
matrix = "@j.r:chaos.jetzt";
};
jukremer = {
email = "nixpkgs@jankremer.eu";
github = "jukremer";
githubId = 79042825;
name = "Jan Kremer";
};
juliendehos = {
email = "dehos@lisic.univ-littoral.fr";
github = "juliendehos";

View File

@ -29,8 +29,12 @@
- [Radicle](https://radicle.xyz), an open source, peer-to-peer code collaboration stack built on Git. Available as [services.radicle](#opt-services.radicle.enable).
- [ddns-updater](https://github.com/qdm12/ddns-updater), a service to update DNS records periodically with WebUI for many DNS providers. Available as [services.ddns-updater](#opt-services.ddns-updater.enable).
- [Renovate](https://github.com/renovatebot/renovate), a dependency updating tool for various git forges and language ecosystems. Available as [services.renovate](#opt-services.renovate.enable).
- [Music Assistant](https://music-assistant.io/), a music library manager for your offline and online music sources which can easily stream your favourite music to a wide range of supported players. Available as [services.music-assistant](#opt-services.music-assistant.enable).
- [wg-access-server](https://github.com/freifunkMUC/wg-access-server/), an all-in-one WireGuard VPN solution with a web ui for connecting devices. Available at [services.wg-access-server](#opt-services.wg-access-server.enable).
- [Envision](https://gitlab.com/gabmus/envision), a UI for building, configuring and running Monado, the open source OpenXR runtime. Available as [programs.envision](#opt-programs.envision.enable).
@ -178,6 +182,8 @@
- `gitlab` has been updated from 16.x to 17.x and requires at least `postgresql` 14.9, as stated in the [documentation](https://docs.gitlab.com/17.1/ee/install/requirements.html#postgresql-requirements). Check the [upgrade guide](#module-services-postgres-upgrading) in the NixOS manual on how to upgrade your PostgreSQL installation.
- The `replay-sorcery` package and module was removed as it unmaintained upstream. Consider using `gpu-screen-recorder` or `obs-studio` instead.
- `zx` was updated to v8, which introduces several breaking changes.
See the [v8 changelog](https://github.com/google/zx/releases/tag/8.0.0) for more information.

View File

@ -1,9 +1,7 @@
{ config, lib, pkgs, utils, ... }:
with utils;
with lib;
let
inherit (lib) mkIf mkOption types;
randomEncryptionCoerce = enable: { inherit enable; };
@ -188,7 +186,7 @@ let
config = {
device = mkIf options.label.isDefined
"/dev/disk/by-label/${config.label}";
deviceName = lib.replaceStrings ["\\"] [""] (escapeSystemdPath config.device);
deviceName = lib.replaceStrings ["\\"] [""] (utils.escapeSystemdPath config.device);
realDevice = if config.randomEncryption.enable then "/dev/mapper/${config.deviceName}" else config.device;
};
@ -224,8 +222,8 @@ in
};
config = mkIf ((length config.swapDevices) != 0) {
assertions = map (sw: {
config = mkIf ((lib.length config.swapDevices) != 0) {
assertions = lib.map (sw: {
assertion = sw.randomEncryption.enable -> builtins.match "/dev/disk/by-(uuid|label)/.*" sw.device == null;
message = ''
You cannot use swap device "${sw.device}" with randomEncryption enabled.
@ -235,22 +233,22 @@ in
}) config.swapDevices;
warnings =
concatMap (sw:
if sw.size != null && hasPrefix "/dev/" sw.device
lib.concatMap (sw:
if sw.size != null && lib.hasPrefix "/dev/" sw.device
then [ "Setting the swap size of block device ${sw.device} has no effect" ]
else [ ])
config.swapDevices;
system.requiredKernelConfig = with config.lib.kernelConfig; [
(isYes "SWAP")
system.requiredKernelConfig = [
(config.lib.kernelConfig.isYes "SWAP")
];
# Create missing swapfiles.
systemd.services =
let
createSwapDevice = sw:
let realDevice' = escapeSystemdPath sw.realDevice;
in nameValuePair "mkswap-${sw.deviceName}"
let realDevice' = utils.escapeSystemdPath sw.realDevice;
in lib.nameValuePair "mkswap-${sw.deviceName}"
{ description = "Initialisation of swap device ${sw.device}";
# The mkswap service fails for file-backed swap devices if the
# loop module has not been loaded before the service runs.
@ -261,13 +259,13 @@ in
before = [ "${realDevice'}.swap" "shutdown.target"];
conflicts = [ "shutdown.target" ];
path = [ pkgs.util-linux pkgs.e2fsprogs ]
++ optional sw.randomEncryption.enable pkgs.cryptsetup;
++ lib.optional sw.randomEncryption.enable pkgs.cryptsetup;
environment.DEVICE = sw.device;
script =
''
${optionalString (sw.size != null) ''
${lib.optionalString (sw.size != null) ''
currentSize=$(( $(stat -c "%s" "$DEVICE" 2>/dev/null || echo 0) / 1024 / 1024 ))
if [[ ! -b "$DEVICE" && "${toString sw.size}" != "$currentSize" ]]; then
# Disable CoW for CoW based filesystems like BTRFS.
@ -275,15 +273,15 @@ in
chattr +C "$DEVICE" 2>/dev/null || true
dd if=/dev/zero of="$DEVICE" bs=1M count=${toString sw.size}
${optionalString (!sw.randomEncryption.enable) "mkswap ${sw.realDevice}"}
${lib.optionalString (!sw.randomEncryption.enable) "mkswap ${sw.realDevice}"}
fi
''}
${optionalString sw.randomEncryption.enable ''
${lib.optionalString sw.randomEncryption.enable ''
cryptsetup plainOpen -c ${sw.randomEncryption.cipher} -d ${sw.randomEncryption.source} \
${concatStringsSep " \\\n" (flatten [
(optional (sw.randomEncryption.sectorSize != null) "--sector-size=${toString sw.randomEncryption.sectorSize}")
(optional (sw.randomEncryption.keySize != null) "--key-size=${toString sw.randomEncryption.keySize}")
(optional sw.randomEncryption.allowDiscards "--allow-discards")
${lib.concatStringsSep " \\\n" (lib.flatten [
(lib.optional (sw.randomEncryption.sectorSize != null) "--sector-size=${toString sw.randomEncryption.sectorSize}")
(lib.optional (sw.randomEncryption.keySize != null) "--key-size=${toString sw.randomEncryption.keySize}")
(lib.optional sw.randomEncryption.allowDiscards "--allow-discards")
])} ${sw.device} ${sw.deviceName}
mkswap ${sw.realDevice}
''}
@ -295,12 +293,12 @@ in
Type = "oneshot";
RemainAfterExit = sw.randomEncryption.enable;
UMask = "0177";
ExecStop = optionalString sw.randomEncryption.enable "${pkgs.cryptsetup}/bin/cryptsetup luksClose ${sw.deviceName}";
ExecStop = lib.optionalString sw.randomEncryption.enable "${pkgs.cryptsetup}/bin/cryptsetup luksClose ${sw.deviceName}";
};
restartIfChanged = false;
};
in listToAttrs (map createSwapDevice (filter (sw: sw.size != null || sw.randomEncryption.enable) config.swapDevices));
in lib.listToAttrs (lib.map createSwapDevice (lib.filter (sw: sw.size != null || sw.randomEncryption.enable) config.swapDevices));
};

View File

@ -376,6 +376,7 @@
./services/audio/mopidy.nix
./services/audio/mpd.nix
./services/audio/mpdscribble.nix
./services/audio/music-assistant.nix
./services/audio/mympd.nix
./services/audio/navidrome.nix
./services/audio/networkaudiod.nix
@ -991,6 +992,7 @@
./services/networking/dante.nix
./services/networking/deconz.nix
./services/networking/ddclient.nix
./services/networking/ddns-updater.nix
./services/networking/dhcpcd.nix
./services/networking/dnscache.nix
./services/networking/dnscrypt-proxy2.nix
@ -1346,7 +1348,6 @@
./services/video/frigate.nix
./services/video/mirakurun.nix
./services/video/photonvision.nix
./services/video/replay-sorcery.nix
./services/video/mediamtx.nix
./services/video/unifi-video.nix
./services/video/v4l2-relayd.nix

View File

@ -4,7 +4,7 @@ let optionsGlobal = options; in
let
inherit (lib.attrsets) attrNames attrValues mapAttrsToList removeAttrs;
inherit (lib.lists) all allUnique concatLists elem isList map;
inherit (lib.lists) all allUnique concatLists concatMap elem isList map;
inherit (lib.modules) mkDefault mkIf;
inherit (lib.options) mkEnableOption mkOption mkPackageOption;
inherit (lib.strings) concatLines match optionalString toLower;
@ -231,7 +231,7 @@ let
# Turn a key-value pair from the server options attrset
# into zero (value==null), one (scalar value) or
# more (value is list) configuration stanza lines.
if isList value then map (makeDsmSysLines key) value else # recurse into list
if isList value then concatMap (makeDsmSysLines key) value else # recurse into list
if value == null then [ ] else # skip `null` value
[ (" ${key}${
if value == true then "" else # just output key if value is `true`

View File

@ -85,6 +85,7 @@ in
'')
(mkRemovedOptionModule [ "services" "quagga" ] "the corresponding package has been removed from nixpkgs")
(mkRemovedOptionModule [ "services" "railcar" ] "the corresponding package has been removed from nixpkgs")
(mkRemovedOptionModule [ "services" "replay-sorcery" ] "the corresponding package has been removed from nixpkgs as it is unmaintained upstream. Consider using `gpu-screen-recorder` or `obs-studio` instead.")
(mkRemovedOptionModule [ "services" "seeks" ] "")
(mkRemovedOptionModule [ "services" "ssmtp" ] ''
The ssmtp package and the corresponding module have been removed due to

View File

@ -0,0 +1,113 @@
{
config,
lib,
pkgs,
utils,
...
}:
let
inherit (lib)
mkIf
mkEnableOption
mkOption
mkPackageOption
types
;
inherit (types)
listOf
enum
str
;
cfg = config.services.music-assistant;
finalPackage = cfg.package.override {
inherit (cfg) providers;
};
in
{
meta.buildDocsInSandbox = false;
options.services.music-assistant = {
enable = mkEnableOption "Music Assistant";
package = mkPackageOption pkgs "music-assistant" { };
extraOptions = mkOption {
type = listOf str;
default = [ "--config" "/var/lib/music-assistant" ];
example = [
"--log-level"
"DEBUG"
];
description = ''
List of extra options to pass to the music-assistant executable.
'';
};
providers = mkOption {
type = listOf (enum cfg.package.providerNames);
default = [];
example = [
"opensubsonic"
"snapcast"
];
description = ''
List of provider names for which dependencies will be installed.
'';
};
};
config = mkIf cfg.enable {
systemd.services.music-assistant = {
description = "Music Assistant";
documentation = [ "https://music-assistant.io" ];
wantedBy = [ "multi-user.target" ];
environment = {
HOME = "/var/lib/music-assistant";
PYTHONPATH = finalPackage.pythonPath;
};
serviceConfig = {
ExecStart = utils.escapeSystemdExecArgs ([
(lib.getExe cfg.package)
] ++ cfg.extraOptions);
DynamicUser = true;
StateDirectory = "music-assistant";
AmbientCapabilities = "";
CapabilityBoundingSet = [ "" ];
DevicePolicy = "closed";
LockPersonality = true;
MemoryDenyWriteExecute = true;
ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
"AF_NETLINK"
];
RestrictNamespaces = true;
RestrictRealtime = true;
SystemCallArchitectures = "native";
SystemCallFilter = [
"@system-service"
"~@privileged @resources"
];
RestrictSUIDSGID = true;
UMask = "0077";
};
};
};
}

View File

@ -0,0 +1,46 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.ddns-updater;
in
{
options.services.ddns-updater = {
enable = lib.mkEnableOption "Container to update DNS records periodically with WebUI for many DNS providers";
package = lib.mkPackageOption pkgs "ddns-updater" { };
environment = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
description = "Environment variables to be set for the ddns-updater service. DATADIR is ignored to enable using systemd DynamicUser. For full list see https://github.com/qdm12/ddns-updater";
default = { };
};
};
config = lib.mkIf cfg.enable {
systemd.services.ddns-updater = {
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
environment = cfg.environment // {
DATADIR = "%S/ddns-updater";
};
unitConfig = {
Description = "DDNS-updater service";
};
serviceConfig = {
TimeoutSec = "5min";
ExecStart = lib.getExe cfg.package;
RestartSec = 30;
DynamicUser = true;
StateDirectory = "ddns-updater";
Restart = "on-failure";
};
};
};
}

View File

@ -51,6 +51,14 @@ in
example = literalExpression "./tika/tika-config.xml";
};
enableOcr = mkOption {
type = types.bool;
default = true;
description = ''
Whether to enable OCR support by adding the `tesseract` package as a dependency.
'';
};
openFirewall = mkOption {
type = types.bool;
default = false;
@ -69,14 +77,20 @@ in
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
Type = "simple";
serviceConfig =
let
package = cfg.package.override { inherit (cfg) enableOcr; };
in
{
Type = "simple";
ExecStart = "${getExe cfg.package} --host ${cfg.listenAddress} --port ${toString cfg.port} ${lib.optionalString (cfg.configFile != null) "--config ${cfg.configFile}"}";
DynamicUser = true;
StateDirectory = "tika";
CacheDirectory = "tika";
};
ExecStart = "${getExe package} --host ${cfg.listenAddress} --port ${toString cfg.port} ${
lib.optionalString (cfg.configFile != null) "--config ${cfg.configFile}"
}";
DynamicUser = true;
StateDirectory = "tika";
CacheDirectory = "tika";
};
};
networking.firewall = mkIf cfg.openFirewall { allowedTCPPorts = [ cfg.port ]; };

View File

@ -1,72 +0,0 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.replay-sorcery;
configFile = generators.toKeyValue {} cfg.settings;
in
{
options = with types; {
services.replay-sorcery = {
enable = mkEnableOption "the ReplaySorcery service for instant-replays";
enableSysAdminCapability = mkEnableOption ''
the system admin capability to support hardware accelerated
video capture. This is equivalent to running ReplaySorcery as
root, so use with caution'';
autoStart = mkOption {
type = bool;
default = false;
description = "Automatically start ReplaySorcery when graphical-session.target starts.";
};
settings = mkOption {
type = attrsOf (oneOf [ str int ]);
default = {};
description = "System-wide configuration for ReplaySorcery (/etc/replay-sorcery.conf).";
example = literalExpression ''
{
videoInput = "hwaccel"; # requires `services.replay-sorcery.enableSysAdminCapability = true`
videoFramerate = 60;
}
'';
};
};
};
config = mkIf cfg.enable {
environment = {
systemPackages = [ pkgs.replay-sorcery ];
etc."replay-sorcery.conf".text = configFile;
};
security.wrappers = mkIf cfg.enableSysAdminCapability {
replay-sorcery = {
owner = "root";
group = "root";
capabilities = "cap_sys_admin+ep";
source = "${pkgs.replay-sorcery}/bin/replay-sorcery";
};
};
systemd = {
packages = [ pkgs.replay-sorcery ];
user.services.replay-sorcery = {
wantedBy = mkIf cfg.autoStart [ "graphical-session.target" ];
partOf = mkIf cfg.autoStart [ "graphical-session.target" ];
serviceConfig = {
ExecStart = mkIf cfg.enableSysAdminCapability [
"" # Tell systemd to clear the existing ExecStart list, to prevent appending to it.
"${config.security.wrapperDir}/replay-sorcery"
];
};
};
};
};
meta = {
maintainers = with maintainers; [ kira-bruneau ];
};
}

View File

@ -1,9 +1,31 @@
{ config, lib, options, pkgs, ... }:
{
config,
lib,
options,
pkgs,
...
}:
let
inherit (lib) mkDefault mkEnableOption mkPackageOption mkForce mkIf mkMerge mkOption types;
inherit (lib) literalExpression mapAttrs optionalString versionAtLeast;
inherit (lib)
mkDefault
mkEnableOption
mkPackageOption
mkRenamedOptionModule
mkForce
mkIf
mkMerge
mkOption
types
;
inherit (lib)
literalExpression
mapAttrs
optionalString
optionals
versionAtLeast
;
cfg = config.services.zabbixWeb;
opt = options.services.zabbixWeb;
@ -17,13 +39,25 @@ let
<?php
// Zabbix GUI configuration file.
global $DB;
$DB['TYPE'] = '${ { mysql = "MYSQL"; pgsql = "POSTGRESQL"; oracle = "ORACLE"; }.${cfg.database.type} }';
$DB['TYPE'] = '${
{
mysql = "MYSQL";
pgsql = "POSTGRESQL";
oracle = "ORACLE";
}
.${cfg.database.type}
}';
$DB['SERVER'] = '${cfg.database.host}';
$DB['PORT'] = '${toString cfg.database.port}';
$DB['DATABASE'] = '${cfg.database.name}';
$DB['USER'] = '${cfg.database.user}';
# NOTE: file_get_contents adds newline at the end of returned string
$DB['PASSWORD'] = ${if cfg.database.passwordFile != null then "trim(file_get_contents('${cfg.database.passwordFile}'), \"\\r\\n\")" else "''"};
$DB['PASSWORD'] = ${
if cfg.database.passwordFile != null then
"trim(file_get_contents('${cfg.database.passwordFile}'), \"\\r\\n\")"
else
"''"
};
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = ''';
$ZBX_SERVER = '${cfg.server.address}';
@ -33,16 +67,33 @@ let
${cfg.extraConfig}
'';
in
{
imports = [
(mkRenamedOptionModule
[
"services"
"zabbixWeb"
"virtualHost"
]
[
"services"
"zabbixWeb"
"httpd"
"virtualHost"
]
)
];
# interface
options.services = {
zabbixWeb = {
enable = mkEnableOption "the Zabbix web interface";
package = mkPackageOption pkgs [ "zabbix" "web" ] { };
package = mkPackageOption pkgs [
"zabbix"
"web"
] { };
server = {
port = mkOption {
@ -60,7 +111,11 @@ in
database = {
type = mkOption {
type = types.enum [ "mysql" "pgsql" "oracle" ];
type = types.enum [
"mysql"
"pgsql"
"oracle"
];
example = "mysql";
default = "pgsql";
description = "Database engine to use.";
@ -75,9 +130,12 @@ in
port = mkOption {
type = types.port;
default =
if cfg.database.type == "mysql" then config.services.mysql.port
else if cfg.database.type == "pgsql" then config.services.postgresql.settings.port
else 1521;
if cfg.database.type == "mysql" then
config.services.mysql.port
else if cfg.database.type == "pgsql" then
config.services.postgresql.settings.port
else
1521;
defaultText = literalExpression ''
if config.${opt.database.type} == "mysql" then config.${options.services.mysql.port}
else if config.${opt.database.type} == "pgsql" then config.services.postgresql.settings.port
@ -116,7 +174,17 @@ in
};
};
virtualHost = mkOption {
frontend = mkOption {
type = types.enum [
"nginx"
"httpd"
];
example = "nginx";
default = "httpd";
description = "Frontend server to use.";
};
httpd.virtualHost = mkOption {
type = types.submodule (import ../web-servers/apache-httpd/vhost-options.nix);
example = literalExpression ''
{
@ -126,14 +194,43 @@ in
enableACME = true;
}
'';
default = { };
description = ''
Apache configuration can be done by adapting `services.httpd.virtualHosts.<name>`.
See [](#opt-services.httpd.virtualHosts) for further information.
'';
};
hostname = mkOption {
type = types.str;
default = "zabbix.local";
description = "Hostname for either nginx or httpd.";
};
nginx.virtualHost = mkOption {
type = types.submodule (import ../web-servers/nginx/vhost-options.nix);
example = literalExpression ''
{
forceSSL = true;
sslCertificateKey = "/etc/ssl/zabbix.key";
sslCertificate = "/etc/ssl/zabbix.crt";
}
'';
default = { };
description = ''
Nginx configuration can be done by adapting `services.nginx.virtualHosts.<name>`.
See [](#opt-services.nginx.virtualHosts) for further information.
'';
};
poolConfig = mkOption {
type = with types; attrsOf (oneOf [ str int bool ]);
type =
with types;
attrsOf (oneOf [
str
int
bool
]);
default = {
"pm" = "dynamic";
"pm.max_children" = 32;
@ -154,7 +251,6 @@ in
Additional configuration to be copied verbatim into {file}`zabbix.conf.php`.
'';
};
};
};
@ -162,61 +258,96 @@ in
config = mkIf cfg.enable {
services.zabbixWeb.extraConfig = optionalString ((versionAtLeast config.system.stateVersion "20.09") && (versionAtLeast cfg.package.version "5.0.0")) ''
$DB['DOUBLE_IEEE754'] = 'true';
'';
services.zabbixWeb.extraConfig =
optionalString
(
(versionAtLeast config.system.stateVersion "20.09") && (versionAtLeast cfg.package.version "5.0.0")
)
''
$DB['DOUBLE_IEEE754'] = 'true';
'';
systemd.tmpfiles.rules = [
"d '${stateDir}' 0750 ${user} ${group} - -"
"d '${stateDir}/session' 0750 ${user} ${config.services.httpd.group} - -"
];
systemd.tmpfiles.rules =
[ "d '${stateDir}' 0750 ${user} ${group} - -" ]
++ optionals (cfg.frontend == "httpd") [
"d '${stateDir}/session' 0750 ${user} ${config.services.httpd.group} - -"
]
++ optionals (cfg.frontend == "nginx") [
"d '${stateDir}/session' 0750 ${user} ${config.services.nginx.group} - -"
];
services.phpfpm.pools.zabbix = {
inherit user;
group = config.services.httpd.group;
phpOptions = ''
# https://www.zabbix.com/documentation/current/manual/installation/install
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_execution_time = 300
max_input_time = 300
session.auto_start = 0
mbstring.func_overload = 0
always_populate_raw_post_data = -1
# https://bbs.archlinux.org/viewtopic.php?pid=1745214#p1745214
session.save_path = ${stateDir}/session
'' + optionalString (config.time.timeZone != null) ''
date.timezone = "${config.time.timeZone}"
'' + optionalString (cfg.database.type == "oracle") ''
extension=${pkgs.phpPackages.oci8}/lib/php/extensions/oci8.so
'';
group = config.services.${cfg.frontend}.group;
phpOptions =
''
# https://www.zabbix.com/documentation/current/manual/installation/install
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_execution_time = 300
max_input_time = 300
session.auto_start = 0
mbstring.func_overload = 0
always_populate_raw_post_data = -1
# https://bbs.archlinux.org/viewtopic.php?pid=1745214#p1745214
session.save_path = ${stateDir}/session
''
+ optionalString (config.time.timeZone != null) ''
date.timezone = "${config.time.timeZone}"
''
+ optionalString (cfg.database.type == "oracle") ''
extension=${pkgs.phpPackages.oci8}/lib/php/extensions/oci8.so
'';
phpEnv.ZABBIX_CONFIG = "${zabbixConfig}";
settings = {
"listen.owner" = config.services.httpd.user;
"listen.group" = config.services.httpd.group;
"listen.owner" =
if cfg.frontend == "httpd" then config.services.httpd.user else config.services.nginx.user;
"listen.group" =
if cfg.frontend == "httpd" then config.services.httpd.group else config.services.nginx.group;
} // cfg.poolConfig;
};
services.httpd = {
services.httpd = mkIf (cfg.frontend == "httpd") {
enable = true;
adminAddr = mkDefault cfg.virtualHost.adminAddr;
adminAddr = mkDefault cfg.httpd.virtualHost.adminAddr;
extraModules = [ "proxy_fcgi" ];
virtualHosts.${cfg.virtualHost.hostName} = mkMerge [ cfg.virtualHost {
documentRoot = mkForce "${cfg.package}/share/zabbix";
extraConfig = ''
<Directory "${cfg.package}/share/zabbix">
<FilesMatch "\.php$">
<If "-f %{REQUEST_FILENAME}">
SetHandler "proxy:unix:${fpm.socket}|fcgi://localhost/"
</If>
</FilesMatch>
AllowOverride all
Options -Indexes
DirectoryIndex index.php
</Directory>
'';
} ];
virtualHosts.${cfg.hostname} = mkMerge [
cfg.httpd.virtualHost
{
documentRoot = mkForce "${cfg.package}/share/zabbix";
extraConfig = ''
<Directory "${cfg.package}/share/zabbix">
<FilesMatch "\.php$">
<If "-f %{REQUEST_FILENAME}">
SetHandler "proxy:unix:${fpm.socket}|fcgi://localhost/"
</If>
</FilesMatch>
AllowOverride all
Options -Indexes
DirectoryIndex index.php
</Directory>
'';
}
];
};
services.nginx = mkIf (cfg.frontend == "nginx") {
enable = true;
virtualHosts.${cfg.hostname} = mkMerge [
cfg.nginx.virtualHost
{
root = mkForce "${cfg.package}/share/zabbix";
locations."/" = {
index = "index.html index.htm index.php";
tryFiles = "$uri $uri/ =404";
};
locations."~ \.php$".extraConfig = ''
fastcgi_pass unix:${fpm.socket};
fastcgi_index index.php;
'';
}
];
};
users.users.${user} = mapAttrs (name: mkDefault) {
@ -225,9 +356,6 @@ in
inherit group;
};
users.groups.${group} = mapAttrs (name: mkDefault) {
gid = config.ids.gids.zabbix;
};
users.groups.${group} = mapAttrs (name: mkDefault) { gid = config.ids.gids.zabbix; };
};
}

View File

@ -224,7 +224,7 @@ in
# Default Fonts
fonts.packages = with pkgs; [
dejavu_fonts # Default monospace font in LMDE 6+
ubuntu_font_family # required for default theme
ubuntu-classic # required for default theme
];
})

View File

@ -92,7 +92,7 @@ in
environment.etc."X11/xkb".source = xcfg.xkb.dir;
fonts.packages = [ pkgs.dejavu_fonts pkgs.ubuntu_font_family ];
fonts.packages = [ pkgs.dejavu_fonts ];
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;

View File

@ -71,8 +71,8 @@ in
font = {
package = mkOption {
type = types.package;
default = pkgs.ubuntu_font_family;
defaultText = literalExpression "pkgs.ubuntu_font_family";
default = pkgs.ubuntu-classic;
defaultText = literalExpression "pkgs.ubuntu-classic";
description = ''
The package path that contains the font given in the name option.
'';

View File

@ -245,6 +245,7 @@ in {
davis = handleTest ./davis.nix {};
db-rest = handleTest ./db-rest.nix {};
dconf = handleTest ./dconf.nix {};
ddns-updater = handleTest ./ddns-updater.nix {};
deconz = handleTest ./deconz.nix {};
deepin = handleTest ./deepin.nix {};
deluge = handleTest ./deluge.nix {};
@ -597,6 +598,7 @@ in {
# Fails on aarch64-linux at the PDF creation step - need to debug this on an
# aarch64 machine..
musescore = handleTestOn ["x86_64-linux"] ./musescore.nix {};
music-assistant = runTest ./music-assistant.nix;
munin = handleTest ./munin.nix {};
mutableUsers = handleTest ./mutable-users.nix {};
mycelium = handleTest ./mycelium {};

View File

@ -0,0 +1,28 @@
import ./make-test-python.nix (
{ pkgs, lib, ... }:
let
port = 6000;
in
{
name = "ddns-updater";
meta.maintainers = with lib.maintainers; [ delliott ];
nodes.machine =
{ pkgs, ... }:
{
services.ddns-updater = {
enable = true;
environment = {
LISTENING_ADDRESS = ":" + (toString port);
};
};
};
testScript = ''
machine.wait_for_unit("ddns-updater.service")
machine.wait_for_open_port(${toString port})
machine.succeed("curl --fail http://localhost:${toString port}/")
'';
}
)

View File

@ -0,0 +1,21 @@
{
lib,
...
}:
{
name = "music-assistant";
meta.maintainers = with lib.maintainers; [ hexa ];
nodes.machine = {
services.music-assistant = {
enable = true;
};
};
testScript = ''
machine.wait_for_unit("music-assistant.service")
machine.wait_until_succeeds("curl --fail http://localhost:8095")
machine.log(machine.succeed("systemd-analyze security music-assistant.service | grep -v "))
'';
}

View File

@ -62,13 +62,13 @@
stdenv.mkDerivation rec {
pname = "audacity";
version = "3.5.1";
version = "3.6.0";
src = fetchFromGitHub {
owner = "audacity";
repo = "audacity";
rev = "Audacity-${version}";
hash = "sha256-wQ+K31TvDTVwDyVQ5nWgcneZ1cFxztmsbSXrDs33Uoc=";
hash = "sha256-ZNOcWc4JKF69ZTD8pe1A3yrAMEE3rqbzPOOQslv+utU=";
};
postPatch = ''

View File

@ -22,14 +22,14 @@
stdenv.mkDerivation rec {
pname = "transcribe";
version = "9.41.0";
version = "9.41.2";
src =
if stdenv.hostPlatform.system == "x86_64-linux" then
fetchzip
{
url = "https://www.seventhstring.com/xscribe/downlo/xscsetup-${version}.tar.gz";
sha256 = "sha256-qf5zfnl1Dhof08vJ9FNFr6qAz5Tk6z7lO1PuVcmRua0=";
sha256 = "sha256-VWfjtNbwK9ZiWgs161ubRy+IjSXXk3FEfMkmA6Jhz8A=";
}
else throw "Platform not supported";

View File

@ -12,18 +12,18 @@
stdenv.mkDerivation (finalAttrs: {
pname = "youtube-music";
version = "3.3.12";
version = "3.4.1";
src = fetchFromGitHub {
owner = "th-ch";
repo = "youtube-music";
rev = "v${finalAttrs.version}";
hash = "sha256-kBGMp58086NQ77x1YGS5NewWfiDaXHOEbyflHPtdfIs=";
hash = "sha256-HuV1jFSFvb/Ji150rVIvHrPLY3167W9/9xNnI81k9B8=";
};
pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pname version src;
hash = "sha256-t5omzz6y8lVFGAuhtc+HF5gwu4Ntt/dxml+nWysEpVs=";
hash = "sha256-uN4rB/S/uoqR+qj7T/TGtU+3PRGagYVfx51nn6U8sdo=";
};
nativeBuildInputs = [ makeWrapper python3 nodejs pnpm.configHook ]

View File

@ -11,8 +11,6 @@ in
acm-terminal = callPackage ./manual-packages/acm-terminal { };
agda-input = callPackage ./manual-packages/agda-input { };
agda2-mode = callPackage ./manual-packages/agda2-mode { };
cask = callPackage ./manual-packages/cask { };
@ -118,6 +116,7 @@ in
}
### Aliases
// lib.optionalAttrs pkgs.config.allowAliases {
agda-input = throw "emacsPackages.agda-input is contained in emacsPackages.agda2-mode, please use that instead."; # Added 2024-07-17
ess-R-object-popup = throw "emacsPackages.ess-R-object-popup was deleted, since the upstream repo looks abandoned."; # Added 2024-07-15
ghc-mod = throw "emacsPackages.ghc-mod was deleted because it is deprecated, use haskell-language-server instead."; # Added 2024-07-17
haskell-unicode-input-method = throw "emacsPackages.haskell-unicode-input-method is contained in emacsPackages.haskell-mode, please use that instead."; # Added 2024-07-17

View File

@ -1,18 +0,0 @@
{ trivialBuild
, haskellPackages
}:
trivialBuild {
pname = "agda-input";
inherit (haskellPackages.Agda) src version;
postUnpack = ''
mv $sourceRoot/src/data/emacs-mode/agda-input.el $sourceRoot
'';
meta = {
inherit (haskellPackages.Agda.meta) homepage license;
description = "Standalone package providing the agda-input method without building Agda";
};
}

View File

@ -1,29 +1,15 @@
{ trivialBuild
, haskellPackages
}:
{ melpaBuild, haskellPackages }:
let
Agda = haskellPackages.Agda.bin;
Agda = haskellPackages.Agda;
in
trivialBuild {
pname = "agda-mode";
version = Agda.version;
melpaBuild {
pname = "agda2-mode";
inherit (Agda) src version;
dontUnpack = true;
# already byte-compiled by Agda builder
buildPhase = ''
agda=`${Agda}/bin/agda-mode locate`
cp `dirname $agda`/*.el* .
'';
files = ''("src/data/emacs-mode/*.el")'';
meta = {
inherit (Agda.meta) homepage license;
description = "Agda2-mode for Emacs extracted from Agda package";
longDescription = ''
Wrapper packages that liberates init.el from `agda-mode locate` magic.
Simply add this to user profile or systemPackages and do `(require
'agda2)` in init.el.
'';
};
}

View File

@ -1,22 +1,21 @@
{ fetchFromGitHub, melpaBuild, pkgs, lib, substituteAll, writeText }:
{
fetchFromGitHub,
melpaBuild,
pkgs,
lib,
substituteAll,
}:
melpaBuild {
pname = "codeium";
version = "1.6.13";
src = fetchFromGitHub {
owner = "Exafunction";
repo = "codeium.el";
rev = "1.6.13";
hash = "sha256-CjT21GhryO8/iM0Uzm/s/I32WqVo4M3tSlHC06iEDXA=";
};
commit = "02f9382c925633a19dc928e99b868fd5f6947e58";
buildInputs = [ pkgs.codeium ];
recipe = writeText "recipe" ''
(codeium
:repo "Exafunction/codeium.el"
:fetcher github)
'';
patches = [
(substituteAll {

View File

@ -1,33 +1,37 @@
{
lib,
dash,
editorconfig,
fetchFromGitHub,
nodejs,
s,
trivialBuild,
melpaBuild,
}:
trivialBuild {
melpaBuild {
pname = "copilot";
version = "0-unstable-2023-12-26";
src = fetchFromGitHub {
owner = "zerolfx";
repo = "copilot.el";
rev = "d4fa14cea818e041b4a536c5052cf6d28c7223d7";
sha256 = "sha256-Tzs0Dawqa+OD0RSsf66ORbH6MdBp7BMXX7z+5UuNwq4=";
};
files = ''(:defaults "dist")'';
packageRequires = [
dash
editorconfig
nodejs
s
];
postInstall = ''
cp -r $src/dist $LISPDIR
'';
propagatedUserEnvPkgs = [ nodejs ];
meta = {
description = "Unofficial copilot plugin for Emacs";
homepage = "https://github.com/zerolfx/copilot.el";
license = lib.licenses.mit;
platforms = [
"x86_64-darwin"
"x86_64-linux"

View File

@ -2,7 +2,6 @@
lib,
melpaBuild,
fetchzip,
writeText,
}:
melpaBuild rec {
@ -14,15 +13,6 @@ melpaBuild rec {
hash = "sha256-GFEDWT88Boz/DxEcmFgf7u2NOoMjAN05yRiYwoYtvXc=";
};
# not used but needs to be set; why?
commit = "a643f177b58aa8869f2f24814e990320aa4f0f96";
recipe = writeText "recipe" ''
(ebuild-mode
:url "https://gitweb.gentoo.org/proj/ebuild-mode.git"
:fetcher git)
'';
meta = {
homepage = "https://gitweb.gentoo.org/proj/ebuild-mode.git/";
description = "Major modes for Gentoo package files";

View File

@ -1,57 +1,32 @@
{ lib
, melpaBuild
, fetchFromGitHub
, writeText
, writeScript
, gzip
{
lib,
melpaBuild,
fetchFromGitHub,
gzip,
unstableGitUpdater,
}:
let
rev = "a6c849619abcdd80dc82ec5417195414ad438fa3";
in
melpaBuild {
pname = "edraw";
version = "20240701.444";
version = "1.2.0-unstable-2024-07-01";
src = fetchFromGitHub {
owner = "misohena";
repo = "el-easydraw";
inherit rev;
rev = "a6c849619abcdd80dc82ec5417195414ad438fa3";
hash = "sha256-CbcI1mmghc3HObg80bjScVDcJ1DHx9aX1WP2HlhAshs=";
};
commit = rev;
propagatedUserEnvPkgs = [ gzip ];
packageRequires = [ gzip ];
files = ''(:defaults "msg")'';
recipe = writeText "recipe" ''
(edraw
:repo "misohena/el-easydraw"
:fetcher github
:files
("*.el"
"msg"))
'';
passthru.updateScript = writeScript "update.sh" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts coreutils git gnused
set -eu -o pipefail
tmpdir="$(mktemp -d)"
git clone --depth=1 https://github.com/misohena/el-easydraw.git "$tmpdir"
pushd "$tmpdir"
commit=$(git show -s --pretty='format:%H')
# Based on: https://github.com/melpa/melpa/blob/2d8716906a0c9e18d6c979d8450bf1d15dd785eb/package-build/package-build.el#L523-L533
version=$(TZ=UTC git show -s --pretty='format:%cd' --date='format-local:%Y%m%d.%H%M' | sed 's|\.0*|.|')
popd
update-source-version emacsPackages.el-easydraw $version --rev="$commit"
'';
passthru.updateScript = unstableGitUpdater { tagPrefix = "v"; };
meta = {
homepage = "https://github.com/misohena/el-easydraw";
description = "Embedded drawing tool for Emacs";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ brahyerr ];
platforms = lib.platforms.all;
};
}

View File

@ -1,24 +1,20 @@
{ lib
, melpaBuild
, fetchFromGitHub
, pkg-config
, libffi
, writeText
{
lib,
melpaBuild,
fetchFromGitHub,
pkg-config,
libffi,
}:
let
rev = "da37c516a0e59bdce63fb2dc006a231dee62a1d9";
in melpaBuild {
melpaBuild {
pname = "elisp-ffi";
version = "20170518.0";
commit = rev;
version = "1.0.0-unstable-2017-05-18";
src = fetchFromGitHub {
owner = "skeeto";
repo = "elisp-ffi";
inherit rev;
sha256 = "sha256-StOezQEnNTjRmjY02ub5FRh59aL6gWfw+qgboz0wF94=";
rev = "da37c516a0e59bdce63fb2dc006a231dee62a1d9";
hash = "sha256-StOezQEnNTjRmjY02ub5FRh59aL6gWfw+qgboz0wF94=";
};
nativeBuildInputs = [ pkg-config ];
@ -28,20 +24,16 @@ in melpaBuild {
preBuild = ''
mv ffi.el elisp-ffi.el
make
'';
recipe = writeText "recipe" ''
(elisp-ffi :repo "skeeto/elisp-ffi" :fetcher github)
'';
meta = {
description = "Emacs Lisp Foreign Function Interface";
longDescription = ''
This library provides an FFI for Emacs Lisp so that Emacs
programs can invoke functions in native libraries. It works by
driving a subprocess to do the heavy lifting, passing result
values on to Emacs.
'';
license = lib.licenses.publicDomain;
This library provides an FFI for Emacs Lisp so that Emacs
programs can invoke functions in native libraries. It works by
driving a subprocess to do the heavy lifting, passing result
values on to Emacs.
'';
license = lib.licenses.unlicense;
};
}

View File

@ -1,46 +1,42 @@
{ lib
, melpaBuild
, fetchFromGitHub
, fetchpatch
, writeText
# Emacs packages
, _map
, a
, anaphora
, cl-lib
, dash
, dash-functional
, esxml
, f
, frame-purpose
, ht
, ov
, rainbow-identifiers
, request
, s
, tracking
{
lib,
melpaBuild,
fetchFromGitHub,
fetchpatch,
# Emacs packages
_map,
a,
anaphora,
cl-lib,
dash,
dash-functional,
esxml,
f,
frame-purpose,
ht,
ov,
rainbow-identifiers,
request,
s,
tracking,
}:
let
rev = "d2ac55293c96d4c95971ed8e2a3f6f354565c5ed";
in melpaBuild {
melpaBuild {
pname = "matrix-client";
version = "0.3.0";
commit = rev;
src = fetchFromGitHub {
owner = "alphapapa";
repo = "matrix-client.el";
inherit rev;
sha256 = "1scfv1502yg7x4bsl253cpr6plml1j4d437vci2ggs764sh3rcqq";
rev = "d2ac55293c96d4c95971ed8e2a3f6f354565c5ed";
hash = "sha256-GLM8oCbm6PdEZPsM0ogMtNJr8mWjCKoX6ed5AUrYjuk=";
};
patches = [
# Fix: avatar loading when imagemagick support is not available
(fetchpatch {
url = "https://github.com/alphapapa/matrix-client.el/commit/5f49e615c7cf2872f48882d3ee5c4a2bff117d07.patch";
sha256 = "07bvid7s1nv1377p5n61q46yww3m1w6bw4vnd4iyayw3fby1lxbm";
hash = "sha256-dXUa/HKDe+UjaXYTvgwPdXDuDcHB2HLPGWHboE+Lex0=";
})
];
@ -62,10 +58,6 @@ in melpaBuild {
tracking
];
recipe = writeText "recipe" ''
(matrix-client :repo "alphapapa/matrix-client.el" :fetcher github)
'';
meta = {
description = "Chat client and API wrapper for Matrix.org";
license = lib.licenses.gpl3Plus;

View File

@ -1,22 +1,22 @@
{ lib
, stdenv
, trivialBuild
, fetchFromGitHub
, emacs
, hydra
, ivy
, pkg-config
, tclap
, xapian
{
lib,
stdenv,
melpaBuild,
fetchFromGitHub,
hydra,
ivy,
pkg-config,
tclap,
xapian,
# Include pre-configured hydras
, withHydra ? false
withHydra ? false,
# Include Ivy integration
, withIvy ? false
withIvy ? false,
}:
let
pname = "notdeft";
version = "20211204.0846";
version = "0-unstable-2021-12-04";
src = fetchFromGitHub {
owner = "hasu";
@ -32,7 +32,11 @@ let
sourceRoot = "${src.name}/xapian";
nativeBuildInputs = [ pkg-config tclap xapian ];
nativeBuildInputs = [
pkg-config
tclap
xapian
];
installPhase = ''
runHook preInstall
@ -44,11 +48,10 @@ let
'';
};
in
trivialBuild {
melpaBuild {
inherit pname version src;
packageRequires = lib.optional withHydra hydra
++ lib.optional withIvy ivy;
buildInputs = [ xapian ];
packageRequires = lib.optional withHydra hydra ++ lib.optional withIvy ivy;
postPatch = ''
substituteInPlace notdeft-xapian.el \
@ -56,20 +59,18 @@ trivialBuild {
"defcustom notdeft-xapian-program \"${notdeft-xapian}/bin/notdeft-xapian\""
'';
# Extra modules are contained in the extras/ directory
preBuild = lib.optionalString withHydra ''
mv extras/notdeft-{mode-hydra,global-hydra}.el ./
'' +
lib.optionalString withIvy ''
mv extras/notdeft-ivy.el ./
'' + ''
rm -r extras/
files = ''
(:defaults
${lib.optionalString withHydra ''"extras/notdeft-global-hydra.el"''}
${lib.optionalString withHydra ''"extras/notdeft-mode-hydra.el"''}
${lib.optionalString withIvy ''"extras/notdeft-ivy.el"''})
'';
meta = with lib; {
meta = {
homepage = "https://tero.hasu.is/notdeft/";
description = "Fork of Deft that uses Xapian as a search engine";
maintainers = [ maintainers.nessdoor ];
platforms = platforms.linux;
maintainers = [ lib.maintainers.nessdoor ];
license = lib.licenses.bsd3;
platforms = lib.platforms.linux;
};
}

View File

@ -1,31 +1,23 @@
{ lib
, fetchFromGitHub
, melpaBuild
, js2-mode
, writeText
{
lib,
fetchFromGitHub,
melpaBuild,
js2-mode,
}:
let
rev = "5283ca7403bcb21ca0cac8ecb063600752dfd9d4";
in melpaBuild {
melpaBuild {
pname = "prisma-mode";
version = "20211207.0";
commit = rev;
version = "0-unstable-2021-12-07";
packageRequires = [ js2-mode ];
src = fetchFromGitHub {
owner = "pimeys";
repo = "emacs-prisma-mode";
inherit rev;
sha256 = "sha256-DJJfjbu27Gi7Nzsa1cdi8nIQowKH8ZxgQBwfXLB0Q/I=";
rev = "5283ca7403bcb21ca0cac8ecb063600752dfd9d4";
hash = "sha256-DJJfjbu27Gi7Nzsa1cdi8nIQowKH8ZxgQBwfXLB0Q/I=";
};
recipe = writeText "recipe" ''
(prisma-mode :repo "pimeys/emacs-prisma-mode" :fetcher github)
'';
meta = {
description = "Major mode for Prisma Schema Language";
license = lib.licenses.gpl2Only;

View File

@ -1,14 +1,24 @@
{ lib, trivialBuild, fetchurl }:
{
lib,
melpaBuild,
fetchurl,
}:
trivialBuild {
melpaBuild {
pname = "prolog-mode";
ename = "prolog";
version = "1.28";
src = fetchurl {
url = "https://bruda.ca/_media/emacs/prolog.el";
sha256 = "ZzIDFQWPq1vI9z3btgsHgn0axN6uRQn9Tt8TnqGybOk=";
hash = "sha256-ZzIDFQWPq1vI9z3btgsHgn0axN6uRQn9Tt8TnqGybOk=";
};
postPatch = ''
substituteInPlace prolog.el \
--replace-fail ";; prolog.el ---" ";;; prolog.el ---"
'';
meta = {
homepage = "https://bruda.ca/emacs/prolog_mode_for_emacs/";
description = "Prolog mode for Emacs";

View File

@ -3,9 +3,6 @@
, melpaBuild
, fetchFromGitHub
, rustPlatform
, writeText
, clang
, llvmPackages
, runtimeShell
, writeScript
@ -26,15 +23,8 @@ let
inherit version;
pname = "tsc";
commit = version;
sourceRoot = "${src.name}/core";
recipe = writeText "recipe" ''
(tsc
:repo "emacs-tree-sitter/elisp-tree-sitter"
:fetcher github)
'';
};
tsc-dyn = rustPlatform.buildRustPackage {

View File

@ -1,11 +1,12 @@
{ lib
, trivialBuild
, urweb
, cl-lib
, flycheck
{
lib,
melpaBuild,
urweb,
cl-lib,
flycheck,
}:
trivialBuild {
melpaBuild {
pname = "urweb-mode";
inherit (urweb) src version;
@ -15,9 +16,9 @@ trivialBuild {
flycheck
];
postUnpack = ''
sourceRoot=$sourceRoot/src/elisp
'';
files = ''("src/elisp/*.el")'';
dontConfigure = true;
meta = {
description = "Major mode for editing Ur/Web";

View File

@ -1814,6 +1814,23 @@ let
};
};
fill-labs.dependi = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "dependi";
publisher = "fill-labs";
version = "0.7.2";
hash = "sha256-S3R1oLk7facP5Rn9czmHlffhMtLNrSaGYbaU3/x6/aM=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/fill-labs.dependi/changelog";
description = "VSCode extension for managing dependencies and address vulnerabilities in Rust, Go, JavaScript, and Python projects";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=fill-labs.dependi";
homepage = "https://github.com/filllabs/dependi";
license = lib.licenses.unfree;
maintainers = [ lib.maintainers._21CSM ];
};
};
firefox-devtools.vscode-firefox-debug = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "vscode-firefox-debug";

View File

@ -121,8 +121,6 @@ make_trapped_tmpdir
find "$monoRuntimeBinaries_storePath" -mindepth 1 -maxdepth 1 | xargs -d '\n' cp -rp -t "$tmpDir"
chmod -R a+rwx "$tmpDir"
ls -la "$tmpDir/debugAdapters"
patchelf_mono "$tmpDir/debugAdapters/mono.linux-x86_64"
chmod a+x "$tmpDir/debugAdapters/mono.linux-x86_64"
@ -141,8 +139,6 @@ make_trapped_tmpdir
find "$clanFormatBinaries_storePath" -mindepth 1 -maxdepth 1 | xargs -d '\n' cp -rp -t "$tmpDir"
chmod -R a+rwx "$tmpDir"
ls -la "$tmpDir/bin"
patchelf_clangformat "$tmpDir/bin/clang-format"
chmod a+x "$tmpDir/bin/clang-format"

View File

@ -72,14 +72,14 @@ in
stdenv.mkDerivation rec {
pname = "azuredatastudio";
version = "1.44.1";
version = "1.48.1";
desktopItems = [ desktopItem urlHandlerDesktopItem ];
src = fetchurl {
name = "${pname}-${version}.tar.gz";
url = "https://azuredatastudio-update.azurewebsites.net/${version}/linux-x64/stable";
sha256 = "sha256-6kEV331kt+/7/uWKZmTTkJX4P06CfxC8Ogq052qlUEg=";
sha256 = "sha256-JDNdMy0Wk6v2pMKS+NzSbsrffaEG2IneZO+K9pBFX48=";
};
nativeBuildInputs = [
@ -122,7 +122,7 @@ stdenv.mkDerivation rec {
];
# this will most likely need to be updated when azuredatastudio's version changes
sqltoolsservicePath = "${targetPath}/resources/app/extensions/mssql/sqltoolsservice/Linux/4.7.1.6";
sqltoolsservicePath = "${targetPath}/resources/app/extensions/mssql/sqltoolsservice/Linux/4.11.1.1";
rpath = lib.concatStringsSep ":" [
(lib.makeLibraryPath [

View File

@ -2,15 +2,15 @@
buildGoModule rec {
pname = "istioctl";
version = "1.22.2";
version = "1.22.3";
src = fetchFromGitHub {
owner = "istio";
repo = "istio";
rev = version;
hash = "sha256-tw9G7VhrBMdSbZ4ZZgMlKEDfhZE5dSPd2HUgfkDA8vo=";
hash = "sha256-rtvuGIcjarIc4PmBXM3s/XbMQp/wlU1FhHb1lmXE2go=";
};
vendorHash = "sha256-Fso55G5j8MUQSqhCr6BT8epwgV1NznQXkPPQFL9TZFw=";
vendorHash = "sha256-0F4GIOT/YUzLLhD9HzNJpGSgfMALiEPAb4vtmLmI+Qs=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -5,7 +5,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "errbot";
version = "6.1.9";
version = "6.2.0";
format = "setuptools";
@ -13,7 +13,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "errbotio";
repo = "errbot";
rev = version;
hash = "sha256-BmHChLWWnrtg0p4WH8bANwpo+p4RTwjYbXfyPnz6mp8=";
hash = "sha256-UdqzBrlcb9NkuVo8ChADJmaKevadoGLyZUrckStb5ko=";
};
pythonRelaxDeps = true;
@ -52,6 +52,7 @@ python3.pkgs.buildPythonApplication rec {
"test_backup"
"test_broken_plugin"
"test_plugin_cycle"
"test_entrypoint_paths"
];
pythonImportsCheck = [ "errbot" ];

View File

@ -25,7 +25,7 @@
, withNgspice ? !stdenv.isDarwin
, libngspice
, withScripting ? true
, python3
, python311
, addons ? [ ]
, debug ? false
, sanitizeAddress ? false
@ -122,10 +122,14 @@ let
else versionsImport.${baseName}.libVersion.version;
wxGTK = wxGTK32;
python = python3;
# KiCAD depends on wxWidgets, which uses distutils (removed in Python 3.12)
# See also: https://github.com/wxWidgets/Phoenix/issues/2104
# Eventually, wxWidgets should support Python 3.12: https://github.com/wxWidgets/Phoenix/issues/2553
# Until then, we use Python 3.11 which still includes distutils
python = python311;
wxPython = python.pkgs.wxpython;
addonPath = "addon.zip";
addonsDrvs = map (pkg: pkg.override { inherit addonPath python3; }) addons;
addonsDrvs = map (pkg: pkg.override { inherit addonPath python; }) addons;
addonsJoined =
runCommand "addonsJoined"
@ -157,7 +161,7 @@ stdenv.mkDerivation rec {
# Common libraries, referenced during runtime, via the wrapper.
passthru.libraries = callPackages ./libraries.nix { inherit libSrc; };
passthru.callPackage = newScope { inherit addonPath python3; };
passthru.callPackage = newScope { inherit addonPath python; };
base = callPackage ./base.nix {
inherit stable testing baseName;
inherit kicadSrc kicadVersion;

View File

@ -3,7 +3,7 @@
, fetchFromGitHub
, bison
, flex
, verilog
, iverilog
, which
}:
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
];
buildInputs = [
verilog
iverilog
];
# the "translate" target both (a) builds the software and (b) runs

File diff suppressed because it is too large Load Diff

View File

@ -1,34 +0,0 @@
{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, Security }:
rustPlatform.buildRustPackage rec {
pname = "git-backup";
version = "0.2.0";
src = fetchFromGitHub {
owner = "jsdw";
repo = pname;
rev = "v${version}";
sha256 = "0h31j8clvk4gkw4mgva9p0ypf26zhf7f0y564fdmzyw6rsz9wzcj";
};
cargoLock = {
lockFile = ./Cargo.lock;
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
# update Cargo.lock to work with openssl 3
postPatch = ''
ln -sf ${./Cargo.lock} Cargo.lock
'';
meta = with lib; {
homepage = "https://github.com/jsdw/git-backup";
description = "Tool to help you backup your git repositories from services like GitHub";
license = licenses.mit;
maintainers = with maintainers; [ cafkafk ];
mainProgram = "git-backup";
};
}

View File

@ -10,7 +10,7 @@
# Usage: `pkgs.mpv.override { scripts = [ pkgs.mpvScripts.sponsorblock ]; }`
buildLua {
pname = "mpv_sponsorblock";
version = "unstable-2023-01-30";
version = "0-unstable-2023-01-30";
src = fetchFromGitHub {
owner = "po5";

View File

@ -9,14 +9,14 @@
stdenv.mkDerivation rec {
pname = "waveform";
version = "1.8.0";
version = "1.8.1";
src = fetchFromGitHub {
fetchSubmodules = true;
owner = "phandasm";
repo = "waveform";
rev = "v${version}";
hash = "sha256-NcBtj+5X9tPH853a6oXzQCBH26hx8Yt17WjP9ryvgmc=";
hash = "sha256-Bg1n1yV4JzNFEXFNayNa1exsSZhmRJ0RLHDjLWmqGZE=";
};
nativeBuildInputs = [ cmake pkg-config ];

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "docker-compose";
version = "2.28.1";
version = "2.29.0";
src = fetchFromGitHub {
owner = "docker";
repo = "compose";
rev = "v${version}";
hash = "sha256-AfWUCgW+aZkedd94uPpfBKKZC1Xvq9wonuCSXGHm774=";
hash = "sha256-nyfTVTxdByNccxRn3kyE+75dHWqIGl2PWkIoNo8O6DM=";
};
postPatch = ''
@ -16,7 +16,7 @@ buildGoModule rec {
rm -rf e2e/
'';
vendorHash = "sha256-MykoU0q2cCnY02a52kyg35L4tJ3KZTzA4usf194Wnbw=";
vendorHash = "sha256-ACFHejd8EMh2/NfQBLj/DM9ewIgueFtHHFc81Skgkk4=";
ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ];

View File

@ -10,11 +10,11 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "tart";
version = "2.13.0";
version = "2.14.0";
src = fetchurl {
url = "https://github.com/cirruslabs/tart/releases/download/${finalAttrs.version}/tart-arm64.tar.gz";
hash = "sha256-aR28Q5eQwcEfk65on4kgA+bko6uEThHsgZZU+fExzus=";
hash = "sha256-3I4WSdWfPZd//pJiYXKcgpjx8qv4nSeMHHGJE1ja00o=";
};
sourceRoot = ".";

View File

@ -0,0 +1,86 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
bluez,
cmake,
dbus,
libftdi1,
nix-update-script,
pkg-config,
useLibFTDI ? true,
useOpenMP ? true,
buildBluetooth ? true,
buildBluetoothLowEnergy ? true,
buildONNX ? true,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "brainflow";
version = "5.12.1";
src = fetchFromGitHub {
owner = "brainflow-dev";
repo = "brainflow";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-haQO03nkvLoXtFVe+C+yi+MwM0CFh6rLcLvU8fQ4k/w=";
};
patches = [
# All of these are PRs that were merged into the upstream repository and will be included in the next release
# These should be removed once the next version is released
(fetchpatch {
# Fixes a major issue that prevented the build from working at all (why was this not backported???)
url = "https://github.com/brainflow-dev/brainflow/commit/883b0cd08acb99d7b6e241e92fba2e9a363d17b1.patch";
hash = "sha256-QQd+BI3I65gfaNS/SKLjCoqbCwPCiTh+nh0tJAZM6hQ=";
})
(fetchpatch {
# Bumps the version of a python dependency that had a backwards-incompatible change
url = "https://github.com/brainflow-dev/brainflow/commit/ea23a6f0483ce4d6fdd7a82bace865356ee78d7f.patch";
hash = "sha256-dvMpxxRrnJQ9ADGagB1JhuoB9SNwn755wbHzW/3ECeo=";
})
(fetchpatch {
# Fixes an incorrect use of an environment variable during the build
url = "https://github.com/brainflow-dev/brainflow/commit/053b8c1253b686cbec49ab4adb47c9ee02d3f99a.patch";
hash = "sha256-Pfhe1ZvMagfVAGZqeWn1uHXgwlTtkOm+gyWuvC5/Sro=";
})
];
cmakeFlags = with lib; [
(cmakeBool "USE_LIBFTDI" useLibFTDI)
(cmakeBool "USE_OPENMP" useOpenMP)
(cmakeBool "BUILD_OYMOTION_SDK" false) # Needs a "GFORCE_SDK"
(cmakeBool "BUILD_BLUETOOTH" buildBluetooth)
(cmakeBool "BUILD_BLE" buildBluetoothLowEnergy)
(cmakeBool "BUILD_ONNX" buildONNX)
];
buildInputs =
[ dbus ]
++ lib.optional (buildBluetooth || buildBluetoothLowEnergy) bluez
++ lib.optional useLibFTDI libftdi1;
nativeBuildInputs = [
cmake
pkg-config
];
postPatch = ''
find . -type f -name 'build.cmake' -exec \
sed -i 's/DESTINATION inc/DESTINATION include/g' {} \;
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "A library to obtain, parse and analyze data (EEG, EMG, ECG) from biosensors";
homepage = "https://brainflow.org/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
pandapip1
ziguana
];
platforms = lib.platforms.all;
};
})

View File

@ -6,7 +6,7 @@
cargo-shear,
}:
let
version = "1.0.0";
version = "1.1.0";
in
rustPlatform.buildRustPackage {
pname = "cargo-shear";
@ -16,10 +16,10 @@ rustPlatform.buildRustPackage {
owner = "Boshen";
repo = "cargo-shear";
rev = "v${version}";
hash = "sha256-onTVA/VH5GrDYBDGKbWOSFeW1RCzDooh3PJxCD39e1o=";
hash = "sha256-D6O8raELxmcv47vaIa7XSmnPNhrsEx8fIpt/n1dp+8Y=";
};
cargoHash = "sha256-63792ztjnGcAiFpHTcaI03PV4dQxhOP2eRNda8MWiqc=";
cargoHash = "sha256-GpEG6yoRTmnjeC74tz6mq6vbG4hnIWbbijIIos7Ng3Y=";
# https://github.com/Boshen/cargo-shear/blob/a0535415a3ea94c86642f39f343f91af5cdc3829/src/lib.rs#L20-L23
SHEAR_VERSION = version;

View File

@ -1,20 +1,22 @@
{
lib,
buildGoModule,
fetchFromGitHub,
lib,
nixosTests,
nix-update-script,
}:
buildGoModule rec {
pname = "ddns-updater";
version = "2.6.0";
version = "2.7.0";
src = fetchFromGitHub {
owner = "qdm12";
repo = "ddns-updater";
rev = "v${version}";
hash = "sha256-NU6KXVjggsXVCKImGqbB1AXcph+ycRfkk5S4JNq0cHg=";
hash = "sha256-U8Vw7dsj/efqvpooT3QQjNp41AuGYJ/Gz/pA8Em3diE=";
};
vendorHash = "sha256-Ibrv0m3Tz/5JbkHYmiJ9Ijo37fjHc7TP100K7ZTwO8I=";
vendorHash = "sha256-M9Al3zl2Ltv4yWdyRB3+9zpTr3foliu5WweImHltz3M=";
ldflags = [
"-s"
@ -23,6 +25,13 @@ buildGoModule rec {
subPackages = [ "cmd/updater" ];
passthru = {
tests = {
inherit (nixosTests) ddns-updater;
};
updateScript = nix-update-script { };
};
postInstall = ''
mv $out/bin/updater $out/bin/ddns-updater
'';

View File

@ -5,13 +5,13 @@ rustPlatform.buildRustPackage rec {
# Since then, `dust` has been freed up, allowing this package to take that attribute.
# However in order for tools like `nix-env` to detect package updates, keep `du-dust` for pname.
pname = "du-dust";
version = "1.0.0";
version = "1.1.0";
src = fetchFromGitHub {
owner = "bootandy";
repo = "dust";
rev = "v${version}";
hash = "sha256-KTsB9QqcLafG2XNj8PdkzwVrFDmpBQzNyDLajT/JDz0=";
hash = "sha256-ERcXVLzgurY6vU+exZ5IcM0rPbWrpghDO1m2XwE5i38=";
# Remove unicode file names which leads to different checksums on HFS+
# vs. other filesystems because of unicode normalisation.
postFetch = ''
@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
'';
};
cargoHash = "sha256-d6Mnuo6JlbuHUGz+UCmC8jvNks3SpeP/aNQGXHBzB+8=";
cargoHash = "sha256-ubcfLNiLQ71QcD5YneMD5N1ipsR1GK5GJQ0PrJyv6qI=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -20,16 +20,18 @@
stdenv.mkDerivation rec {
pname = "fnott";
version = "1.5.0";
version = "1.6.0";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "dnkl";
repo = "fnott";
rev = version;
hash = "sha256-F2Pt3xbWDZZ3s056KU3qLXUrFQ0wT7QYK4GvR7slMYc=";
hash = "sha256-out3OZCGZGIIHFZ4t2nN6/3UpsRH9zfw35emexVo4RE=";
};
PKG_CONFIG_DBUS_1_SESSION_BUS_SERVICES_DIR = "${placeholder "out"}/share/dbus-1/services";
strictDeps = true;
depsBuildBuild = [
pkg-config

View File

@ -0,0 +1,36 @@
{
lib,
buildGoModule,
fetchFromGitHub,
testers,
git-backup-go,
}:
buildGoModule rec {
pname = "git-backup-go";
version = "1.6.0";
src = fetchFromGitHub {
owner = "ChappIO";
repo = "git-backup";
rev = "v${version}";
hash = "sha256-C/ha/GuRvqxmgrbOgkhup1tNoDT3pDIbE+nO5eMZGlY=";
};
vendorHash = "sha256-wzivnTe9Rx3YLz6lvrzsLiJIbxX7QE059Kzb4rUfD+s=";
ldflags = [ "-X main.Version=${version}" ];
passthru.tests.version = testers.testVersion {
package = git-backup-go;
command = "git-backup -version";
};
meta = {
description = "Backup all your GitHub & GitLab repositories";
homepage = "https://github.com/ChappIO/git-backup";
license = lib.licenses.asl20;
mainProgram = "git-backup";
maintainers = with lib.maintainers; [ aleksana ];
};
}

View File

@ -21,22 +21,22 @@
}:
let
rcversion = "2";
rcversion = "1";
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "github-desktop";
version = "3.3.12";
version = "3.4.2";
src =
let
urls = {
"x86_64-linux" = {
url = "https://github.com/shiftkey/desktop/releases/download/release-${finalAttrs.version}-linux${rcversion}/GitHubDesktop-linux-amd64-${finalAttrs.version}-linux${rcversion}.deb";
hash = "sha256-iflKD7NPuZvhxviNW8xmtCOYgdRz1rXiG42ycWCjXiY=";
hash = "sha256-qY5rCvOgf1/Z00XZ6yAn6zKdUZ+6l4PCthPU44XLKhc=";
};
"aarch64-linux" = {
url = "https://github.com/shiftkey/desktop/releases/download/release-${finalAttrs.version}-linux${rcversion}/GitHubDesktop-linux-arm64-${finalAttrs.version}-linux${rcversion}.deb";
hash = "sha256-C9eCvuf/TwXQiYjZ88xSiyaqi8+cppmrLiSYTyQCkmg=";
hash = "sha256-VbPjTz4xYGaVO3uOG6lQNQrVEmx3+H/+y8+r0O55aUg=";
};
};
in

View File

@ -7,12 +7,12 @@
}:
let
version = "0.11.0";
version = "0.13.0";
gitSrc = fetchFromGitHub {
owner = "glasskube";
repo = "glasskube";
rev = "refs/tags/v${version}";
hash = "sha256-onpW7YolM05C1BKb7vgH6Y2XFNbigRTueMqjzuFWERo=";
hash = "sha256-1FzqgZYZQOqaXNQcWTyBmTV0ynxMPQx5ywwR2/8aREg=";
};
web-bundle = buildNpmPackage rec {
inherit version;
@ -20,7 +20,7 @@ let
src = gitSrc;
npmDepsHash = "sha256-V4lB+lgnurEo4BPVQDIYxdzKczPPDa6QEFaTAm+go88=";
npmDepsHash = "sha256-Zly7Ljml3BCHwNSYsGUbVeJGna63Z9j+ebCkjoYyRtc=";
dontNpmInstall = true;
@ -40,7 +40,7 @@ in buildGoModule rec {
src = gitSrc;
vendorHash = "sha256-besBympQMvdsD25nndyRkcA8v3wMQUb52VCwvtopgPc=";
vendorHash = "sha256-lRaBv+VsSMVjHu092lXe7n2RnDEO/74Sp0R6jC9f1b0=";
CGO_ENABLED = 0;

View File

@ -67,13 +67,13 @@ let
in
effectiveStdenv.mkDerivation (finalAttrs: {
pname = "llama-cpp";
version = "3328";
version = "3403";
src = fetchFromGitHub {
owner = "ggerganov";
repo = "llama.cpp";
rev = "refs/tags/b${finalAttrs.version}";
hash = "sha256-rV+Lq5dBkVdoGB/BYNfgvqDB/9+SWfk5rKkKu1xq0PQ=";
hash = "sha256-+WWJyEt04ZUC/vh9ZReLek851iOZJYoGc49XJyRPkVE=";
leaveDotGit = true;
postFetch = ''
git -C "$out" rev-parse --short HEAD > $out/COMMIT

View File

@ -8,7 +8,7 @@
let
pname = "mov-cli";
version = "4.4.5";
version = "4.4.7";
in
python3.pkgs.buildPythonPackage {
inherit pname version;
@ -17,8 +17,8 @@ python3.pkgs.buildPythonPackage {
src = fetchFromGitHub {
owner = "mov-cli";
repo = "mov-cli";
rev = version;
hash = "sha256-Q5fzxdMEUDL1VgeTTgU76z0nksocgjyonAroP/m/Q+0=";
rev = "refs/tags/${version}";
hash = "sha256-wbzgTtRMDx9WpILzOGNvTrxj+wN6QzRCUNsc7PfwzJk=";
};
propagatedBuildInputs = with python3.pkgs; [

View File

@ -0,0 +1,71 @@
diff --git a/music_assistant/server/helpers/audio.py b/music_assistant/server/helpers/audio.py
index 42011923..1e5dc112 100644
--- a/music_assistant/server/helpers/audio.py
+++ b/music_assistant/server/helpers/audio.py
@@ -218,7 +218,7 @@ async def crossfade_pcm_parts(
await outfile.write(fade_out_part)
args = [
# generic args
- "ffmpeg",
+ "@ffmpeg@",
"-hide_banner",
"-loglevel",
"quiet",
@@ -281,7 +281,7 @@ async def strip_silence(
) -> bytes:
"""Strip silence from begin or end of pcm audio using ffmpeg."""
fmt = ContentType.from_bit_depth(bit_depth)
- args = ["ffmpeg", "-hide_banner", "-loglevel", "quiet"]
+ args = ["@ffmpeg@", "-hide_banner", "-loglevel", "quiet"]
args += [
"-acodec",
fmt.name.lower(),
@@ -823,7 +823,7 @@ async def get_ffmpeg_stream(
async def check_audio_support() -> tuple[bool, bool, str]:
"""Check if ffmpeg is present (with/without libsoxr support)."""
# check for FFmpeg presence
- returncode, output = await check_output("ffmpeg -version")
+ returncode, output = await check_output("@ffmpeg@ -version")
ffmpeg_present = returncode == 0 and "FFmpeg" in output.decode()
# use globals as in-memory cache
@@ -877,7 +877,7 @@ async def get_silence(
return
# use ffmpeg for all other encodings
args = [
- "ffmpeg",
+ "@ffmpeg@",
"-hide_banner",
"-loglevel",
"quiet",
@@ -971,7 +971,7 @@ def get_ffmpeg_args(
# generic args
generic_args = [
- "ffmpeg",
+ "@ffmpeg@",
"-hide_banner",
"-loglevel",
loglevel,
diff --git a/music_assistant/server/helpers/tags.py b/music_assistant/server/helpers/tags.py
index dc38e4c0..f4f3e2fe 100644
--- a/music_assistant/server/helpers/tags.py
+++ b/music_assistant/server/helpers/tags.py
@@ -368,7 +368,7 @@ async def parse_tags(
file_path = input_file if isinstance(input_file, str) else "-"
args = (
- "ffprobe",
+ "@ffprobe@",
"-hide_banner",
"-loglevel",
"fatal",
@@ -440,7 +440,7 @@ async def get_embedded_image(input_file: str | AsyncGenerator[bytes, None]) -> b
"""
file_path = input_file if isinstance(input_file, str) else "-"
args = (
- "ffmpeg",
+ "@ffmpeg@",
"-hide_banner",
"-loglevel",
"error",

View File

@ -0,0 +1,35 @@
{ lib
, buildPythonPackage
, fetchPypi
, setuptools
}:
buildPythonPackage rec {
pname = "music-assistant-frontend";
version = "2.5.15";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-D8VFdXgaVXSxk7c24kvb9TflFztS1zLwW4qGqV32nLo=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "~=" ">="
'';
build-system = [ setuptools ];
doCheck = false;
pythonImportsCheck = [ "music_assistant_frontend" ];
meta = with lib; {
changelog = "https://github.com/music-assistant/frontend/releases/tag/${version}";
description = "The Music Assistant frontend";
homepage = "https://github.com/music-assistant/frontend";
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -0,0 +1,119 @@
{ lib
, python3
, fetchFromGitHub
, ffmpeg-headless
, nixosTests
, substituteAll
, providers ? [ ]
}:
let
python = python3.override {
packageOverrides = self: super: {
music-assistant-frontend = self.callPackage ./frontend.nix { };
};
};
providerPackages = (import ./providers.nix).providers;
providerNames = lib.attrNames providerPackages;
providerDependencies = lib.concatMap (provider: (providerPackages.${provider} python.pkgs)) providers;
pythonPath = python.pkgs.makePythonPath providerDependencies;
in
python.pkgs.buildPythonApplication rec {
pname = "music-assistant";
version = "2.0.7";
pyproject = true;
src = fetchFromGitHub {
owner = "music-assistant";
repo = "server";
rev = version;
hash = "sha256-JtdlZ3hH4fRU5TjmMUlrdSSCnLrIGCuSwSSrnLgjYEs=";
};
patches = [
(substituteAll {
src = ./ffmpeg.patch;
ffmpeg = "${lib.getBin ffmpeg-headless}/bin/ffmpeg";
ffprobe = "${lib.getBin ffmpeg-headless}/bin/ffprobe";
})
];
postPatch = ''
sed -i "/--cov/d" pyproject.toml
substituteInPlace pyproject.toml \
--replace-fail "0.0.0" "${version}"
'';
build-system = with python.pkgs; [
setuptools
];
dependencies = with python.pkgs; [
aiohttp
mashumaro
orjson
] ++ optional-dependencies.server;
optional-dependencies = with python.pkgs; {
server = [
aiodns
aiofiles
aiohttp
aiorun
aiosqlite
asyncio-throttle
brotli
certifi
colorlog
cryptography
faust-cchardet
ifaddr
mashumaro
memory-tempfile
music-assistant-frontend
orjson
pillow
python-slugify
shortuuid
unidecode
xmltodict
zeroconf
];
};
nativeCheckInputs = with python.pkgs; [
ffmpeg-headless
pytest-aiohttp
pytestCheckHook
] ++ lib.flatten (lib.attrValues optional-dependencies);
pythonImportsCheck = [ "music_assistant" ];
passthru = {
inherit
python
pythonPath
providerPackages
providerNames
;
tests = nixosTests.music-assistant;
};
meta = with lib; {
changelog = "https://github.com/music-assistant/server/releases/tag/${version}";
description = "Music Assistant is a music library manager for various music sources which can easily stream to a wide range of supported players";
longDescription = ''
Music Assistant is a free, opensource Media library manager that connects to your streaming services and a wide
range of connected speakers. The server is the beating heart, the core of Music Assistant and must run on an
always-on device like a Raspberry Pi, a NAS or an Intel NUC or alike.
'';
homepage = "https://github.com/music-assistant/server";
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
mainProgram = "mass";
};
}

View File

@ -0,0 +1,78 @@
# Do not edit manually, run ./update-providers.py
{
version = "2.0.7";
providers = {
airplay = [
];
builtin = [
];
chromecast = ps: with ps; [
pychromecast
];
deezer = ps: with ps; [
pycryptodome
]; # missing deezer-python-async
dlna = ps: with ps; [
async-upnp-client
];
fanarttv = [
];
filesystem_local = [
];
filesystem_smb = [
];
fully_kiosk = ps: with ps; [
python-fullykiosk
];
hass = [
]; # missing hass-client
hass_players = [
];
jellyfin = [
]; # missing jellyfin_apiclient_python
musicbrainz = [
];
opensubsonic = ps: with ps; [
py-opensonic
];
plex = ps: with ps; [
plexapi
];
qobuz = [
];
radiobrowser = ps: with ps; [
radios
];
slimproto = ps: with ps; [
aioslimproto
];
snapcast = ps: with ps; [
snapcast
];
sonos = ps: with ps; [
defusedxml
soco
sonos-websocket
];
soundcloud = [
]; # missing soundcloudpy
spotify = [
];
test = [
];
theaudiodb = [
];
tidal = ps: with ps; [
tidalapi
];
tunein = [
];
ugp = [
];
ytmusic = ps: with ps; [
pytube
ytmusicapi
];
};
}

View File

@ -0,0 +1,218 @@
#!/usr/bin/env nix-shell
#!nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ jinja2 mashumaro orjson aiofiles packaging ])" -p pyright ruff isort
import asyncio
import json
import os.path
import re
import sys
import tarfile
import tempfile
from dataclasses import dataclass, field
from functools import cache
from io import BytesIO
from pathlib import Path
from subprocess import check_output, run
from typing import Dict, Final, List, Optional, Set, Union, cast
from urllib.request import urlopen
from jinja2 import Environment
from packaging.requirements import Requirement
TEMPLATE = """# Do not edit manually, run ./update-providers.py
{
version = "{{ version }}";
providers = {
{%- for provider in providers | sort(attribute='domain') %}
{{ provider.domain }} = {% if provider.available %}ps: with ps; {% endif %}[
{%- for requirement in provider.available | sort %}
{{ requirement }}
{%- endfor %}
];{% if provider.missing %} # missing {{ ", ".join(provider.missing) }}{% endif %}
{%- endfor %}
};
}
"""
ROOT: Final = (
check_output(
[
"git",
"rev-parse",
"--show-toplevel",
]
)
.decode()
.strip()
)
PACKAGE_MAP = {
"git+https://github.com/MarvinSchenkel/pytube.git": "pytube",
}
def run_sync(cmd: List[str]) -> None:
print(f"$ {' '.join(cmd)}")
process = run(cmd)
if process.returncode != 0:
sys.exit(1)
async def check_async(cmd: List[str]) -> str:
print(f"$ {' '.join(cmd)}")
process = await asyncio.create_subprocess_exec(
*cmd, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE
)
stdout, stderr = await process.communicate()
if process.returncode != 0:
error = stderr.decode()
raise RuntimeError(f"{cmd[0]} failed: {error}")
return stdout.decode().strip()
class Nix:
base_cmd: Final = [
"nix",
"--show-trace",
"--extra-experimental-features",
"nix-command",
]
@classmethod
async def _run(cls, args: List[str]) -> Optional[str]:
return await check_async(cls.base_cmd + args)
@classmethod
async def eval(cls, expr: str) -> Union[List, Dict, int, float, str, bool]:
response = await cls._run(["eval", "-f", f"{ROOT}/default.nix", "--json", expr])
if response is None:
raise RuntimeError("Nix eval expression returned no response")
try:
return json.loads(response)
except (TypeError, ValueError):
raise RuntimeError("Nix eval response could not be parsed from JSON")
async def get_provider_manifests(version: str = "master") -> List:
manifests = []
with tempfile.TemporaryDirectory() as tmp:
with urlopen(
f"https://github.com/music-assistant/music-assistant/archive/{version}.tar.gz"
) as response:
tarfile.open(fileobj=BytesIO(response.read())).extractall(
tmp, filter="data"
)
basedir = Path(os.path.join(tmp, f"server-{version}"))
sys.path.append(str(basedir))
from music_assistant.common.models.provider import ProviderManifest # type: ignore
for fn in basedir.glob("**/manifest.json"):
manifests.append(await ProviderManifest.parse(fn))
return manifests
@cache
def packageset_attributes():
output = check_output(
[
"nix-env",
"-f",
ROOT,
"-qa",
"-A",
"music-assistant.python.pkgs",
"--arg",
"config",
"{ allowAliases = false; }",
"--json",
]
)
return json.loads(output)
class TooManyMatches(Exception):
pass
class NoMatch(Exception):
pass
def resolve_package_attribute(package: str) -> str:
pattern = re.compile(rf"^music-assistant\.python\.pkgs\.{package}$", re.I)
packages = packageset_attributes()
matches = []
for attr in packages.keys():
if pattern.match(attr):
matches.append(attr.split(".")[-1])
if len(matches) > 1:
raise TooManyMatches(
f"Too many matching attributes for {package}: {' '.join(matches)}"
)
if not matches:
raise NoMatch(f"No matching attribute for {package}")
return matches.pop()
@dataclass
class Provider:
domain: str
available: list[str] = field(default_factory=list)
missing: list[str] = field(default_factory=list)
def __eq__(self, other):
return self.domain == other.domain
def __hash__(self):
return hash(self.domain)
def resolve_providers(manifests) -> Set:
providers = set()
for manifest in manifests:
provider = Provider(manifest.domain)
for requirement in manifest.requirements:
# allow substituting requirement specifications that packaging cannot parse
if requirement in PACKAGE_MAP:
requirement = PACKAGE_MAP[requirement]
requirement = Requirement(requirement)
try:
provider.available.append(resolve_package_attribute(requirement.name))
except TooManyMatches as ex:
print(ex, file=sys.stderr)
provider.missing.append(requirement.name)
except NoMatch:
provider.missing.append(requirement.name)
providers.add(provider)
return providers
def render(version: str, providers: Set):
path = os.path.join(ROOT, "pkgs/by-name/mu/music-assistant/providers.nix")
env = Environment()
template = env.from_string(TEMPLATE)
template.stream(version=version, providers=providers).dump(path)
async def main():
version: str = cast(str, await Nix.eval("music-assistant.version"))
manifests = await get_provider_manifests(version)
providers = resolve_providers(manifests)
render(version, providers)
if __name__ == "__main__":
run_sync(["pyright", __file__])
run_sync(["ruff", "check", "--ignore=E501", __file__])
run_sync(["isort", __file__])
run_sync(["ruff", "format", __file__])
asyncio.run(main())

View File

@ -10,13 +10,13 @@
buildBazelPackage rec {
pname = "perf_data_converter";
version = "0-unstable-2024-03-12";
version = "0-unstable-2024-07-10";
src = fetchFromGitHub {
owner = "google";
repo = "perf_data_converter";
rev = "e1cfe1e7e5d8cf3b728a166bf02d4227c82801eb";
hash = "sha256-Y3tBLH2jf1f28o6RK2inq9FulKc66qcqwKmxYdFC5tA=";
rev = "5b27c287a57811db91d40b5776cbaedd00945afc";
hash = "sha256-A5DEDi52gp1gTugGnutmKNRa/GGsc+LKLE3xRl/1gbw=";
};
bazel = bazel_6;

View File

@ -1,14 +1,17 @@
{ lib
, stdenv
, fetchFromGitHub
, util-linux
, SDL2
, SDL2_ttf
, SDL2_image
, openssl
, which
, libsForQt5
, makeWrapper
{
lib,
stdenv,
fetchFromGitHub,
util-linux,
SDL2,
SDL2_ttf,
SDL2_image,
openssl,
which,
libsForQt5,
makeWrapper,
makeDesktopItem,
copyDesktopItems,
}:
stdenv.mkDerivation (finalAttrs: {
@ -26,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
patches = [ ./assets-path.diff ];
postPatch = ''
substituteInPlace src/poptracker.cpp --replace "@assets@" "$out/share/$pname/"
substituteInPlace src/poptracker.cpp --replace "@assets@" "$out/share/poptracker/"
'';
enableParallelBuilding = true;
@ -34,6 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
util-linux
makeWrapper
copyDesktopItems
];
buildInputs = [
@ -52,11 +56,33 @@ stdenv.mkDerivation (finalAttrs: {
installPhase = ''
runHook preInstall
install -m555 -Dt $out/bin build/linux-x86_64/poptracker
install -m444 -Dt $out/share/${finalAttrs.pname} assets/*
wrapProgram $out/bin/poptracker --prefix PATH : ${lib.makeBinPath [ which libsForQt5.kdialog ]}
install -m444 -Dt $out/share/poptracker assets/*
wrapProgram $out/bin/poptracker --prefix PATH : ${
lib.makeBinPath [
which
libsForQt5.kdialog
]
}
mkdir -p $out/share/icons/hicolor/{64x64,512x512}/apps
ln -s $out/share/poptracker/icon.png $out/share/icons/hicolor/64x64/apps/poptracker.png
ln -s $out/share/poptracker/icon512.png $out/share/icons/hicolor/512x512/apps/poptracker.png
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "poptracker";
desktopName = "PopTracker";
exec = "poptracker";
comment = "Universal, scriptable randomizer tracking solution";
icon = "poptracker";
categories = [
"Game"
"Utility"
];
})
];
meta = {
description = "Scriptable tracker for randomized games";
longDescription = ''
@ -67,7 +93,10 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "https://github.com/black-sliver/PopTracker";
changelog = "https://github.com/black-sliver/PopTracker/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ freyacodes pyrox0 ];
maintainers = with lib.maintainers; [
freyacodes
pyrox0
];
mainProgram = "poptracker";
platforms = [ "x86_64-linux" ];
};

View File

@ -0,0 +1,29 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
}:
buildNpmPackage rec {
pname = "prettier-plugin-go-template";
version = "0-unstable-2023-07-26";
src = fetchFromGitHub {
owner = "NiklasPor";
repo = pname;
rev = "d91c82e1377b89592ea3365e7e5569688fbc7954";
hash = "sha256-3Tvh+OzqDTtzoaTp5dZpgEQiNA2Y2dbyq4SV9Od499A=";
};
npmDepsHash = "sha256-PpJnVZFRxpUHux2jIBDtyBS4qNo6IJY4kwTAq6stEVQ=";
dontNpmBuild = true;
meta = {
description = "Fixes prettier formatting for go templates";
mainProgram = "prettier-plugin-go-template";
homepage = "https://github.com/NiklasPor/prettier-plugin-go-template";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jukremer ];
};
}

View File

@ -4,14 +4,14 @@
}:
python3Packages.buildPythonApplication rec {
pname = "rclip";
version = "1.10.1";
version = "1.10.2";
pyproject = true;
src = fetchFromGitHub {
owner = "yurijmikhalevich";
repo = "rclip";
rev = "refs/tags/v${version}";
hash = "sha256-02ZbeUw+O7tBQwauklaPPcgNasG+mYrSnw9TGJqtJfk=";
hash = "sha256-z+zwhd3JH40Vg9yHt9ektvm2jWFOvj1DaCSI9GwXLT8=";
};
nativeBuildInputs = with python3Packages; [

View File

@ -14,16 +14,16 @@
buildGoModule rec {
pname = "seabird";
version = "0.3.2";
version = "0.4.2";
src = fetchFromGitHub {
owner = "getseabird";
repo = "seabird";
rev = "v${version}";
hash = "sha256-MZEgzTwaBNXLimSj/vXR624DCJ7i2W5lYUdVxqvFii0=";
hash = "sha256-GfoP3TeSzA4Hi3fCUR3Y3yWUAj3ogxTRsD4hXuERPio=";
};
vendorHash = "sha256-g7qKI78VeDUu8yafrk2llCIirW/1uxfx6urVLRexsPE=";
vendorHash = "sha256-uUMQ2AddIfPvD7B3KOfN7fWL8oIEK6G5L+NPYo+em5k=";
nativeBuildInputs = [
copyDesktopItems

View File

@ -9,18 +9,18 @@
buildGoModule rec {
pname = "shopware-cli";
version = "0.4.48";
version = "0.4.50";
src = fetchFromGitHub {
repo = "shopware-cli";
owner = "FriendsOfShopware";
rev = version;
hash = "sha256-pHafNKaaxgH4nXfcMwQpWYCSoEFIPwlA+5llilnpGhs=";
hash = "sha256-dVq2Aw6oYkr8LAdd0LeFvkzMYSronCsDxesqUh2IGV0=";
};
nativeBuildInputs = [ installShellFiles makeWrapper ];
nativeCheckInputs = [ git dart-sass ];
vendorHash = "sha256-wGOF4hCdKSqpo6wp3kbOR/XEnXFDXMlPCoMtl6/TZWM=";
vendorHash = "sha256-ABvjNRADmamYiq5A0NZjv1HlGxxAHQlut1ZR2kA04oU=";
postInstall = ''
export HOME="$(mktemp -d)"

View File

@ -6,11 +6,11 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "silverbullet";
version = "0.7.7";
version = "0.8.1";
src = fetchurl {
url = "https://github.com/silverbulletmd/silverbullet/releases/download/${finalAttrs.version}/silverbullet.js";
hash = "sha256-EhHPysliRi1bv/skS4+ljQW6qFsijmSup1+7/fVfFdg=";
hash = "sha256-aofO1IBjxew9r2hC1uEyLYSZrVUoGo4Y7igKbaxs2G0=";
};
dontUnpack = true;

View File

@ -0,0 +1,62 @@
{
lib,
pkgs,
stdenv,
fetchFromGitHub,
python3Packages,
}:
python3Packages.buildPythonApplication rec {
pname = "skypilot";
version = "0.6.0";
src = fetchFromGitHub {
owner = "skypilot-org";
repo = "skypilot";
rev = "v${version}";
hash = "sha256-SddXouful2RSp7ijx6YLzfBhBvzN9xKM2dRzivgNflw==";
};
pyproject = true;
build-system = with python3Packages; [ setuptools ];
# when updating, please ensure package version constraints stipulaed
# in setup.py are met
propagatedBuildInputs = with python3Packages; [
cachetools
click
colorama
cryptography
filelock
jinja2
jsonschema
networkx
packaging
pandas
pendulum
prettytable
psutil
python-dotenv
pyyaml
pulp
requests
rich
tabulate
typing-extensions
wheel
];
meta = {
description = "Run LLMs and AI on any Cloud";
longDescription = ''
SkyPilot is a framework for running LLMs, AI, and batch jobs on any
cloud, offering maximum cost savings, highest GPU availability, and
managed execution.
'';
homepage = "https://github.com/skypilot-org/skypilot";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ seanrmurphy ];
mainProgram = "sky";
};
}

View File

@ -6,13 +6,13 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "stevenblack-blocklist";
version = "3.14.87";
version = "3.14.88";
src = fetchFromGitHub {
owner = "StevenBlack";
repo = "hosts";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-QkzDj4EUtmNmJltYu6YOZQBtxm8S23PGdg8nosCzK9M=";
hash = "sha256-tS7CDuotk+aAbtOR1x3u3ymyRvPgb3GZjuDcJNm6lZs=";
};
outputs = [

View File

@ -12,12 +12,12 @@ in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "suwayomi-server";
version = "1.0.0";
revision = 1498;
version = "1.1.1";
revision = 1535;
src = fetchurl {
url = "https://github.com/Suwayomi/Suwayomi-Server/releases/download/v${finalAttrs.version}/Suwayomi-Server-v${finalAttrs.version}-r${toString finalAttrs.revision}.jar";
hash = "sha256-CskVYc+byfn3mNzbOX1fCXPpjihtWpoRGBpXDY378c0=";
hash = "sha256-mPzREuH89RGhZLK+5aIPuq1gmNGc9MGG0wh4ZV5dLTg=";
};
nativeBuildInputs = [

View File

@ -6,6 +6,8 @@
fetchFromGitHub,
makeWrapper,
mvnDepsHash ? null,
enableOcr ? true,
tesseract,
nixosTests,
}:
@ -52,21 +54,25 @@ maven'.buildMavenPackage rec {
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
installPhase =
let
binPath = lib.makeBinPath ([ jdk8.jre ] ++ lib.optionals enableOcr [ tesseract ]);
in
''
runHook preInstall
# Note: using * instead of version would match multiple files
install -Dm644 tika-app/target/tika-app-${version}.jar $out/share/tika/tika-app.jar
install -Dm644 tika-server/tika-server-standard/target/tika-server-standard-${version}.jar $out/share/tika/tika-server.jar
# Note: using * instead of version would match multiple files
install -Dm644 tika-app/target/tika-app-${version}.jar $out/share/tika/tika-app.jar
install -Dm644 tika-server/tika-server-standard/target/tika-server-standard-${version}.jar $out/share/tika/tika-server.jar
makeWrapper ${jdk8.jre}/bin/java $out/bin/tika-app \
--add-flags "-jar $out/share/tika/tika-app.jar"
makeWrapper ${jdk8.jre}/bin/java $out/bin/tika-server \
--prefix PATH : ${lib.makeBinPath [ jdk8.jre ]} \
--add-flags "-jar $out/share/tika/tika-server.jar"
makeWrapper ${jdk8.jre}/bin/java $out/bin/tika-app \
--add-flags "-jar $out/share/tika/tika-app.jar"
makeWrapper ${jdk8.jre}/bin/java $out/bin/tika-server \
--prefix PATH : ${binPath} \
--add-flags "-jar $out/share/tika/tika-server.jar"
runHook postInstall
'';
runHook postInstall
'';
passthru.tests = {
inherit (nixosTests) tika;

View File

@ -22,12 +22,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "tradingview";
version = "2.7.7";
revision = "53";
version = "2.8.1";
revision = "56";
src = fetchurl {
url = "https://api.snapcraft.io/api/v1/snaps/download/nJdITJ6ZJxdvfu8Ch7n5kH5P99ClzBYV_${finalAttrs.revision}.snap";
hash = "sha256-izASQXx/wTPKvPxWRh0csKsXoQlsFaOsLsNthepwW64=";
hash = "sha256-cl1c/ZRHBW6qHYaVD7BiC0CaZMsXOLGCF7lP+oBVnpk=";
};
nativeBuildInputs = [

0
pkgs/by-name/tr/tradingview/update.sh Normal file → Executable file
View File

View File

@ -0,0 +1,41 @@
{
lib,
stdenvNoCC,
fetchgit,
gitUpdater,
rename,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "ubuntu-classic";
version = "0.83-6ubuntu2";
src = fetchgit {
url = "https://git.launchpad.net/ubuntu/+source/fonts-ubuntu-classic";
rev = "import/${finalAttrs.version}";
hash = "sha256-GrpBVgisVu7NklFYqkEqYi0hui/pCHlsM3Ky4mEUq90=";
};
installPhase = ''
runHook preInstall
install -m444 -Dt $out/share/fonts/truetype/ubuntu *.ttf
runHook postInstall
'';
passthru.updateScript = gitUpdater { rev-prefix = "import/"; };
meta = with lib; {
description = "Ubuntu Classic font";
longDescription = "The Ubuntu typeface has been specially
created to complement the Ubuntu tone of voice. It has a
contemporary style and contains characteristics unique to
the Ubuntu brand that convey a precise, reliable and free attitude.";
homepage = "https://design.ubuntu.com/font";
changelog = "https://git.launchpad.net/ubuntu/+source/fonts-ubuntu-classic/tree/FONTLOG.txt?h=${finalAttrs.src.rev}";
license = licenses.ufl;
platforms = platforms.all;
maintainers = with maintainers; [ bobby285271 ];
};
})

View File

@ -0,0 +1,43 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
gitUpdater,
rename,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "ubuntu-sans-mono";
version = "1.004";
src = fetchFromGitHub {
owner = "canonical";
repo = "Ubuntu-Sans-Mono-fonts";
rev = "v${finalAttrs.version}";
hash = "sha256-IjfjFsXRYK2l6i4Q/LoYuwu5t18TmVXXJQDSsW45qNc=";
};
installPhase = ''
runHook preInstall
install -m444 -Dt $out/share/fonts/truetype/ubuntu-sans fonts/variable/*
${rename}/bin/rename 's/\[.*\]//' $out/share/fonts/truetype/ubuntu-sans/*
runHook postInstall
'';
passthru.updateScript = gitUpdater { rev-prefix = "v"; };
meta = with lib; {
description = "Ubuntu Font Family (Mono)";
longDescription = "The Ubuntu Font Family are a set of matching libre/open fonts.
The fonts were originally developed in 20102011,
further expanded and improved in 2015,
and expanded again in 20222023 when variable fonts were added.";
homepage = "https://design.ubuntu.com/font";
changelog = "https://github.com/canonical/Ubuntu-Sans-Mono-fonts/blob/${finalAttrs.src.rev}/FONTLOG.txt";
license = licenses.ufl;
platforms = platforms.all;
maintainers = with maintainers; [ jopejoe1 ];
};
})

View File

@ -0,0 +1,43 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
gitUpdater,
rename,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "ubuntu-sans";
version = "1.004";
src = fetchFromGitHub {
owner = "canonical";
repo = "Ubuntu-Sans-fonts";
rev = "v${finalAttrs.version}";
hash = "sha256-TJHhRGBPDrYOAmOKyMaLcL2ugr4Bw2J6ErovglNx648=";
};
installPhase = ''
runHook preInstall
install -m444 -Dt $out/share/fonts/truetype/ubuntu-sans fonts/variable/*
${rename}/bin/rename 's/\[.*\]//' $out/share/fonts/truetype/ubuntu-sans/*
runHook postInstall
'';
passthru.updateScript = gitUpdater { rev-prefix = "v"; };
meta = with lib; {
description = "Ubuntu Font Family";
longDescription = "The Ubuntu Font Family are a set of matching libre/open fonts.
The fonts were originally developed in 20102011,
further expanded and improved in 2015,
and expanded again in 20222023 when variable fonts were added.";
homepage = "https://design.ubuntu.com/font";
changelog = "https://github.com/canonical/Ubuntu-Sans-fonts/blob/${finalAttrs.src.rev}/FONTLOG.txt";
license = licenses.ufl;
platforms = platforms.all;
maintainers = with maintainers; [ jopejoe1 ];
};
})

View File

@ -218,13 +218,13 @@ dependencies = [
[[package]]
name = "async-trait"
version = "0.1.80"
version = "0.1.81"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -275,13 +275,15 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
[[package]]
name = "axoasset"
version = "0.9.5"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83394fb98d130ef5a4713d26dccc1bb25c66e1d58f351fed710af62c57abb8fa"
checksum = "45e7b7ac1c1cd4fdcaa2f9e704defa9defd996039083d85e17efa5e8eefb3bd2"
dependencies = [
"camino",
"image",
"miette",
"mime",
"reqwest",
"serde",
"serde_json",
"thiserror",
@ -313,9 +315,9 @@ dependencies = [
[[package]]
name = "axoupdater"
version = "0.6.6"
version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8cc5997cf9d00fa790ba6f19688d93b89760bd641d1c2482bcfbc2bf56988576"
checksum = "d51e87c9280d6f722419f783fdcef745dffd6b45d38d665380ae6b7f237d3b74"
dependencies = [
"axoasset",
"axoprocess",
@ -323,7 +325,6 @@ dependencies = [
"camino",
"homedir",
"miette",
"reqwest",
"serde",
"tempfile",
"thiserror",
@ -652,7 +653,7 @@ dependencies = [
"num-traits",
"serde",
"wasm-bindgen",
"windows-targets 0.52.5",
"windows-targets 0.52.6",
]
[[package]]
@ -684,9 +685,9 @@ dependencies = [
[[package]]
name = "clap"
version = "4.5.8"
version = "4.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d"
checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462"
dependencies = [
"clap_builder",
"clap_derive",
@ -694,9 +695,9 @@ dependencies = [
[[package]]
name = "clap_builder"
version = "4.5.8"
version = "4.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708"
checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942"
dependencies = [
"anstream",
"anstyle",
@ -716,31 +717,20 @@ dependencies = [
[[package]]
name = "clap_complete_command"
version = "0.5.1"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "183495371ea78d4c9ff638bfc6497d46fed2396e4f9c50aebc1278a4a9919a3d"
checksum = "da8e198c052315686d36371e8a3c5778b7852fc75cc313e4e11eeb7a644a1b62"
dependencies = [
"clap",
"clap_complete",
"clap_complete_fig",
"clap_complete_nushell",
]
[[package]]
name = "clap_complete_fig"
version = "4.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54b3e65f91fabdd23cac3d57d39d5d938b4daabd070c335c006dccb866a61110"
dependencies = [
"clap",
"clap_complete",
]
[[package]]
name = "clap_complete_nushell"
version = "0.1.11"
version = "4.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d02bc8b1a18ee47c4d2eec3fb5ac034dc68ebea6125b1509e9ccdffcddce66e"
checksum = "1accf1b463dee0d3ab2be72591dccdab8bef314958340447c882c4c72acfe2a3"
dependencies = [
"clap",
"clap_complete",
@ -755,7 +745,7 @@ dependencies = [
"heck 0.5.0",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -1395,7 +1385,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -1651,9 +1641,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
[[package]]
name = "hyper"
version = "1.3.1"
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d"
checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05"
dependencies = [
"bytes",
"futures-channel",
@ -1691,9 +1681,9 @@ dependencies = [
[[package]]
name = "hyper-util"
version = "0.1.5"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56"
checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956"
dependencies = [
"bytes",
"futures-channel",
@ -1758,6 +1748,17 @@ dependencies = [
"winapi-util",
]
[[package]]
name = "image"
version = "0.25.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11"
dependencies = [
"bytemuck",
"byteorder",
"num-traits",
]
[[package]]
name = "imagesize"
version = "0.11.0"
@ -1842,6 +1843,7 @@ dependencies = [
"tracing",
"uv-fs",
"uv-normalize",
"uv-warnings",
"walkdir",
"zip",
]
@ -2142,7 +2144,7 @@ checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -2379,7 +2381,7 @@ dependencies = [
"libc",
"redox_syscall 0.5.1",
"smallvec",
"windows-targets 0.52.5",
"windows-targets 0.52.6",
]
[[package]]
@ -2444,6 +2446,7 @@ dependencies = [
"pyo3",
"pyo3-log",
"regex",
"schemars",
"serde",
"serde_json",
"testing_logger",
@ -2492,7 +2495,7 @@ dependencies = [
"pest_meta",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -2539,7 +2542,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -2667,9 +2670,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.85"
version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
dependencies = [
"unicode-ident",
]
@ -2697,7 +2700,7 @@ dependencies = [
[[package]]
name = "pubgrub"
version = "0.2.1"
source = "git+https://github.com/astral-sh/pubgrub?rev=b4435e2f3af10dab2336a0345b35dcd622699d06#b4435e2f3af10dab2336a0345b35dcd622699d06"
source = "git+https://github.com/astral-sh/pubgrub?rev=3f0ba760951ab0deeac874b98bb18fc90103fcf7#3f0ba760951ab0deeac874b98bb18fc90103fcf7"
dependencies = [
"indexmap",
"log",
@ -2716,7 +2719,7 @@ dependencies = [
"indoc",
"libc",
"memoffset 0.9.1",
"parking_lot 0.11.2",
"parking_lot 0.12.3",
"portable-atomic",
"pyo3-build-config",
"pyo3-ffi",
@ -2764,7 +2767,7 @@ dependencies = [
"proc-macro2",
"pyo3-macros-backend",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -2777,7 +2780,7 @@ dependencies = [
"proc-macro2",
"pyo3-build-config",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -2976,13 +2979,13 @@ dependencies = [
[[package]]
name = "reflink-copy"
version = "0.1.18"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d731e7e3ebfcf422d96b8473e507d5b64790900dd5464772d38d1da9da24d3a"
checksum = "dc31414597d1cd7fdd2422798b7652a6329dda0fe0219e6335a13d5bcaa9aeb6"
dependencies = [
"cfg-if",
"rustix",
"windows 0.57.0",
"windows 0.58.0",
]
[[package]]
@ -3438,7 +3441,7 @@ dependencies = [
"proc-macro2",
"quote",
"serde_derive_internals",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -3484,22 +3487,22 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
[[package]]
name = "serde"
version = "1.0.203"
version = "1.0.204"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.203"
version = "1.0.204"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -3510,14 +3513,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
name = "serde_json"
version = "1.0.119"
version = "1.0.120"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8eddb61f0697cc3989c5d64b452f5488e2b8a60fd7d5076a3045076ffef8cb0"
checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5"
dependencies = [
"itoa",
"ryu",
@ -3741,9 +3744,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.68"
version = "2.0.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9"
checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462"
dependencies = [
"proc-macro2",
"quote",
@ -3780,9 +3783,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
[[package]]
name = "target-lexicon"
version = "0.12.14"
version = "0.12.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
checksum = "4873307b7c257eddcb50c9bedf158eb669578359fb28428bef438fec8e6ba7c2"
[[package]]
name = "temp-env"
@ -3839,7 +3842,7 @@ dependencies = [
"cfg-if",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -3850,7 +3853,7 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
"test-case-core",
]
@ -3872,7 +3875,7 @@ checksum = "5999e24eaa32083191ba4e425deb75cdf25efefabe5aaccb7446dd0d4122a3f5"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -3897,22 +3900,22 @@ dependencies = [
[[package]]
name = "thiserror"
version = "1.0.61"
version = "1.0.62"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
checksum = "f2675633b1499176c2dff06b0856a27976a8f9d436737b4cf4f312d4d91d8bbb"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.61"
version = "1.0.62"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
checksum = "d20468752b09f49e909e55a5d338caa8bedf615594e9d80bc4c565d30faf798c"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -3927,9 +3930,9 @@ dependencies = [
[[package]]
name = "tikv-jemalloc-sys"
version = "0.5.4+5.3.0-patched"
version = "0.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1"
checksum = "cd3c60906412afa9c2b5b5a48ca6a5abe5736aec9eb48ad05037a677e52e4e2d"
dependencies = [
"cc",
"libc",
@ -3937,9 +3940,9 @@ dependencies = [
[[package]]
name = "tikv-jemallocator"
version = "0.5.4"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "965fe0c26be5c56c94e38ba547249074803efd52adfb66de62107d95aab3eaca"
checksum = "4cec5ff18518d81584f477e9bfdf957f5bb0979b0bac3af4ca30b5b3ae2d2865"
dependencies = [
"libc",
"tikv-jemalloc-sys",
@ -4028,7 +4031,7 @@ checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -4106,9 +4109,9 @@ dependencies = [
[[package]]
name = "toml_edit"
version = "0.22.14"
version = "0.22.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38"
checksum = "d59a3a72298453f564e2b111fa896f8d07fabb36f51f06d7e875fc5e0b5a3ef1"
dependencies = [
"indexmap",
"serde",
@ -4164,7 +4167,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -4239,9 +4242,9 @@ dependencies = [
[[package]]
name = "tracing-tree"
version = "0.3.1"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b56c62d2c80033cb36fae448730a2f2ef99410fe3ecbffc916681a32f6807dbe"
checksum = "f459ca79f1b0d5f71c54ddfde6debfc59c8b6eeb46808ae492077f739dc7b49c"
dependencies = [
"nu-ansi-term 0.50.0",
"tracing-core",
@ -4425,7 +4428,7 @@ checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
[[package]]
name = "uv"
version = "0.2.22"
version = "0.2.26"
dependencies = [
"anstream",
"anyhow",
@ -4443,6 +4446,7 @@ dependencies = [
"fs-err",
"futures",
"ignore",
"indexmap",
"indicatif",
"indoc",
"insta",
@ -4489,10 +4493,12 @@ dependencies = [
"uv-resolver",
"uv-scripts",
"uv-settings",
"uv-shell",
"uv-tool",
"uv-types",
"uv-virtualenv",
"uv-warnings",
"which",
]
[[package]]
@ -4583,6 +4589,8 @@ dependencies = [
"fs-err",
"insta",
"install-wheel-rs",
"pep508_rs",
"pypi-types",
"serde",
"url",
"uv-cache",
@ -4675,6 +4683,7 @@ dependencies = [
"distribution-types",
"fs-err",
"install-wheel-rs",
"itertools 0.13.0",
"mimalloc",
"owo-colors",
"pep508_rs",
@ -4687,6 +4696,7 @@ dependencies = [
"serde",
"serde_json",
"tagu",
"textwrap",
"tikv-jemallocator",
"tokio",
"tracing",
@ -4700,6 +4710,8 @@ dependencies = [
"uv-distribution",
"uv-git",
"uv-installer",
"uv-macros",
"uv-options-metadata",
"uv-python",
"uv-resolver",
"uv-settings",
@ -4773,7 +4785,9 @@ dependencies = [
"uv-extract",
"uv-fs",
"uv-git",
"uv-macros",
"uv-normalize",
"uv-options-metadata",
"uv-types",
"uv-warnings",
"zip",
@ -4790,6 +4804,7 @@ dependencies = [
"md-5",
"pypi-types",
"rayon",
"reqwest",
"rustc-hash 2.0.0",
"sha2",
"thiserror",
@ -4882,8 +4897,10 @@ dependencies = [
name = "uv-macros"
version = "0.0.1"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
"textwrap",
]
[[package]]
@ -4895,6 +4912,13 @@ dependencies = [
"serde",
]
[[package]]
name = "uv-options-metadata"
version = "0.0.1"
dependencies = [
"serde",
]
[[package]]
name = "uv-python"
version = "0.0.1"
@ -4927,6 +4951,7 @@ dependencies = [
"tempfile",
"test-log",
"thiserror",
"tokio",
"tokio-util",
"tracing",
"url",
@ -4945,7 +4970,6 @@ dependencies = [
name = "uv-requirements"
version = "0.1.0"
dependencies = [
"anstream",
"anyhow",
"cache-key",
"configparser",
@ -5046,6 +5070,7 @@ dependencies = [
name = "uv-settings"
version = "0.0.1"
dependencies = [
"clap",
"dirs-sys",
"distribution-types",
"fs-err",
@ -5061,11 +5086,24 @@ dependencies = [
"uv-fs",
"uv-macros",
"uv-normalize",
"uv-options-metadata",
"uv-python",
"uv-resolver",
"uv-warnings",
]
[[package]]
name = "uv-shell"
version = "0.0.1"
dependencies = [
"anyhow",
"home",
"same-file",
"tracing",
"uv-fs",
"winreg",
]
[[package]]
name = "uv-state"
version = "0.0.1"
@ -5123,7 +5161,7 @@ dependencies = [
[[package]]
name = "uv-version"
version = "0.2.22"
version = "0.2.26"
[[package]]
name = "uv-virtualenv"
@ -5218,7 +5256,7 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
"wasm-bindgen-shared",
]
@ -5252,7 +5290,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@ -5374,17 +5412,17 @@ dependencies = [
"windows-core 0.52.0",
"windows-implement 0.52.0",
"windows-interface 0.52.0",
"windows-targets 0.52.5",
"windows-targets 0.52.6",
]
[[package]]
name = "windows"
version = "0.57.0"
version = "0.58.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143"
checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6"
dependencies = [
"windows-core 0.57.0",
"windows-targets 0.52.5",
"windows-core 0.58.0",
"windows-targets 0.52.6",
]
[[package]]
@ -5393,19 +5431,20 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
dependencies = [
"windows-targets 0.52.5",
"windows-targets 0.52.6",
]
[[package]]
name = "windows-core"
version = "0.57.0"
version = "0.58.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d"
checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99"
dependencies = [
"windows-implement 0.57.0",
"windows-interface 0.57.0",
"windows-implement 0.58.0",
"windows-interface 0.58.0",
"windows-result",
"windows-targets 0.52.5",
"windows-strings",
"windows-targets 0.52.6",
]
[[package]]
@ -5416,18 +5455,18 @@ checksum = "12168c33176773b86799be25e2a2ba07c7aab9968b37541f1094dbd7a60c8946"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
name = "windows-implement"
version = "0.57.0"
version = "0.58.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7"
checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
@ -5438,27 +5477,37 @@ checksum = "9d8dc32e0095a7eeccebd0e3f09e9509365ecb3fc6ac4d6f5f14a3f6392942d1"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
name = "windows-interface"
version = "0.57.0"
version = "0.58.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7"
checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.68",
"syn 2.0.71",
]
[[package]]
name = "windows-result"
version = "0.1.1"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "749f0da9cc72d82e600d8d2e44cadd0b9eedb9038f71a1c58556ac1c5791813b"
checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e"
dependencies = [
"windows-targets 0.52.5",
"windows-targets 0.52.6",
]
[[package]]
name = "windows-strings"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10"
dependencies = [
"windows-result",
"windows-targets 0.52.6",
]
[[package]]
@ -5476,7 +5525,7 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
"windows-targets 0.52.5",
"windows-targets 0.52.6",
]
[[package]]
@ -5496,18 +5545,18 @@ dependencies = [
[[package]]
name = "windows-targets"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
"windows_aarch64_gnullvm 0.52.5",
"windows_aarch64_msvc 0.52.5",
"windows_i686_gnu 0.52.5",
"windows_aarch64_gnullvm 0.52.6",
"windows_aarch64_msvc 0.52.6",
"windows_i686_gnu 0.52.6",
"windows_i686_gnullvm",
"windows_i686_msvc 0.52.5",
"windows_x86_64_gnu 0.52.5",
"windows_x86_64_gnullvm 0.52.5",
"windows_x86_64_msvc 0.52.5",
"windows_i686_msvc 0.52.6",
"windows_x86_64_gnu 0.52.6",
"windows_x86_64_gnullvm 0.52.6",
"windows_x86_64_msvc 0.52.6",
]
[[package]]
@ -5518,9 +5567,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_msvc"
@ -5530,9 +5579,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
@ -5542,15 +5591,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
[[package]]
name = "windows_i686_gnu"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
[[package]]
name = "windows_i686_gnullvm"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
@ -5560,9 +5609,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]]
name = "windows_i686_msvc"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
@ -5572,9 +5621,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
@ -5584,9 +5633,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
@ -5596,9 +5645,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.5"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "winnow"

View File

@ -15,21 +15,21 @@
python3Packages.buildPythonApplication rec {
pname = "uv";
version = "0.2.22";
version = "0.2.26";
pyproject = true;
src = fetchFromGitHub {
owner = "astral-sh";
repo = "uv";
rev = "refs/tags/${version}";
hash = "sha256-+eQdR6+0O1CTZoNIodM52R25lLZT+qB2kFy7oWaE+7M=";
hash = "sha256-JjRXcbRwZyrS0QFfDjlJrMUxXJrkv9uORibwZ11zZ50=";
};
cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock;
outputHashes = {
"async_zip-0.0.17" = "sha256-Q5fMDJrQtob54CTII3+SXHeozy5S5s3iLOzntevdGOs=";
"pubgrub-0.2.1" = "sha256-6tr+HATYSn1A1uVJwmz40S4yLDOJlX8vEokOOtdFG0M=";
"pubgrub-0.2.1" = "sha256-4/Z/NA0MsHFaChu+sNzIQJgV0M62ZXOGQubzITIC4fI=";
"reqwest-middleware-0.3.2" = "sha256-OiC8Kg+F2eKy7YNuLtgYPi95DrbxLvsIKrKEeyuzQTo=";
};
};

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "man-pages";
version = "6.9";
version = "6.9.1";
src = fetchurl {
url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz";
hash = "sha256-0Uyv9UzGYvNLG3C89i1OJ+TC/SYGcqNbbnSvcbP3H4g=";
hash = "sha256-4jy6wp8RC6Vx8NqFI+edNzaRRm7X8qMTAXIYF9NFML0=";
};
makeFlags = [

View File

@ -1,32 +0,0 @@
{ lib, stdenvNoCC, fetchzip }:
stdenvNoCC.mkDerivation rec {
pname = "ubuntu-font-family";
version = "0.83";
src = fetchzip {
url = "https://assets.ubuntu.com/v1/fad7939b-ubuntu-font-family-${version}.zip";
hash = "sha256-FAg1xn8Gcbwmuvqtg9SquSet4oTT9nqE+Izeq7ZMVcA=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/fonts/ubuntu
mv *.ttf $out/share/fonts/ubuntu
runHook postInstall
'';
meta = with lib; {
description = "Ubuntu Font Family";
longDescription = "The Ubuntu typeface has been specially
created to complement the Ubuntu tone of voice. It has a
contemporary style and contains characteristics unique to
the Ubuntu brand that convey a precise, reliable and free attitude.";
homepage = "http://font.ubuntu.com/";
license = licenses.ufl;
platforms = platforms.all;
maintainers = [ maintainers.antono ];
};
}

View File

@ -2,11 +2,11 @@
stdenvNoCC.mkDerivation rec {
pname = "clash-geoip";
version = "20240612";
version = "20240712";
src = fetchurl {
url = "https://github.com/Dreamacro/maxmind-geoip/releases/download/${version}/Country.mmdb";
sha256 = "sha256-uLXdQUrhBZC7av5MWvlVC0W8UQBWDsYhdmKwKEfOQfk=";
sha256 = "sha256-qCa1Udu3qcXggDcVRYqTs7Jvisudh0ZMb48oKVYCG+k=";
};
dontUnpack = true;

View File

@ -6,13 +6,13 @@
stdenvNoCC.mkDerivation (self: {
pname = "alacritty-theme";
version = "0-unstable-2024-07-03";
version = "0-unstable-2024-07-16";
src = fetchFromGitHub {
owner = "alacritty";
repo = "alacritty-theme";
rev = "b5a35e2f6e186f70560a3123c4fbc14b2c99af2f";
hash = "sha256-60/XiJHeCP06DFjEosTgWJlzV4lfS/Bs24nfRCSQU70=";
rev = "cafca9764653f0bd536073a0f882227f04ddc256";
hash = "sha256-2MZOZ1nVu9lSBAuvCgebtWjX5uoEqMqd8jcEjOfTTMM=";
};
dontConfigure = true;

View File

@ -17,7 +17,7 @@
, zlib
, ghc
, gmp-static
, verilog
, iverilog
, asciidoctor
, texliveFull
, which
@ -108,7 +108,7 @@ in stdenv.mkDerivation rec {
nativeCheckInputs = [
gmp-static
verilog
iverilog
];
checkTarget = "check-smoke"; # this is the shortest check but "check-suite" tests much more

View File

@ -11,7 +11,7 @@
, readline
, symlinkJoin
, tcl
, verilog
, iverilog
, zlib
, yosys
, yosys-bluespec
@ -147,7 +147,7 @@ in stdenv.mkDerivation (finalAttrs: {
checkTarget = "test";
doCheck = true;
nativeCheckInputs = [ verilog ];
nativeCheckInputs = [ iverilog ];
setupHook = ./setup-hook.sh;

View File

@ -11,7 +11,6 @@ let
buildCommand = ''
wget https://julialang-logs.s3.amazonaws.com/public_outputs/current/package_requests.csv.gz
gunzip package_requests.csv.gz
ls -lh
cp package_requests.csv $out
'';
};

View File

@ -76,7 +76,6 @@ stdenv.mkDerivation rec {
postFixup = ''
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
ls -la "$out/share/doc"
moveToOutput "share/doc" "$devdoc"
'';

View File

@ -14,13 +14,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "wolfssl-${variant}";
version = "5.7.0";
version = "5.7.2";
src = fetchFromGitHub {
owner = "wolfSSL";
repo = "wolfssl";
rev = "refs/tags/v${finalAttrs.version}-stable";
hash = "sha256-4j1GqeZJn5UWx56DjGjge05jlzBbIGn4IXxcaIBxON4=";
hash = "sha256-VTMVgBSDL6pw1eEKnxGzTdyQYWVbMd3mAnOnpAOKVhk=";
};
postPatch = ''

View File

@ -0,0 +1,39 @@
{
buildPythonPackage,
brainflow,
nptyping,
numpy,
python,
setuptools,
}:
buildPythonPackage {
inherit (brainflow)
pname
version
src
patches
meta
;
pyproject = true;
build-system = [ setuptools ];
dependencies = [
numpy
nptyping
];
buildInputs = [ brainflow ];
postPatch = ''
cd python_package
'';
postInstall = ''
mkdir -p "$out/${python.sitePackages}/brainflow/lib/"
cp -Tr "${brainflow}/lib" "$out/${python.sitePackages}/brainflow/lib/"
'';
pythonImportsCheck = [ "brainflow" ];
}

View File

@ -9,7 +9,7 @@
find-libpython,
pytestCheckHook,
swig,
verilog,
iverilog,
ghdl,
}:
@ -65,7 +65,7 @@ buildPythonPackage rec {
cocotb-bus
pytestCheckHook
swig
verilog
iverilog
ghdl
];
preCheck = ''

View File

@ -12,7 +12,7 @@
let
# 0.18.12 was yanked from PyPI, it refers to this issue:
# https://github.com/deschler/django-modeltranslation/issues/701
version = "0.19.3";
version = "0.19.5";
in
buildPythonPackage {
pname = "django-modeltranslation";
@ -22,7 +22,7 @@ buildPythonPackage {
owner = "deschler";
repo = "django-modeltranslation";
rev = "refs/tags/v${version}";
hash = "sha256-tCj3+9iQ5DBf0fxAHgHkgcARFDfZTV/o6wvQ7ASUJWQ=";
hash = "sha256-wIvX9m3AGa6rLAWI56B7sEyj04g8cPIF37JWgVzbtig=";
};
# Remove all references to pytest-cov

View File

@ -11,14 +11,14 @@
buildPythonPackage rec {
pname = "ihm";
version = "1.2";
version = "1.3";
pyproject = true;
src = fetchFromGitHub {
owner = "ihmwg";
repo = "python-ihm";
rev = "refs/tags/${version}";
hash = "sha256-lQ7/A/RT8/5gLozsToti+4g1Jc++GtjzOU4XZ+feqDs=";
hash = "sha256-ywZdhumFFeImODeFn8VYD0CR1DZMlAg52wMNRjEItec=";
};
nativeBuildInputs = [

View File

@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "m3u8";
version = "5.0.0";
version = "5.1.0";
pyproject = true;
disabled = pythonOlder "3.7";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "globocom";
repo = "m3u8";
rev = "refs/tags/${version}";
hash = "sha256-sI260BR22Ft5y/2lKn1ihu52y6soyk+yzj24TEOKJlA=";
hash = "sha256-dvRs1FoyQz6D/G0mTC2SCUaCWP3UpxQpNw/oiaauaOE=";
};
build-system = [ setuptools ];

View File

@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "mdformat-admon";
version = "2.0.3";
version = "2.0.6";
pyproject = true;
disabled = pythonOlder "3.8";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "KyleKing";
repo = "mdformat-admon";
rev = "refs/tags/v${version}";
hash = "sha256-zKc0kKap4ipZ+P+RYDXcwqyzq9NKcTnCmx64cApFxFg=";
hash = "sha256-YyEiqry1dAm/2EEuQjPFEfdpLI+NiLhVcyx4jAyXs4E=";
};
nativeBuildInputs = [ flit-core ];

View File

@ -0,0 +1,42 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, fetchpatch2
, poetry-core
}:
buildPythonPackage rec {
pname = "memory-tempfile";
version = "2.2.3";
pyproject = true;
src = fetchFromGitHub {
owner = "mbello";
repo = "memory-tempfile";
rev = "v${version}";
hash = "sha256-4fz2CLkZdy2e1GwGw/afG54LkUVJ4cza70jcbX3rVlQ=";
};
patches = [
(fetchpatch2 {
# Migrate to poetry-core build backend
# https://github.com/mbello/memory-tempfile/pull/13
name = "poetry-core.patch";
url = "https://github.com/mbello/memory-tempfile/commit/938a3a3abf01756b1629eca6c69e970021bbc7c0.patch";
hash = "sha256-q3027MwKXtX09MH7T2UrX19BImK1FJo+YxADfxcdTME=";
})
];
build-system = [ poetry-core ];
doCheck = false; # constrained selection of memory backed filesystems due to build sandbox
pythonImportsCheck = [ "memory_tempfile" ];
meta = with lib; {
description = "Create temporary files and temporary dirs in memory-based filesystems on Linux";
homepage = "https://github.com/mbello/memory-tempfile";
license = licenses.mit;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "model-bakery";
version = "1.18.1";
version = "1.18.2";
pyproject = true;
disabled = pythonOlder "3.8";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "model-bakers";
repo = "model_bakery";
rev = "refs/tags/${version}";
hash = "sha256-QsfVKPasGFzcLIwx7t9H9I2o2JNUFLKbKc86tntltg8=";
hash = "sha256-X+P4ajTtjzIUFlOGM5D87oEb8nN1MFUyKtNy8RKAvB0=";
};
build-system = [ hatchling ];

View File

@ -2,7 +2,7 @@
lib,
fetchFromGitHub,
buildPythonPackage,
verilog,
iverilog,
ghdl,
pytest,
pytest-xdist,
@ -24,13 +24,13 @@ buildPythonPackage rec {
nativeCheckInputs = [
pytest
pytest-xdist
verilog
iverilog
ghdl
];
passthru = {
# If using myhdl as a dependency, use these if needed and not ghdl and
# verlog from all-packages.nix
inherit ghdl verilog;
inherit ghdl iverilog;
};
checkPhase = ''
runHook preCheck

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