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 # azure-cli: move to by-name, nixfmt #325950
96cd538b68bd1d0a0a37979356d669abbba32ebc 96cd538b68bd1d0a0a37979356d669abbba32ebc
# poptracker: format with nixfmt-rfc-style (#326697)
ff5c8f6cc3d1f2e017e86d50965c14b71f00567b

View File

@ -159,6 +159,12 @@
github = "13r0ck"; github = "13r0ck";
githubId = 58987761; githubId = 58987761;
}; };
_21CSM = {
name = "21CSM";
email = "21CSM@tutanota.com";
github = "21CSM";
githubId = 81891917;
};
_21eleven = { _21eleven = {
name = "Noah Lidell"; name = "Noah Lidell";
email = "noahlidell@gmail.com"; email = "noahlidell@gmail.com";
@ -10149,6 +10155,12 @@
githubId = 12773748; githubId = 12773748;
matrix = "@j.r:chaos.jetzt"; matrix = "@j.r:chaos.jetzt";
}; };
jukremer = {
email = "nixpkgs@jankremer.eu";
github = "jukremer";
githubId = 79042825;
name = "Jan Kremer";
};
juliendehos = { juliendehos = {
email = "dehos@lisic.univ-littoral.fr"; email = "dehos@lisic.univ-littoral.fr";
github = "juliendehos"; 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). - [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). - [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). - [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). - [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. - `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. - `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. 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, ... }: { config, lib, pkgs, utils, ... }:
with utils;
with lib;
let let
inherit (lib) mkIf mkOption types;
randomEncryptionCoerce = enable: { inherit enable; }; randomEncryptionCoerce = enable: { inherit enable; };
@ -188,7 +186,7 @@ let
config = { config = {
device = mkIf options.label.isDefined device = mkIf options.label.isDefined
"/dev/disk/by-label/${config.label}"; "/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; realDevice = if config.randomEncryption.enable then "/dev/mapper/${config.deviceName}" else config.device;
}; };
@ -224,8 +222,8 @@ in
}; };
config = mkIf ((length config.swapDevices) != 0) { config = mkIf ((lib.length config.swapDevices) != 0) {
assertions = map (sw: { assertions = lib.map (sw: {
assertion = sw.randomEncryption.enable -> builtins.match "/dev/disk/by-(uuid|label)/.*" sw.device == null; assertion = sw.randomEncryption.enable -> builtins.match "/dev/disk/by-(uuid|label)/.*" sw.device == null;
message = '' message = ''
You cannot use swap device "${sw.device}" with randomEncryption enabled. You cannot use swap device "${sw.device}" with randomEncryption enabled.
@ -235,22 +233,22 @@ in
}) config.swapDevices; }) config.swapDevices;
warnings = warnings =
concatMap (sw: lib.concatMap (sw:
if sw.size != null && hasPrefix "/dev/" sw.device if sw.size != null && lib.hasPrefix "/dev/" sw.device
then [ "Setting the swap size of block device ${sw.device} has no effect" ] then [ "Setting the swap size of block device ${sw.device} has no effect" ]
else [ ]) else [ ])
config.swapDevices; config.swapDevices;
system.requiredKernelConfig = with config.lib.kernelConfig; [ system.requiredKernelConfig = [
(isYes "SWAP") (config.lib.kernelConfig.isYes "SWAP")
]; ];
# Create missing swapfiles. # Create missing swapfiles.
systemd.services = systemd.services =
let let
createSwapDevice = sw: createSwapDevice = sw:
let realDevice' = escapeSystemdPath sw.realDevice; let realDevice' = utils.escapeSystemdPath sw.realDevice;
in nameValuePair "mkswap-${sw.deviceName}" in lib.nameValuePair "mkswap-${sw.deviceName}"
{ description = "Initialisation of swap device ${sw.device}"; { description = "Initialisation of swap device ${sw.device}";
# The mkswap service fails for file-backed swap devices if the # The mkswap service fails for file-backed swap devices if the
# loop module has not been loaded before the service runs. # loop module has not been loaded before the service runs.
@ -261,13 +259,13 @@ in
before = [ "${realDevice'}.swap" "shutdown.target"]; before = [ "${realDevice'}.swap" "shutdown.target"];
conflicts = [ "shutdown.target" ]; conflicts = [ "shutdown.target" ];
path = [ pkgs.util-linux pkgs.e2fsprogs ] path = [ pkgs.util-linux pkgs.e2fsprogs ]
++ optional sw.randomEncryption.enable pkgs.cryptsetup; ++ lib.optional sw.randomEncryption.enable pkgs.cryptsetup;
environment.DEVICE = sw.device; environment.DEVICE = sw.device;
script = script =
'' ''
${optionalString (sw.size != null) '' ${lib.optionalString (sw.size != null) ''
currentSize=$(( $(stat -c "%s" "$DEVICE" 2>/dev/null || echo 0) / 1024 / 1024 )) currentSize=$(( $(stat -c "%s" "$DEVICE" 2>/dev/null || echo 0) / 1024 / 1024 ))
if [[ ! -b "$DEVICE" && "${toString sw.size}" != "$currentSize" ]]; then if [[ ! -b "$DEVICE" && "${toString sw.size}" != "$currentSize" ]]; then
# Disable CoW for CoW based filesystems like BTRFS. # Disable CoW for CoW based filesystems like BTRFS.
@ -275,15 +273,15 @@ in
chattr +C "$DEVICE" 2>/dev/null || true chattr +C "$DEVICE" 2>/dev/null || true
dd if=/dev/zero of="$DEVICE" bs=1M count=${toString sw.size} 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 fi
''} ''}
${optionalString sw.randomEncryption.enable '' ${lib.optionalString sw.randomEncryption.enable ''
cryptsetup plainOpen -c ${sw.randomEncryption.cipher} -d ${sw.randomEncryption.source} \ cryptsetup plainOpen -c ${sw.randomEncryption.cipher} -d ${sw.randomEncryption.source} \
${concatStringsSep " \\\n" (flatten [ ${lib.concatStringsSep " \\\n" (lib.flatten [
(optional (sw.randomEncryption.sectorSize != null) "--sector-size=${toString sw.randomEncryption.sectorSize}") (lib.optional (sw.randomEncryption.sectorSize != null) "--sector-size=${toString sw.randomEncryption.sectorSize}")
(optional (sw.randomEncryption.keySize != null) "--key-size=${toString sw.randomEncryption.keySize}") (lib.optional (sw.randomEncryption.keySize != null) "--key-size=${toString sw.randomEncryption.keySize}")
(optional sw.randomEncryption.allowDiscards "--allow-discards") (lib.optional sw.randomEncryption.allowDiscards "--allow-discards")
])} ${sw.device} ${sw.deviceName} ])} ${sw.device} ${sw.deviceName}
mkswap ${sw.realDevice} mkswap ${sw.realDevice}
''} ''}
@ -295,12 +293,12 @@ in
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = sw.randomEncryption.enable; RemainAfterExit = sw.randomEncryption.enable;
UMask = "0177"; 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; 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/mopidy.nix
./services/audio/mpd.nix ./services/audio/mpd.nix
./services/audio/mpdscribble.nix ./services/audio/mpdscribble.nix
./services/audio/music-assistant.nix
./services/audio/mympd.nix ./services/audio/mympd.nix
./services/audio/navidrome.nix ./services/audio/navidrome.nix
./services/audio/networkaudiod.nix ./services/audio/networkaudiod.nix
@ -991,6 +992,7 @@
./services/networking/dante.nix ./services/networking/dante.nix
./services/networking/deconz.nix ./services/networking/deconz.nix
./services/networking/ddclient.nix ./services/networking/ddclient.nix
./services/networking/ddns-updater.nix
./services/networking/dhcpcd.nix ./services/networking/dhcpcd.nix
./services/networking/dnscache.nix ./services/networking/dnscache.nix
./services/networking/dnscrypt-proxy2.nix ./services/networking/dnscrypt-proxy2.nix
@ -1346,7 +1348,6 @@
./services/video/frigate.nix ./services/video/frigate.nix
./services/video/mirakurun.nix ./services/video/mirakurun.nix
./services/video/photonvision.nix ./services/video/photonvision.nix
./services/video/replay-sorcery.nix
./services/video/mediamtx.nix ./services/video/mediamtx.nix
./services/video/unifi-video.nix ./services/video/unifi-video.nix
./services/video/v4l2-relayd.nix ./services/video/v4l2-relayd.nix

View File

@ -4,7 +4,7 @@ let optionsGlobal = options; in
let let
inherit (lib.attrsets) attrNames attrValues mapAttrsToList removeAttrs; 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.modules) mkDefault mkIf;
inherit (lib.options) mkEnableOption mkOption mkPackageOption; inherit (lib.options) mkEnableOption mkOption mkPackageOption;
inherit (lib.strings) concatLines match optionalString toLower; inherit (lib.strings) concatLines match optionalString toLower;
@ -231,7 +231,7 @@ let
# Turn a key-value pair from the server options attrset # Turn a key-value pair from the server options attrset
# into zero (value==null), one (scalar value) or # into zero (value==null), one (scalar value) or
# more (value is list) configuration stanza lines. # 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 if value == null then [ ] else # skip `null` value
[ (" ${key}${ [ (" ${key}${
if value == true then "" else # just output key if value is `true` 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" "quagga" ] "the corresponding package has been removed from nixpkgs")
(mkRemovedOptionModule [ "services" "railcar" ] "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" "seeks" ] "")
(mkRemovedOptionModule [ "services" "ssmtp" ] '' (mkRemovedOptionModule [ "services" "ssmtp" ] ''
The ssmtp package and the corresponding module have been removed due to 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"; 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 { openFirewall = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@ -69,14 +77,20 @@ in
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network.target" ]; after = [ "network.target" ];
serviceConfig = { serviceConfig =
Type = "simple"; 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}"}"; ExecStart = "${getExe package} --host ${cfg.listenAddress} --port ${toString cfg.port} ${
DynamicUser = true; lib.optionalString (cfg.configFile != null) "--config ${cfg.configFile}"
StateDirectory = "tika"; }";
CacheDirectory = "tika"; DynamicUser = true;
}; StateDirectory = "tika";
CacheDirectory = "tika";
};
}; };
networking.firewall = mkIf cfg.openFirewall { allowedTCPPorts = [ cfg.port ]; }; 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 let
inherit (lib) mkDefault mkEnableOption mkPackageOption mkForce mkIf mkMerge mkOption types; inherit (lib)
inherit (lib) literalExpression mapAttrs optionalString versionAtLeast; mkDefault
mkEnableOption
mkPackageOption
mkRenamedOptionModule
mkForce
mkIf
mkMerge
mkOption
types
;
inherit (lib)
literalExpression
mapAttrs
optionalString
optionals
versionAtLeast
;
cfg = config.services.zabbixWeb; cfg = config.services.zabbixWeb;
opt = options.services.zabbixWeb; opt = options.services.zabbixWeb;
@ -17,13 +39,25 @@ let
<?php <?php
// Zabbix GUI configuration file. // Zabbix GUI configuration file.
global $DB; 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['SERVER'] = '${cfg.database.host}';
$DB['PORT'] = '${toString cfg.database.port}'; $DB['PORT'] = '${toString cfg.database.port}';
$DB['DATABASE'] = '${cfg.database.name}'; $DB['DATABASE'] = '${cfg.database.name}';
$DB['USER'] = '${cfg.database.user}'; $DB['USER'] = '${cfg.database.user}';
# NOTE: file_get_contents adds newline at the end of returned string # 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. // Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '''; $DB['SCHEMA'] = ''';
$ZBX_SERVER = '${cfg.server.address}'; $ZBX_SERVER = '${cfg.server.address}';
@ -33,16 +67,33 @@ let
${cfg.extraConfig} ${cfg.extraConfig}
''; '';
in in
{ {
imports = [
(mkRenamedOptionModule
[
"services"
"zabbixWeb"
"virtualHost"
]
[
"services"
"zabbixWeb"
"httpd"
"virtualHost"
]
)
];
# interface # interface
options.services = { options.services = {
zabbixWeb = { zabbixWeb = {
enable = mkEnableOption "the Zabbix web interface"; enable = mkEnableOption "the Zabbix web interface";
package = mkPackageOption pkgs [ "zabbix" "web" ] { }; package = mkPackageOption pkgs [
"zabbix"
"web"
] { };
server = { server = {
port = mkOption { port = mkOption {
@ -60,7 +111,11 @@ in
database = { database = {
type = mkOption { type = mkOption {
type = types.enum [ "mysql" "pgsql" "oracle" ]; type = types.enum [
"mysql"
"pgsql"
"oracle"
];
example = "mysql"; example = "mysql";
default = "pgsql"; default = "pgsql";
description = "Database engine to use."; description = "Database engine to use.";
@ -75,9 +130,12 @@ in
port = mkOption { port = mkOption {
type = types.port; type = types.port;
default = default =
if cfg.database.type == "mysql" then config.services.mysql.port if cfg.database.type == "mysql" then
else if cfg.database.type == "pgsql" then config.services.postgresql.settings.port config.services.mysql.port
else 1521; else if cfg.database.type == "pgsql" then
config.services.postgresql.settings.port
else
1521;
defaultText = literalExpression '' defaultText = literalExpression ''
if config.${opt.database.type} == "mysql" then config.${options.services.mysql.port} 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 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); type = types.submodule (import ../web-servers/apache-httpd/vhost-options.nix);
example = literalExpression '' example = literalExpression ''
{ {
@ -126,14 +194,43 @@ in
enableACME = true; enableACME = true;
} }
''; '';
default = { };
description = '' description = ''
Apache configuration can be done by adapting `services.httpd.virtualHosts.<name>`. Apache configuration can be done by adapting `services.httpd.virtualHosts.<name>`.
See [](#opt-services.httpd.virtualHosts) for further information. 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 { poolConfig = mkOption {
type = with types; attrsOf (oneOf [ str int bool ]); type =
with types;
attrsOf (oneOf [
str
int
bool
]);
default = { default = {
"pm" = "dynamic"; "pm" = "dynamic";
"pm.max_children" = 32; "pm.max_children" = 32;
@ -154,7 +251,6 @@ in
Additional configuration to be copied verbatim into {file}`zabbix.conf.php`. Additional configuration to be copied verbatim into {file}`zabbix.conf.php`.
''; '';
}; };
}; };
}; };
@ -162,61 +258,96 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.zabbixWeb.extraConfig = optionalString ((versionAtLeast config.system.stateVersion "20.09") && (versionAtLeast cfg.package.version "5.0.0")) '' services.zabbixWeb.extraConfig =
$DB['DOUBLE_IEEE754'] = 'true'; optionalString
''; (
(versionAtLeast config.system.stateVersion "20.09") && (versionAtLeast cfg.package.version "5.0.0")
)
''
$DB['DOUBLE_IEEE754'] = 'true';
'';
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules =
"d '${stateDir}' 0750 ${user} ${group} - -" [ "d '${stateDir}' 0750 ${user} ${group} - -" ]
"d '${stateDir}/session' 0750 ${user} ${config.services.httpd.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 = { services.phpfpm.pools.zabbix = {
inherit user; inherit user;
group = config.services.httpd.group; group = config.services.${cfg.frontend}.group;
phpOptions = '' phpOptions =
# https://www.zabbix.com/documentation/current/manual/installation/install ''
memory_limit = 128M # https://www.zabbix.com/documentation/current/manual/installation/install
post_max_size = 16M memory_limit = 128M
upload_max_filesize = 2M post_max_size = 16M
max_execution_time = 300 upload_max_filesize = 2M
max_input_time = 300 max_execution_time = 300
session.auto_start = 0 max_input_time = 300
mbstring.func_overload = 0 session.auto_start = 0
always_populate_raw_post_data = -1 mbstring.func_overload = 0
# https://bbs.archlinux.org/viewtopic.php?pid=1745214#p1745214 always_populate_raw_post_data = -1
session.save_path = ${stateDir}/session # https://bbs.archlinux.org/viewtopic.php?pid=1745214#p1745214
'' + optionalString (config.time.timeZone != null) '' session.save_path = ${stateDir}/session
date.timezone = "${config.time.timeZone}" ''
'' + optionalString (cfg.database.type == "oracle") '' + optionalString (config.time.timeZone != null) ''
extension=${pkgs.phpPackages.oci8}/lib/php/extensions/oci8.so date.timezone = "${config.time.timeZone}"
''; ''
+ optionalString (cfg.database.type == "oracle") ''
extension=${pkgs.phpPackages.oci8}/lib/php/extensions/oci8.so
'';
phpEnv.ZABBIX_CONFIG = "${zabbixConfig}"; phpEnv.ZABBIX_CONFIG = "${zabbixConfig}";
settings = { settings = {
"listen.owner" = config.services.httpd.user; "listen.owner" =
"listen.group" = config.services.httpd.group; 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; } // cfg.poolConfig;
}; };
services.httpd = { services.httpd = mkIf (cfg.frontend == "httpd") {
enable = true; enable = true;
adminAddr = mkDefault cfg.virtualHost.adminAddr; adminAddr = mkDefault cfg.httpd.virtualHost.adminAddr;
extraModules = [ "proxy_fcgi" ]; extraModules = [ "proxy_fcgi" ];
virtualHosts.${cfg.virtualHost.hostName} = mkMerge [ cfg.virtualHost { virtualHosts.${cfg.hostname} = mkMerge [
documentRoot = mkForce "${cfg.package}/share/zabbix"; cfg.httpd.virtualHost
extraConfig = '' {
<Directory "${cfg.package}/share/zabbix"> documentRoot = mkForce "${cfg.package}/share/zabbix";
<FilesMatch "\.php$"> extraConfig = ''
<If "-f %{REQUEST_FILENAME}"> <Directory "${cfg.package}/share/zabbix">
SetHandler "proxy:unix:${fpm.socket}|fcgi://localhost/" <FilesMatch "\.php$">
</If> <If "-f %{REQUEST_FILENAME}">
</FilesMatch> SetHandler "proxy:unix:${fpm.socket}|fcgi://localhost/"
AllowOverride all </If>
Options -Indexes </FilesMatch>
DirectoryIndex index.php AllowOverride all
</Directory> 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) { users.users.${user} = mapAttrs (name: mkDefault) {
@ -225,9 +356,6 @@ in
inherit group; inherit group;
}; };
users.groups.${group} = mapAttrs (name: mkDefault) { users.groups.${group} = mapAttrs (name: mkDefault) { gid = config.ids.gids.zabbix; };
gid = config.ids.gids.zabbix;
};
}; };
} }

View File

@ -224,7 +224,7 @@ in
# Default Fonts # Default Fonts
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
dejavu_fonts # Default monospace font in LMDE 6+ 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; 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.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable; services.upower.enable = config.powerManagement.enable;

View File

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

View File

@ -245,6 +245,7 @@ in {
davis = handleTest ./davis.nix {}; davis = handleTest ./davis.nix {};
db-rest = handleTest ./db-rest.nix {}; db-rest = handleTest ./db-rest.nix {};
dconf = handleTest ./dconf.nix {}; dconf = handleTest ./dconf.nix {};
ddns-updater = handleTest ./ddns-updater.nix {};
deconz = handleTest ./deconz.nix {}; deconz = handleTest ./deconz.nix {};
deepin = handleTest ./deepin.nix {}; deepin = handleTest ./deepin.nix {};
deluge = handleTest ./deluge.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 # Fails on aarch64-linux at the PDF creation step - need to debug this on an
# aarch64 machine.. # aarch64 machine..
musescore = handleTestOn ["x86_64-linux"] ./musescore.nix {}; musescore = handleTestOn ["x86_64-linux"] ./musescore.nix {};
music-assistant = runTest ./music-assistant.nix;
munin = handleTest ./munin.nix {}; munin = handleTest ./munin.nix {};
mutableUsers = handleTest ./mutable-users.nix {}; mutableUsers = handleTest ./mutable-users.nix {};
mycelium = handleTest ./mycelium {}; 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 { stdenv.mkDerivation rec {
pname = "audacity"; pname = "audacity";
version = "3.5.1"; version = "3.6.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "audacity"; owner = "audacity";
repo = "audacity"; repo = "audacity";
rev = "Audacity-${version}"; rev = "Audacity-${version}";
hash = "sha256-wQ+K31TvDTVwDyVQ5nWgcneZ1cFxztmsbSXrDs33Uoc="; hash = "sha256-ZNOcWc4JKF69ZTD8pe1A3yrAMEE3rqbzPOOQslv+utU=";
}; };
postPatch = '' postPatch = ''

View File

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

View File

@ -12,18 +12,18 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "youtube-music"; pname = "youtube-music";
version = "3.3.12"; version = "3.4.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "th-ch"; owner = "th-ch";
repo = "youtube-music"; repo = "youtube-music";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-kBGMp58086NQ77x1YGS5NewWfiDaXHOEbyflHPtdfIs="; hash = "sha256-HuV1jFSFvb/Ji150rVIvHrPLY3167W9/9xNnI81k9B8=";
}; };
pnpmDeps = pnpm.fetchDeps { pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pname version src; 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 ] nativeBuildInputs = [ makeWrapper python3 nodejs pnpm.configHook ]

View File

@ -11,8 +11,6 @@ in
acm-terminal = callPackage ./manual-packages/acm-terminal { }; acm-terminal = callPackage ./manual-packages/acm-terminal { };
agda-input = callPackage ./manual-packages/agda-input { };
agda2-mode = callPackage ./manual-packages/agda2-mode { }; agda2-mode = callPackage ./manual-packages/agda2-mode { };
cask = callPackage ./manual-packages/cask { }; cask = callPackage ./manual-packages/cask { };
@ -118,6 +116,7 @@ in
} }
### Aliases ### Aliases
// lib.optionalAttrs pkgs.config.allowAliases { // 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 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 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 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 { melpaBuild, haskellPackages }:
, haskellPackages
}:
let let
Agda = haskellPackages.Agda.bin; Agda = haskellPackages.Agda;
in in
trivialBuild { melpaBuild {
pname = "agda-mode"; pname = "agda2-mode";
version = Agda.version; inherit (Agda) src version;
dontUnpack = true; files = ''("src/data/emacs-mode/*.el")'';
# already byte-compiled by Agda builder
buildPhase = ''
agda=`${Agda}/bin/agda-mode locate`
cp `dirname $agda`/*.el* .
'';
meta = { meta = {
inherit (Agda.meta) homepage license; inherit (Agda.meta) homepage license;
description = "Agda2-mode for Emacs extracted from Agda package"; 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 { melpaBuild {
pname = "codeium"; pname = "codeium";
version = "1.6.13"; version = "1.6.13";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Exafunction"; owner = "Exafunction";
repo = "codeium.el"; repo = "codeium.el";
rev = "1.6.13"; rev = "1.6.13";
hash = "sha256-CjT21GhryO8/iM0Uzm/s/I32WqVo4M3tSlHC06iEDXA="; hash = "sha256-CjT21GhryO8/iM0Uzm/s/I32WqVo4M3tSlHC06iEDXA=";
}; };
commit = "02f9382c925633a19dc928e99b868fd5f6947e58";
buildInputs = [ pkgs.codeium ];
recipe = writeText "recipe" ''
(codeium
:repo "Exafunction/codeium.el"
:fetcher github)
'';
patches = [ patches = [
(substituteAll { (substituteAll {

View File

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

View File

@ -2,7 +2,6 @@
lib, lib,
melpaBuild, melpaBuild,
fetchzip, fetchzip,
writeText,
}: }:
melpaBuild rec { melpaBuild rec {
@ -14,15 +13,6 @@ melpaBuild rec {
hash = "sha256-GFEDWT88Boz/DxEcmFgf7u2NOoMjAN05yRiYwoYtvXc="; 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 = { meta = {
homepage = "https://gitweb.gentoo.org/proj/ebuild-mode.git/"; homepage = "https://gitweb.gentoo.org/proj/ebuild-mode.git/";
description = "Major modes for Gentoo package files"; description = "Major modes for Gentoo package files";

View File

@ -1,57 +1,32 @@
{ lib {
, melpaBuild lib,
, fetchFromGitHub melpaBuild,
, writeText fetchFromGitHub,
, writeScript gzip,
, gzip unstableGitUpdater,
}: }:
let
rev = "a6c849619abcdd80dc82ec5417195414ad438fa3";
in
melpaBuild { melpaBuild {
pname = "edraw"; pname = "edraw";
version = "20240701.444"; version = "1.2.0-unstable-2024-07-01";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "misohena"; owner = "misohena";
repo = "el-easydraw"; repo = "el-easydraw";
inherit rev; rev = "a6c849619abcdd80dc82ec5417195414ad438fa3";
hash = "sha256-CbcI1mmghc3HObg80bjScVDcJ1DHx9aX1WP2HlhAshs="; hash = "sha256-CbcI1mmghc3HObg80bjScVDcJ1DHx9aX1WP2HlhAshs=";
}; };
commit = rev; propagatedUserEnvPkgs = [ gzip ];
packageRequires = [ gzip ]; files = ''(:defaults "msg")'';
recipe = writeText "recipe" '' passthru.updateScript = unstableGitUpdater { tagPrefix = "v"; };
(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"
'';
meta = { meta = {
homepage = "https://github.com/misohena/el-easydraw"; homepage = "https://github.com/misohena/el-easydraw";
description = "Embedded drawing tool for Emacs"; description = "Embedded drawing tool for Emacs";
license = lib.licenses.gpl3; license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ brahyerr ]; maintainers = with lib.maintainers; [ brahyerr ];
platforms = lib.platforms.all;
}; };
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,11 +1,12 @@
{ lib {
, trivialBuild lib,
, urweb melpaBuild,
, cl-lib urweb,
, flycheck cl-lib,
flycheck,
}: }:
trivialBuild { melpaBuild {
pname = "urweb-mode"; pname = "urweb-mode";
inherit (urweb) src version; inherit (urweb) src version;
@ -15,9 +16,9 @@ trivialBuild {
flycheck flycheck
]; ];
postUnpack = '' files = ''("src/elisp/*.el")'';
sourceRoot=$sourceRoot/src/elisp
''; dontConfigure = true;
meta = { meta = {
description = "Major mode for editing Ur/Web"; 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 { firefox-devtools.vscode-firefox-debug = buildVscodeMarketplaceExtension {
mktplcRef = { mktplcRef = {
name = "vscode-firefox-debug"; 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" find "$monoRuntimeBinaries_storePath" -mindepth 1 -maxdepth 1 | xargs -d '\n' cp -rp -t "$tmpDir"
chmod -R a+rwx "$tmpDir" chmod -R a+rwx "$tmpDir"
ls -la "$tmpDir/debugAdapters"
patchelf_mono "$tmpDir/debugAdapters/mono.linux-x86_64" patchelf_mono "$tmpDir/debugAdapters/mono.linux-x86_64"
chmod a+x "$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" find "$clanFormatBinaries_storePath" -mindepth 1 -maxdepth 1 | xargs -d '\n' cp -rp -t "$tmpDir"
chmod -R a+rwx "$tmpDir" chmod -R a+rwx "$tmpDir"
ls -la "$tmpDir/bin"
patchelf_clangformat "$tmpDir/bin/clang-format" patchelf_clangformat "$tmpDir/bin/clang-format"
chmod a+x "$tmpDir/bin/clang-format" chmod a+x "$tmpDir/bin/clang-format"

View File

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

View File

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

View File

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

View File

@ -25,7 +25,7 @@
, withNgspice ? !stdenv.isDarwin , withNgspice ? !stdenv.isDarwin
, libngspice , libngspice
, withScripting ? true , withScripting ? true
, python3 , python311
, addons ? [ ] , addons ? [ ]
, debug ? false , debug ? false
, sanitizeAddress ? false , sanitizeAddress ? false
@ -122,10 +122,14 @@ let
else versionsImport.${baseName}.libVersion.version; else versionsImport.${baseName}.libVersion.version;
wxGTK = wxGTK32; 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; wxPython = python.pkgs.wxpython;
addonPath = "addon.zip"; addonPath = "addon.zip";
addonsDrvs = map (pkg: pkg.override { inherit addonPath python3; }) addons; addonsDrvs = map (pkg: pkg.override { inherit addonPath python; }) addons;
addonsJoined = addonsJoined =
runCommand "addonsJoined" runCommand "addonsJoined"
@ -157,7 +161,7 @@ stdenv.mkDerivation rec {
# Common libraries, referenced during runtime, via the wrapper. # Common libraries, referenced during runtime, via the wrapper.
passthru.libraries = callPackages ./libraries.nix { inherit libSrc; }; passthru.libraries = callPackages ./libraries.nix { inherit libSrc; };
passthru.callPackage = newScope { inherit addonPath python3; }; passthru.callPackage = newScope { inherit addonPath python; };
base = callPackage ./base.nix { base = callPackage ./base.nix {
inherit stable testing baseName; inherit stable testing baseName;
inherit kicadSrc kicadVersion; inherit kicadSrc kicadVersion;

View File

@ -3,7 +3,7 @@
, fetchFromGitHub , fetchFromGitHub
, bison , bison
, flex , flex
, verilog , iverilog
, which , which
}: }:
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
]; ];
buildInputs = [ buildInputs = [
verilog iverilog
]; ];
# the "translate" target both (a) builds the software and (b) runs # 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 ]; }` # Usage: `pkgs.mpv.override { scripts = [ pkgs.mpvScripts.sponsorblock ]; }`
buildLua { buildLua {
pname = "mpv_sponsorblock"; pname = "mpv_sponsorblock";
version = "unstable-2023-01-30"; version = "0-unstable-2023-01-30";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "po5"; owner = "po5";

View File

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

View File

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

View File

@ -10,11 +10,11 @@
}: }:
stdenvNoCC.mkDerivation (finalAttrs: { stdenvNoCC.mkDerivation (finalAttrs: {
pname = "tart"; pname = "tart";
version = "2.13.0"; version = "2.14.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/cirruslabs/tart/releases/download/${finalAttrs.version}/tart-arm64.tar.gz"; url = "https://github.com/cirruslabs/tart/releases/download/${finalAttrs.version}/tart-arm64.tar.gz";
hash = "sha256-aR28Q5eQwcEfk65on4kgA+bko6uEThHsgZZU+fExzus="; hash = "sha256-3I4WSdWfPZd//pJiYXKcgpjx8qv4nSeMHHGJE1ja00o=";
}; };
sourceRoot = "."; 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, cargo-shear,
}: }:
let let
version = "1.0.0"; version = "1.1.0";
in in
rustPlatform.buildRustPackage { rustPlatform.buildRustPackage {
pname = "cargo-shear"; pname = "cargo-shear";
@ -16,10 +16,10 @@ rustPlatform.buildRustPackage {
owner = "Boshen"; owner = "Boshen";
repo = "cargo-shear"; repo = "cargo-shear";
rev = "v${version}"; 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 # https://github.com/Boshen/cargo-shear/blob/a0535415a3ea94c86642f39f343f91af5cdc3829/src/lib.rs#L20-L23
SHEAR_VERSION = version; SHEAR_VERSION = version;

View File

@ -1,20 +1,22 @@
{ {
lib,
buildGoModule, buildGoModule,
fetchFromGitHub, fetchFromGitHub,
lib,
nixosTests,
nix-update-script,
}: }:
buildGoModule rec { buildGoModule rec {
pname = "ddns-updater"; pname = "ddns-updater";
version = "2.6.0"; version = "2.7.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "qdm12"; owner = "qdm12";
repo = "ddns-updater"; repo = "ddns-updater";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-NU6KXVjggsXVCKImGqbB1AXcph+ycRfkk5S4JNq0cHg="; hash = "sha256-U8Vw7dsj/efqvpooT3QQjNp41AuGYJ/Gz/pA8Em3diE=";
}; };
vendorHash = "sha256-Ibrv0m3Tz/5JbkHYmiJ9Ijo37fjHc7TP100K7ZTwO8I="; vendorHash = "sha256-M9Al3zl2Ltv4yWdyRB3+9zpTr3foliu5WweImHltz3M=";
ldflags = [ ldflags = [
"-s" "-s"
@ -23,6 +25,13 @@ buildGoModule rec {
subPackages = [ "cmd/updater" ]; subPackages = [ "cmd/updater" ];
passthru = {
tests = {
inherit (nixosTests) ddns-updater;
};
updateScript = nix-update-script { };
};
postInstall = '' postInstall = ''
mv $out/bin/updater $out/bin/ddns-updater 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. # 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. # However in order for tools like `nix-env` to detect package updates, keep `du-dust` for pname.
pname = "du-dust"; pname = "du-dust";
version = "1.0.0"; version = "1.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bootandy"; owner = "bootandy";
repo = "dust"; repo = "dust";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-KTsB9QqcLafG2XNj8PdkzwVrFDmpBQzNyDLajT/JDz0="; hash = "sha256-ERcXVLzgurY6vU+exZ5IcM0rPbWrpghDO1m2XwE5i38=";
# Remove unicode file names which leads to different checksums on HFS+ # Remove unicode file names which leads to different checksums on HFS+
# vs. other filesystems because of unicode normalisation. # vs. other filesystems because of unicode normalisation.
postFetch = '' postFetch = ''
@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
''; '';
}; };
cargoHash = "sha256-d6Mnuo6JlbuHUGz+UCmC8jvNks3SpeP/aNQGXHBzB+8="; cargoHash = "sha256-ubcfLNiLQ71QcD5YneMD5N1ipsR1GK5GJQ0PrJyv6qI=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View File

@ -20,16 +20,18 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fnott"; pname = "fnott";
version = "1.5.0"; version = "1.6.0";
src = fetchFromGitea { src = fetchFromGitea {
domain = "codeberg.org"; domain = "codeberg.org";
owner = "dnkl"; owner = "dnkl";
repo = "fnott"; repo = "fnott";
rev = version; 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; strictDeps = true;
depsBuildBuild = [ depsBuildBuild = [
pkg-config 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 let
rcversion = "2"; rcversion = "1";
in in
stdenvNoCC.mkDerivation (finalAttrs: { stdenvNoCC.mkDerivation (finalAttrs: {
pname = "github-desktop"; pname = "github-desktop";
version = "3.3.12"; version = "3.4.2";
src = src =
let let
urls = { urls = {
"x86_64-linux" = { "x86_64-linux" = {
url = "https://github.com/shiftkey/desktop/releases/download/release-${finalAttrs.version}-linux${rcversion}/GitHubDesktop-linux-amd64-${finalAttrs.version}-linux${rcversion}.deb"; 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" = { "aarch64-linux" = {
url = "https://github.com/shiftkey/desktop/releases/download/release-${finalAttrs.version}-linux${rcversion}/GitHubDesktop-linux-arm64-${finalAttrs.version}-linux${rcversion}.deb"; 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 in

View File

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

View File

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

View File

@ -8,7 +8,7 @@
let let
pname = "mov-cli"; pname = "mov-cli";
version = "4.4.5"; version = "4.4.7";
in in
python3.pkgs.buildPythonPackage { python3.pkgs.buildPythonPackage {
inherit pname version; inherit pname version;
@ -17,8 +17,8 @@ python3.pkgs.buildPythonPackage {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mov-cli"; owner = "mov-cli";
repo = "mov-cli"; repo = "mov-cli";
rev = version; rev = "refs/tags/${version}";
hash = "sha256-Q5fzxdMEUDL1VgeTTgU76z0nksocgjyonAroP/m/Q+0="; hash = "sha256-wbzgTtRMDx9WpILzOGNvTrxj+wN6QzRCUNsc7PfwzJk=";
}; };
propagatedBuildInputs = with python3.pkgs; [ 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 { buildBazelPackage rec {
pname = "perf_data_converter"; pname = "perf_data_converter";
version = "0-unstable-2024-03-12"; version = "0-unstable-2024-07-10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "google"; owner = "google";
repo = "perf_data_converter"; repo = "perf_data_converter";
rev = "e1cfe1e7e5d8cf3b728a166bf02d4227c82801eb"; rev = "5b27c287a57811db91d40b5776cbaedd00945afc";
hash = "sha256-Y3tBLH2jf1f28o6RK2inq9FulKc66qcqwKmxYdFC5tA="; hash = "sha256-A5DEDi52gp1gTugGnutmKNRa/GGsc+LKLE3xRl/1gbw=";
}; };
bazel = bazel_6; bazel = bazel_6;

View File

@ -1,14 +1,17 @@
{ lib {
, stdenv lib,
, fetchFromGitHub stdenv,
, util-linux fetchFromGitHub,
, SDL2 util-linux,
, SDL2_ttf SDL2,
, SDL2_image SDL2_ttf,
, openssl SDL2_image,
, which openssl,
, libsForQt5 which,
, makeWrapper libsForQt5,
makeWrapper,
makeDesktopItem,
copyDesktopItems,
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
@ -26,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
patches = [ ./assets-path.diff ]; patches = [ ./assets-path.diff ];
postPatch = '' postPatch = ''
substituteInPlace src/poptracker.cpp --replace "@assets@" "$out/share/$pname/" substituteInPlace src/poptracker.cpp --replace "@assets@" "$out/share/poptracker/"
''; '';
enableParallelBuilding = true; enableParallelBuilding = true;
@ -34,6 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ nativeBuildInputs = [
util-linux util-linux
makeWrapper makeWrapper
copyDesktopItems
]; ];
buildInputs = [ buildInputs = [
@ -52,11 +56,33 @@ stdenv.mkDerivation (finalAttrs: {
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
install -m555 -Dt $out/bin build/linux-x86_64/poptracker install -m555 -Dt $out/bin build/linux-x86_64/poptracker
install -m444 -Dt $out/share/${finalAttrs.pname} assets/* install -m444 -Dt $out/share/poptracker assets/*
wrapProgram $out/bin/poptracker --prefix PATH : ${lib.makeBinPath [ which libsForQt5.kdialog ]} 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 runHook postInstall
''; '';
desktopItems = [
(makeDesktopItem {
name = "poptracker";
desktopName = "PopTracker";
exec = "poptracker";
comment = "Universal, scriptable randomizer tracking solution";
icon = "poptracker";
categories = [
"Game"
"Utility"
];
})
];
meta = { meta = {
description = "Scriptable tracker for randomized games"; description = "Scriptable tracker for randomized games";
longDescription = '' longDescription = ''
@ -67,7 +93,10 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "https://github.com/black-sliver/PopTracker"; homepage = "https://github.com/black-sliver/PopTracker";
changelog = "https://github.com/black-sliver/PopTracker/releases/tag/v${finalAttrs.version}"; changelog = "https://github.com/black-sliver/PopTracker/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Only; license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ freyacodes pyrox0 ]; maintainers = with lib.maintainers; [
freyacodes
pyrox0
];
mainProgram = "poptracker"; mainProgram = "poptracker";
platforms = [ "x86_64-linux" ]; 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 { python3Packages.buildPythonApplication rec {
pname = "rclip"; pname = "rclip";
version = "1.10.1"; version = "1.10.2";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "yurijmikhalevich"; owner = "yurijmikhalevich";
repo = "rclip"; repo = "rclip";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-02ZbeUw+O7tBQwauklaPPcgNasG+mYrSnw9TGJqtJfk="; hash = "sha256-z+zwhd3JH40Vg9yHt9ektvm2jWFOvj1DaCSI9GwXLT8=";
}; };
nativeBuildInputs = with python3Packages; [ nativeBuildInputs = with python3Packages; [

View File

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

View File

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

View File

@ -6,11 +6,11 @@
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "silverbullet"; pname = "silverbullet";
version = "0.7.7"; version = "0.8.1";
src = fetchurl { src = fetchurl {
url = "https://github.com/silverbulletmd/silverbullet/releases/download/${finalAttrs.version}/silverbullet.js"; url = "https://github.com/silverbulletmd/silverbullet/releases/download/${finalAttrs.version}/silverbullet.js";
hash = "sha256-EhHPysliRi1bv/skS4+ljQW6qFsijmSup1+7/fVfFdg="; hash = "sha256-aofO1IBjxew9r2hC1uEyLYSZrVUoGo4Y7igKbaxs2G0=";
}; };
dontUnpack = true; 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: { stdenvNoCC.mkDerivation (finalAttrs: {
pname = "stevenblack-blocklist"; pname = "stevenblack-blocklist";
version = "3.14.87"; version = "3.14.88";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "StevenBlack"; owner = "StevenBlack";
repo = "hosts"; repo = "hosts";
rev = "refs/tags/${finalAttrs.version}"; rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-QkzDj4EUtmNmJltYu6YOZQBtxm8S23PGdg8nosCzK9M="; hash = "sha256-tS7CDuotk+aAbtOR1x3u3ymyRvPgb3GZjuDcJNm6lZs=";
}; };
outputs = [ outputs = [

View File

@ -12,12 +12,12 @@ in
stdenvNoCC.mkDerivation (finalAttrs: { stdenvNoCC.mkDerivation (finalAttrs: {
pname = "suwayomi-server"; pname = "suwayomi-server";
version = "1.0.0"; version = "1.1.1";
revision = 1498; revision = 1535;
src = fetchurl { src = fetchurl {
url = "https://github.com/Suwayomi/Suwayomi-Server/releases/download/v${finalAttrs.version}/Suwayomi-Server-v${finalAttrs.version}-r${toString finalAttrs.revision}.jar"; 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 = [ nativeBuildInputs = [

View File

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

View File

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

View File

@ -15,21 +15,21 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "uv"; pname = "uv";
version = "0.2.22"; version = "0.2.26";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "astral-sh"; owner = "astral-sh";
repo = "uv"; repo = "uv";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-+eQdR6+0O1CTZoNIodM52R25lLZT+qB2kFy7oWaE+7M="; hash = "sha256-JjRXcbRwZyrS0QFfDjlJrMUxXJrkv9uORibwZ11zZ50=";
}; };
cargoDeps = rustPlatform.importCargoLock { cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock; lockFile = ./Cargo.lock;
outputHashes = { outputHashes = {
"async_zip-0.0.17" = "sha256-Q5fMDJrQtob54CTII3+SXHeozy5S5s3iLOzntevdGOs="; "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="; "reqwest-middleware-0.3.2" = "sha256-OiC8Kg+F2eKy7YNuLtgYPi95DrbxLvsIKrKEeyuzQTo=";
}; };
}; };

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "man-pages"; pname = "man-pages";
version = "6.9"; version = "6.9.1";
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz"; url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz";
hash = "sha256-0Uyv9UzGYvNLG3C89i1OJ+TC/SYGcqNbbnSvcbP3H4g="; hash = "sha256-4jy6wp8RC6Vx8NqFI+edNzaRRm7X8qMTAXIYF9NFML0=";
}; };
makeFlags = [ 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 { stdenvNoCC.mkDerivation rec {
pname = "clash-geoip"; pname = "clash-geoip";
version = "20240612"; version = "20240712";
src = fetchurl { src = fetchurl {
url = "https://github.com/Dreamacro/maxmind-geoip/releases/download/${version}/Country.mmdb"; url = "https://github.com/Dreamacro/maxmind-geoip/releases/download/${version}/Country.mmdb";
sha256 = "sha256-uLXdQUrhBZC7av5MWvlVC0W8UQBWDsYhdmKwKEfOQfk="; sha256 = "sha256-qCa1Udu3qcXggDcVRYqTs7Jvisudh0ZMb48oKVYCG+k=";
}; };
dontUnpack = true; dontUnpack = true;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -14,13 +14,13 @@
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "wolfssl-${variant}"; pname = "wolfssl-${variant}";
version = "5.7.0"; version = "5.7.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "wolfSSL"; owner = "wolfSSL";
repo = "wolfssl"; repo = "wolfssl";
rev = "refs/tags/v${finalAttrs.version}-stable"; rev = "refs/tags/v${finalAttrs.version}-stable";
hash = "sha256-4j1GqeZJn5UWx56DjGjge05jlzBbIGn4IXxcaIBxON4="; hash = "sha256-VTMVgBSDL6pw1eEKnxGzTdyQYWVbMd3mAnOnpAOKVhk=";
}; };
postPatch = '' 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, find-libpython,
pytestCheckHook, pytestCheckHook,
swig, swig,
verilog, iverilog,
ghdl, ghdl,
}: }:
@ -65,7 +65,7 @@ buildPythonPackage rec {
cocotb-bus cocotb-bus
pytestCheckHook pytestCheckHook
swig swig
verilog iverilog
ghdl ghdl
]; ];
preCheck = '' preCheck = ''

View File

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

View File

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

View File

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

View File

@ -11,7 +11,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "mdformat-admon"; pname = "mdformat-admon";
version = "2.0.3"; version = "2.0.6";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "KyleKing"; owner = "KyleKing";
repo = "mdformat-admon"; repo = "mdformat-admon";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-zKc0kKap4ipZ+P+RYDXcwqyzq9NKcTnCmx64cApFxFg="; hash = "sha256-YyEiqry1dAm/2EEuQjPFEfdpLI+NiLhVcyx4jAyXs4E=";
}; };
nativeBuildInputs = [ flit-core ]; 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 { buildPythonPackage rec {
pname = "model-bakery"; pname = "model-bakery";
version = "1.18.1"; version = "1.18.2";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "model-bakers"; owner = "model-bakers";
repo = "model_bakery"; repo = "model_bakery";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-QsfVKPasGFzcLIwx7t9H9I2o2JNUFLKbKc86tntltg8="; hash = "sha256-X+P4ajTtjzIUFlOGM5D87oEb8nN1MFUyKtNy8RKAvB0=";
}; };
build-system = [ hatchling ]; build-system = [ hatchling ];

View File

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

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