mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-11-16 18:37:04 +03:00
Merge master into haskell-updates
This commit is contained in:
commit
ec769627e0
@ -178,6 +178,13 @@ Similarly, if you encounter errors similar to `Error_Protocol ("certificate has
|
||||
|
||||
_Default value:_ 0.
|
||||
|
||||
`compressor` (String; _optional_)
|
||||
|
||||
: Selects the algorithm used to compress the image.
|
||||
|
||||
_Default value:_ `"gz"`.\
|
||||
_Possible values:_ `"none"`, `"gz"`, `"zstd"`.
|
||||
|
||||
`contents` **DEPRECATED**
|
||||
|
||||
: This attribute is deprecated, and users are encouraged to use `copyToRoot` instead.
|
||||
|
@ -385,6 +385,13 @@
|
||||
githubId = 2526296;
|
||||
name = "Adrien Bustany";
|
||||
};
|
||||
abysssol = {
|
||||
name = "abysssol";
|
||||
email = "abysssol@pm.me";
|
||||
matrix = "@abysssol:tchncs.de";
|
||||
github = "abysssol";
|
||||
githubId = 76763323;
|
||||
};
|
||||
acairncross = {
|
||||
email = "acairncross@gmail.com";
|
||||
github = "acairncross";
|
||||
@ -16613,6 +16620,12 @@
|
||||
github = "rubyowo";
|
||||
githubId = 105302757;
|
||||
};
|
||||
rucadi = {
|
||||
email = "ruben.canodiaz@gmail.com";
|
||||
github = "rucadi";
|
||||
githubId = 6445619;
|
||||
name = "Ruben Cano Diaz";
|
||||
};
|
||||
rudolfvesely = {
|
||||
name = "Rudolf Vesely";
|
||||
email = "i@rudolfvesely.com";
|
||||
|
@ -179,6 +179,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
||||
`wants`), because the dependency that `multi-user.target` has on
|
||||
`network-online.target` is planned for removal.
|
||||
|
||||
- `services.pgbouncer` now has systemd support enabled and will log to journald. The default setting for `services.pgbouncer.logFile` is now `null` to disable logging to a separate log file.
|
||||
|
||||
- `services.archisteamfarm` no longer uses the abbreviation `asf` for its state directory (`/var/lib/asf`), user and group (both `asf`). Instead the long name `archisteamfarm` is used.
|
||||
Configurations with `system.stateVersion` 23.11 or earlier, default to the old stateDirectory until the 24.11 release and must either set the option explicitly or move the data to the new directory.
|
||||
|
||||
@ -339,6 +341,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
||||
|
||||
- The `services.paperless` module no longer uses the previously downloaded NLTK data stored in `/var/cache/paperless/nltk`. This directory can be removed.
|
||||
|
||||
- The `services.teeworlds` module now has a wealth of configuration options, including a new `package` option.
|
||||
|
||||
- The `hardware.pulseaudio` module now sets permission of pulse user home directory to 755 when running in "systemWide" mode. It fixes [issue 114399](https://github.com/NixOS/nixpkgs/issues/114399).
|
||||
|
||||
- The module `services.github-runner` has been removed. To configure a single GitHub Actions Runner refer to `services.github-runners.*`. Note that this will trigger a new runner registration.
|
||||
|
@ -6,7 +6,7 @@ with lib;
|
||||
let
|
||||
checkService = checkUnitConfig "Service" [
|
||||
(assertValueOneOf "Type" [
|
||||
"exec" "simple" "forking" "oneshot" "dbus" "notify" "idle"
|
||||
"exec" "simple" "forking" "oneshot" "dbus" "notify" "notify-reload" "idle"
|
||||
])
|
||||
(assertValueOneOf "Restart" [
|
||||
"no" "on-success" "on-failure" "on-abnormal" "on-abort" "always"
|
||||
|
@ -22,7 +22,7 @@ in
|
||||
description = lib.mdDoc ''
|
||||
Configuration included in `${name}.toml`.
|
||||
|
||||
See https://github.com/sxyazi/yazi/blob/v${cfg.package.version}/config/docs/${name}.md for documentation.
|
||||
See https://yazi-rs.github.io/docs/configuration/${name}/ for documentation.
|
||||
'';
|
||||
}))
|
||||
names);
|
||||
@ -47,7 +47,5 @@ in
|
||||
};
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ linsui ];
|
||||
# The version of the package is used in the doc.
|
||||
buildDocsInSandbox = false;
|
||||
};
|
||||
}
|
||||
|
@ -66,9 +66,6 @@ let
|
||||
${optionalString (cfg.adminUsers != null) "admin_users = ${cfg.adminUsers}"}
|
||||
${optionalString (cfg.statsUsers != null) "stats_users = ${cfg.statsUsers}"}
|
||||
|
||||
# linux
|
||||
pidfile = /run/pgbouncer/pgbouncer.pid
|
||||
|
||||
# extra
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
@ -96,10 +93,9 @@ in {
|
||||
|
||||
logFile = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = "pgbouncer.log";
|
||||
default = null;
|
||||
description = lib.mdDoc ''
|
||||
Specifies the log file.
|
||||
Either this or syslog has to be specified.
|
||||
Specifies a log file in addition to journald.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -601,22 +597,21 @@ in {
|
||||
|
||||
systemd.services.pgbouncer = {
|
||||
description = "PgBouncer - PostgreSQL connection pooler";
|
||||
wants = [ "postgresql.service" ];
|
||||
after = [ "postgresql.service" ];
|
||||
wants = [ "network-online.target" ] ++ lib.optional config.services.postgresql.enable "postgresql.service";
|
||||
after = [ "network-online.target" ] ++ lib.optional config.services.postgresql.enable "postgresql.service";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Type = "forking";
|
||||
Type = "notify";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
ExecStart = "${pkgs.pgbouncer}/bin/pgbouncer -d ${confFile}";
|
||||
ExecStart = "${lib.getExe pkgs.pgbouncer} ${confFile}";
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -SIGHUP $MAINPID";
|
||||
RuntimeDirectory = "pgbouncer";
|
||||
PIDFile = "/run/pgbouncer/pgbouncer.pid";
|
||||
LimitNOFILE = cfg.openFilesLimit;
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = optional cfg.openFirewall cfg.port;
|
||||
networking.firewall.allowedTCPPorts = optional cfg.openFirewall cfg.listenPort;
|
||||
|
||||
};
|
||||
|
||||
|
@ -6,13 +6,86 @@ let
|
||||
cfg = config.services.teeworlds;
|
||||
register = cfg.register;
|
||||
|
||||
bool = b: if b != null && b then "1" else "0";
|
||||
optionalSetting = s: setting: optionalString (s != null) "${setting} ${s}";
|
||||
lookup = attrs: key: default: if attrs ? key then attrs."${key}" else default;
|
||||
|
||||
inactivePenaltyOptions = {
|
||||
"spectator" = "1";
|
||||
"spectator/kick" = "2";
|
||||
"kick" = "3";
|
||||
};
|
||||
skillLevelOptions = {
|
||||
"casual" = "0";
|
||||
"normal" = "1";
|
||||
"competitive" = "2";
|
||||
};
|
||||
tournamentModeOptions = {
|
||||
"disable" = "0";
|
||||
"enable" = "1";
|
||||
"restrictSpectators" = "2";
|
||||
};
|
||||
|
||||
teeworldsConf = pkgs.writeText "teeworlds.cfg" ''
|
||||
sv_port ${toString cfg.port}
|
||||
sv_register ${if cfg.register then "1" else "0"}
|
||||
${optionalString (cfg.name != null) "sv_name ${cfg.name}"}
|
||||
${optionalString (cfg.motd != null) "sv_motd ${cfg.motd}"}
|
||||
${optionalString (cfg.password != null) "password ${cfg.password}"}
|
||||
${optionalString (cfg.rconPassword != null) "sv_rcon_password ${cfg.rconPassword}"}
|
||||
sv_register ${bool cfg.register}
|
||||
sv_name ${cfg.name}
|
||||
${optionalSetting cfg.motd "sv_motd"}
|
||||
${optionalSetting cfg.password "password"}
|
||||
${optionalSetting cfg.rconPassword "sv_rcon_password"}
|
||||
|
||||
${optionalSetting cfg.server.bindAddr "bindaddr"}
|
||||
${optionalSetting cfg.server.hostName "sv_hostname"}
|
||||
sv_high_bandwidth ${bool cfg.server.enableHighBandwidth}
|
||||
sv_inactivekick ${lookup inactivePenaltyOptions cfg.server.inactivePenalty "spectator/kick"}
|
||||
sv_inactivekick_spec ${bool cfg.server.kickInactiveSpectators}
|
||||
sv_inactivekick_time ${toString cfg.server.inactiveTime}
|
||||
sv_max_clients ${toString cfg.server.maxClients}
|
||||
sv_max_clients_per_ip ${toString cfg.server.maxClientsPerIP}
|
||||
sv_skill_level ${lookup skillLevelOptions cfg.server.skillLevel "normal"}
|
||||
sv_spamprotection ${bool cfg.server.enableSpamProtection}
|
||||
|
||||
sv_gametype ${cfg.game.gameType}
|
||||
sv_map ${cfg.game.map}
|
||||
sv_match_swap ${bool cfg.game.swapTeams}
|
||||
sv_player_ready_mode ${bool cfg.game.enableReadyMode}
|
||||
sv_player_slots ${toString cfg.game.playerSlots}
|
||||
sv_powerups ${bool cfg.game.enablePowerups}
|
||||
sv_scorelimit ${toString cfg.game.scoreLimit}
|
||||
sv_strict_spectate_mode ${bool cfg.game.restrictSpectators}
|
||||
sv_teamdamage ${bool cfg.game.enableTeamDamage}
|
||||
sv_timelimit ${toString cfg.game.timeLimit}
|
||||
sv_tournament_mode ${lookup tournamentModeOptions cfg.server.tournamentMode "disable"}
|
||||
sv_vote_kick ${bool cfg.game.enableVoteKick}
|
||||
sv_vote_kick_bantime ${toString cfg.game.voteKickBanTime}
|
||||
sv_vote_kick_min ${toString cfg.game.voteKickMinimumPlayers}
|
||||
|
||||
${optionalSetting cfg.server.bindAddr "bindaddr"}
|
||||
${optionalSetting cfg.server.hostName "sv_hostname"}
|
||||
sv_high_bandwidth ${bool cfg.server.enableHighBandwidth}
|
||||
sv_inactivekick ${lookup inactivePenaltyOptions cfg.server.inactivePenalty "spectator/kick"}
|
||||
sv_inactivekick_spec ${bool cfg.server.kickInactiveSpectators}
|
||||
sv_inactivekick_time ${toString cfg.server.inactiveTime}
|
||||
sv_max_clients ${toString cfg.server.maxClients}
|
||||
sv_max_clients_per_ip ${toString cfg.server.maxClientsPerIP}
|
||||
sv_skill_level ${lookup skillLevelOptions cfg.server.skillLevel "normal"}
|
||||
sv_spamprotection ${bool cfg.server.enableSpamProtection}
|
||||
|
||||
sv_gametype ${cfg.game.gameType}
|
||||
sv_map ${cfg.game.map}
|
||||
sv_match_swap ${bool cfg.game.swapTeams}
|
||||
sv_player_ready_mode ${bool cfg.game.enableReadyMode}
|
||||
sv_player_slots ${toString cfg.game.playerSlots}
|
||||
sv_powerups ${bool cfg.game.enablePowerups}
|
||||
sv_scorelimit ${toString cfg.game.scoreLimit}
|
||||
sv_strict_spectate_mode ${bool cfg.game.restrictSpectators}
|
||||
sv_teamdamage ${bool cfg.game.enableTeamDamage}
|
||||
sv_timelimit ${toString cfg.game.timeLimit}
|
||||
sv_tournament_mode ${lookup tournamentModeOptions cfg.server.tournamentMode "disable"}
|
||||
sv_vote_kick ${bool cfg.game.enableVoteKick}
|
||||
sv_vote_kick_bantime ${toString cfg.game.voteKickBanTime}
|
||||
sv_vote_kick_min ${toString cfg.game.voteKickMinimumPlayers}
|
||||
|
||||
${concatStringsSep "\n" cfg.extraOptions}
|
||||
'';
|
||||
|
||||
@ -22,17 +95,19 @@ in
|
||||
services.teeworlds = {
|
||||
enable = mkEnableOption (lib.mdDoc "Teeworlds Server");
|
||||
|
||||
package = mkPackageOptionMD pkgs "teeworlds-server" { };
|
||||
|
||||
openPorts = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc "Whether to open firewall ports for Teeworlds";
|
||||
description = lib.mdDoc "Whether to open firewall ports for Teeworlds.";
|
||||
};
|
||||
|
||||
name = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
type = types.str;
|
||||
default = "unnamed server";
|
||||
description = lib.mdDoc ''
|
||||
Name of the server. Defaults to 'unnamed server'.
|
||||
Name of the server.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -41,7 +116,7 @@ in
|
||||
example = true;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
Whether the server registers as public server in the global server list. This is disabled by default because of privacy.
|
||||
Whether the server registers as a public server in the global server list. This is disabled by default for privacy reasons.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -49,7 +124,7 @@ in
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = lib.mdDoc ''
|
||||
Set the server message of the day text.
|
||||
The server's message of the day text.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -85,6 +160,217 @@ in
|
||||
'';
|
||||
example = [ "sv_map dm1" "sv_gametype dm" ];
|
||||
};
|
||||
|
||||
server = {
|
||||
bindAddr = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = lib.mdDoc ''
|
||||
The address the server will bind to.
|
||||
'';
|
||||
};
|
||||
|
||||
enableHighBandwidth = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
Whether to enable high bandwidth mode on LAN servers. This will double the amount of bandwidth required for running the server.
|
||||
'';
|
||||
};
|
||||
|
||||
hostName = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = lib.mdDoc ''
|
||||
Hostname for the server.
|
||||
'';
|
||||
};
|
||||
|
||||
inactivePenalty = mkOption {
|
||||
type = types.enum [ "spectator" "spectator/kick" "kick" ];
|
||||
example = "spectator";
|
||||
default = "spectator/kick";
|
||||
description = lib.mdDoc ''
|
||||
Specify what to do when a client goes inactive (see [](#opt-services.teeworlds.server.inactiveTime)).
|
||||
|
||||
- `spectator`: send the client into spectator mode
|
||||
|
||||
- `spectator/kick`: send the client into a free spectator slot, otherwise kick the client
|
||||
|
||||
- `kick`: kick the client
|
||||
'';
|
||||
};
|
||||
|
||||
kickInactiveSpectators = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
Whether to kick inactive spectators.
|
||||
'';
|
||||
};
|
||||
|
||||
inactiveTime = mkOption {
|
||||
type = types.ints.unsigned;
|
||||
default = 3;
|
||||
description = lib.mdDoc ''
|
||||
The amount of minutes a client has to idle before it is considered inactive.
|
||||
'';
|
||||
};
|
||||
|
||||
maxClients = mkOption {
|
||||
type = types.ints.unsigned;
|
||||
default = 12;
|
||||
description = lib.mdDoc ''
|
||||
The maximum amount of clients that can be connected to the server at the same time.
|
||||
'';
|
||||
};
|
||||
|
||||
maxClientsPerIP = mkOption {
|
||||
type = types.ints.unsigned;
|
||||
default = 12;
|
||||
description = lib.mdDoc ''
|
||||
The maximum amount of clients with the same IP address that can be connected to the server at the same time.
|
||||
'';
|
||||
};
|
||||
|
||||
skillLevel = mkOption {
|
||||
type = types.enum [ "casual" "normal" "competitive" ];
|
||||
default = "normal";
|
||||
description = lib.mdDoc ''
|
||||
The skill level shown in the server browser.
|
||||
'';
|
||||
};
|
||||
|
||||
enableSpamProtection = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = lib.mdDoc ''
|
||||
Whether to enable chat spam protection.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
game = {
|
||||
gameType = mkOption {
|
||||
type = types.str;
|
||||
example = "ctf";
|
||||
default = "dm";
|
||||
description = lib.mdDoc ''
|
||||
The game type to use on the server.
|
||||
|
||||
The default gametypes are `dm`, `tdm`, `ctf`, `lms`, and `lts`.
|
||||
'';
|
||||
};
|
||||
|
||||
map = mkOption {
|
||||
type = types.str;
|
||||
example = "ctf5";
|
||||
default = "dm1";
|
||||
description = lib.mdDoc ''
|
||||
The map to use on the server.
|
||||
'';
|
||||
};
|
||||
|
||||
swapTeams = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = lib.mdDoc ''
|
||||
Whether to swap teams each round.
|
||||
'';
|
||||
};
|
||||
|
||||
enableReadyMode = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
Whether to enable "ready mode"; where players can pause/unpause the game
|
||||
and start the game in warmup, using their ready state.
|
||||
'';
|
||||
};
|
||||
|
||||
playerSlots = mkOption {
|
||||
type = types.ints.unsigned;
|
||||
default = 8;
|
||||
description = lib.mdDoc ''
|
||||
The amount of slots to reserve for players (as opposed to spectators).
|
||||
'';
|
||||
};
|
||||
|
||||
enablePowerups = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = lib.mdDoc ''
|
||||
Whether to allow powerups such as the ninja.
|
||||
'';
|
||||
};
|
||||
|
||||
scoreLimit = mkOption {
|
||||
type = types.ints.unsigned;
|
||||
example = 400;
|
||||
default = 20;
|
||||
description = lib.mdDoc ''
|
||||
The score limit needed to win a round.
|
||||
'';
|
||||
};
|
||||
|
||||
restrictSpectators = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
Whether to restrict access to information such as health, ammo and armour in spectator mode.
|
||||
'';
|
||||
};
|
||||
|
||||
enableTeamDamage = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
Whether to enable team damage; whether to allow team mates to inflict damage on one another.
|
||||
'';
|
||||
};
|
||||
|
||||
timeLimit = mkOption {
|
||||
type = types.ints.unsigned;
|
||||
default = 0;
|
||||
description = lib.mdDoc ''
|
||||
Time limit of the game. In cases of equal points, there will be sudden death.
|
||||
Setting this to 0 disables a time limit.
|
||||
'';
|
||||
};
|
||||
|
||||
tournamentMode = mkOption {
|
||||
type = types.enum [ "disable" "enable" "restrictSpectators" ];
|
||||
default = "disable";
|
||||
description = lib.mdDoc ''
|
||||
Whether to enable tournament mode. In tournament mode, players join as spectators.
|
||||
If this is set to `restrictSpectators`, tournament mode is enabled but spectator chat is restricted.
|
||||
'';
|
||||
};
|
||||
|
||||
enableVoteKick = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = lib.mdDoc ''
|
||||
Whether to enable voting to kick players.
|
||||
'';
|
||||
};
|
||||
|
||||
voteKickBanTime = mkOption {
|
||||
type = types.ints.unsigned;
|
||||
default = 5;
|
||||
description = lib.mdDoc ''
|
||||
The amount of minutes that a player is banned for if they get kicked by a vote.
|
||||
'';
|
||||
};
|
||||
|
||||
voteKickMinimumPlayers = mkOption {
|
||||
type = types.ints.unsigned;
|
||||
default = 5;
|
||||
description = lib.mdDoc ''
|
||||
The minimum amount of players required to start a kick vote.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@ -100,7 +386,7 @@ in
|
||||
|
||||
serviceConfig = {
|
||||
DynamicUser = true;
|
||||
ExecStart = "${pkgs.teeworlds-server}/bin/teeworlds_srv -f ${teeworldsConf}";
|
||||
ExecStart = "${cfg.package}/bin/teeworlds_srv -f ${teeworldsConf}";
|
||||
|
||||
# Hardening
|
||||
CapabilityBoundingSet = false;
|
||||
|
@ -50,7 +50,7 @@ in
|
||||
serviceConfig = {
|
||||
Type = "exec";
|
||||
User = "automatic-timezoned";
|
||||
ExecStart = "${cfg.package}/bin/automatic-timezoned --zoneinfo-path=${pkgs.tzdata}/share/zoneinfo/zone1970.tab";
|
||||
ExecStart = "${cfg.package}/bin/automatic-timezoned";
|
||||
};
|
||||
wantedBy = [ "default.target" ];
|
||||
};
|
||||
|
@ -97,6 +97,12 @@ in
|
||||
considered failed and systemd will attempt to restart it.
|
||||
'';
|
||||
};
|
||||
|
||||
ui = {
|
||||
enable = lib.mkEnableOption (lib.mdDoc "(experimental) Incus UI");
|
||||
|
||||
package = lib.mkPackageOption pkgs [ "incus" "ui" ] { };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@ -165,10 +171,12 @@ in
|
||||
"${config.boot.zfs.package}/lib/udev"
|
||||
];
|
||||
|
||||
environment = {
|
||||
environment = lib.mkMerge [ {
|
||||
# Override Path to the LXC template configuration directory
|
||||
INCUS_LXC_TEMPLATE_CONFIG = "${pkgs.lxcfs}/share/lxc/config";
|
||||
};
|
||||
} (lib.mkIf (cfg.ui.enable) {
|
||||
"INCUS_UI" = cfg.ui.package;
|
||||
}) ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${cfg.package}/bin/incusd --group incus-admin";
|
||||
|
@ -46,6 +46,18 @@ let
|
||||
echo 'runAsRoot has run.'
|
||||
'';
|
||||
};
|
||||
|
||||
chownTestImage =
|
||||
pkgs.dockerTools.streamLayeredImage {
|
||||
name = "chown-test";
|
||||
tag = "latest";
|
||||
enableFakechroot = true;
|
||||
fakeRootCommands = ''
|
||||
touch /testfile
|
||||
chown 12345:12345 /testfile
|
||||
'';
|
||||
config.Cmd = [ "${pkgs.coreutils}/bin/stat" "-c" "%u:%g" "/testfile" ];
|
||||
};
|
||||
in {
|
||||
name = "docker-tools";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
@ -143,6 +155,15 @@ in {
|
||||
docker.succeed("docker images --format '{{.Tag}}' | grep -F '${examples.nixLayered.imageTag}'")
|
||||
docker.succeed("docker rmi ${examples.nixLayered.imageName}")
|
||||
|
||||
with subtest("Check that images with alternative compression schemas load"):
|
||||
docker.succeed(
|
||||
"docker load --input='${examples.bashZstdCompressed}'",
|
||||
"docker rmi ${examples.bashZstdCompressed.imageName}",
|
||||
)
|
||||
docker.succeed(
|
||||
"docker load --input='${examples.bashUncompressed}'",
|
||||
"docker rmi ${examples.bashUncompressed.imageName}",
|
||||
)
|
||||
|
||||
with subtest(
|
||||
"Check if the nix store is correctly initialized by listing "
|
||||
@ -464,6 +485,18 @@ in {
|
||||
"docker run --rm ${examples.layeredImageWithFakeRootCommands.imageName} /hello/bin/layeredImageWithFakeRootCommands-hello"
|
||||
)
|
||||
|
||||
with subtest("mergeImage correctly deals with varying compression schemas in inputs"):
|
||||
docker.succeed("docker load --input='${examples.mergeVaryingCompressor}'")
|
||||
|
||||
for sub_image, tag in [
|
||||
("${examples.redis.imageName}", "${examples.redis.imageTag}"),
|
||||
("${examples.bashUncompressed.imageName}", "${examples.bashUncompressed.imageTag}"),
|
||||
("${examples.bashZstdCompressed.imageName}", "${examples.bashZstdCompressed.imageTag}"),
|
||||
]:
|
||||
docker.succeed(f"docker images --format '{{{{.Repository}}}}-{{{{.Tag}}}}' | grep -F '{sub_image}-{tag}'")
|
||||
docker.succeed(f"docker rmi {sub_image}")
|
||||
|
||||
|
||||
with subtest("exportImage produces a valid tarball"):
|
||||
docker.succeed(
|
||||
"tar -tf ${examples.exportBash} | grep '\./bin/bash' > /dev/null"
|
||||
@ -565,5 +598,11 @@ in {
|
||||
"${examples.nix-shell-build-derivation} | docker load",
|
||||
"docker run --rm -it nix-shell-build-derivation"
|
||||
)
|
||||
|
||||
with subtest("streamLayeredImage: chown is persistent in fakeRootCommands"):
|
||||
docker.succeed(
|
||||
"${chownTestImage} | docker load",
|
||||
"docker run --rm ${chownTestImage.imageName} | diff /dev/stdin <(echo 12345:12345)"
|
||||
)
|
||||
'';
|
||||
})
|
||||
|
@ -9,5 +9,6 @@
|
||||
lxd-to-incus = import ./lxd-to-incus.nix { inherit system pkgs; };
|
||||
preseed = import ./preseed.nix { inherit system pkgs; };
|
||||
socket-activated = import ./socket-activated.nix { inherit system pkgs; };
|
||||
ui = import ./ui.nix {inherit system pkgs;};
|
||||
virtual-machine = handleTestOn [ "x86_64-linux" ] ./virtual-machine.nix { inherit system pkgs; };
|
||||
}
|
||||
|
63
nixos/tests/incus/ui.nix
Normal file
63
nixos/tests/incus/ui.nix
Normal file
@ -0,0 +1,63 @@
|
||||
import ../make-test-python.nix ({ pkgs, lib, ... }: {
|
||||
name = "incus-ui";
|
||||
|
||||
meta = {
|
||||
maintainers = lib.teams.lxc.members;
|
||||
};
|
||||
|
||||
nodes.machine = { lib, ... }: {
|
||||
virtualisation = {
|
||||
incus.enable = true;
|
||||
incus.ui.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages =
|
||||
let
|
||||
seleniumScript = pkgs.writers.writePython3Bin "selenium-script"
|
||||
{
|
||||
libraries = with pkgs.python3Packages; [ selenium ];
|
||||
} ''
|
||||
from selenium import webdriver
|
||||
from selenium.webdriver.common.by import By
|
||||
from selenium.webdriver.firefox.options import Options
|
||||
from selenium.webdriver.support.ui import WebDriverWait
|
||||
|
||||
options = Options()
|
||||
options.add_argument("--headless")
|
||||
service = webdriver.FirefoxService(executable_path="${lib.getExe pkgs.geckodriver}") # noqa: E501
|
||||
|
||||
driver = webdriver.Firefox(options=options, service=service)
|
||||
driver.implicitly_wait(10)
|
||||
driver.get("https://localhost:8443/ui")
|
||||
|
||||
wait = WebDriverWait(driver, 60)
|
||||
|
||||
assert len(driver.find_elements(By.CLASS_NAME, "l-application")) > 0
|
||||
assert len(driver.find_elements(By.CLASS_NAME, "l-navigation__drawer")) > 0
|
||||
|
||||
driver.close()
|
||||
'';
|
||||
in
|
||||
with pkgs; [ curl firefox-unwrapped geckodriver seleniumScript ];
|
||||
};
|
||||
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("sockets.target")
|
||||
machine.wait_for_unit("incus.service")
|
||||
machine.wait_for_file("/var/lib/incus/unix.socket")
|
||||
|
||||
# Configure incus listen address
|
||||
machine.succeed("incus config set core.https_address :8443")
|
||||
machine.succeed("systemctl restart incus")
|
||||
|
||||
# Check that the INCUS_UI environment variable is populated in the systemd unit
|
||||
machine.succeed("cat /etc/systemd/system/incus.service | grep 'INCUS_UI'")
|
||||
|
||||
# Ensure the endpoint returns an HTML page with 'Incus UI' in the title
|
||||
machine.succeed("curl -kLs https://localhost:8443/ui | grep '<title>Incus UI</title>'")
|
||||
|
||||
# Ensure the application is actually rendered by the Javascript
|
||||
machine.succeed("PYTHONUNBUFFERED=1 selenium-script")
|
||||
'';
|
||||
})
|
@ -2,12 +2,12 @@
|
||||
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
pname = "mopidy-muse";
|
||||
version = "0.0.27";
|
||||
version = "0.0.30";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "Mopidy-Muse";
|
||||
sha256 = "0jx9dkgxr07avzz9zskzhqy98zsxkdrf7iid2ax5vygwf8qsx8ks";
|
||||
sha256 = "sha256-uFptv2niq8LVvEmMEteEN+RzghDiPC7z5EsAmxifDmw=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -14,11 +14,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "roomeqwizard";
|
||||
version = "5.30.8";
|
||||
version = "5.30.9";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.roomeqwizard.com/installers/REW_linux_no_jre_${lib.replaceStrings [ "." ] [ "_" ] version}.sh";
|
||||
sha256 = "sha256-ZHxMwbT2SoWEIuBJEuuVhU26V4NAbJKqx3lawedIwYo=";
|
||||
sha256 = "sha256-gyitOq/HTDruP4nY6B7y1E+pL43yRhldyiiXEjKyogU=";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "x42-gmsynth";
|
||||
version = "0.4.1";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "x42";
|
||||
repo = "gmsynth.lv2";
|
||||
rev = "v${version}";
|
||||
sha256 = "08dvdj8r17sfl6l18g2b8abgls2irkbrq5vhrfai01hp2m0rlm34";
|
||||
hash = "sha256-onZoaQVAGH/1d7jBRlN3ucx/3mTGUCxjvvt19GyprsY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
@ -26,6 +26,14 @@ mkDerivation rec {
|
||||
url = "https://aur.archlinux.org/cgit/aur.git/plain/boost1770.patch?h=litecoin-qt&id=dc75ad854af123f375b5b683be64aa14573170d7";
|
||||
hash = "sha256-PTkYQRA8n5a9yR2AvpzH5natsXT2W6Xjo0ONCPJx78k=";
|
||||
})
|
||||
|
||||
# Fix gcc-13 build by adding missing headers:
|
||||
# https://github.com/litecoin-project/litecoin/pull/929
|
||||
(fetchpatch {
|
||||
name = "gcc-13.patch";
|
||||
url = "https://github.com/litecoin-project/litecoin/commit/6d1adb19aa79a8e8e140582759515bbd76816aa0.patch";
|
||||
hash = "sha256-1y4Iz2plMw5HMAjl9x50QQpYrYaUd2WKrrAcUnQmlBY=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config autoreconfHook ];
|
||||
|
@ -13,13 +13,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cpeditor";
|
||||
version = "6.11.1";
|
||||
version = "6.11.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cpeditor";
|
||||
repo = "cpeditor";
|
||||
rev = version;
|
||||
sha256 = "sha256-Uwo7ZE+9yrHV/+D6rvfew2d3ZJbpFOjgek38iYkPppw=";
|
||||
sha256 = "sha256-zotbXzRjIwZdYluJiz6GWUIOXl/wz1TWt+dcTwMhURo=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -22,10 +22,10 @@
|
||||
|
||||
let
|
||||
pname = "typora";
|
||||
version = "1.8.9";
|
||||
version = "1.8.10";
|
||||
src = fetchurl {
|
||||
url = "https://download.typora.io/linux/typora_${version}_amd64.deb";
|
||||
hash = "sha256-1FAVY9NSvpZOCZJmNadx5ZlqfaCc2N3D+T/08F4TOzY=";
|
||||
hash = "sha256-5ZLSzDUcF0OZUuWVX/iG+4ccTlCPdYxy7zl0wDHlxNQ=";
|
||||
};
|
||||
|
||||
typoraBase = stdenv.mkDerivation {
|
||||
|
@ -1,81 +0,0 @@
|
||||
{ rustPlatform
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
|
||||
, makeWrapper
|
||||
, installShellFiles
|
||||
, stdenv
|
||||
, Foundation
|
||||
|
||||
, withFile ? true
|
||||
, file
|
||||
, withJq ? true
|
||||
, jq
|
||||
, withPoppler ? true
|
||||
, poppler_utils
|
||||
, withUnar ? true
|
||||
, unar
|
||||
, withFfmpegthumbnailer ? true
|
||||
, ffmpegthumbnailer
|
||||
, withFd ? true
|
||||
, fd
|
||||
, withRipgrep ? true
|
||||
, ripgrep
|
||||
, withFzf ? true
|
||||
, fzf
|
||||
, withZoxide ? true
|
||||
, zoxide
|
||||
|
||||
, nix-update-script
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "yazi";
|
||||
version = "0.2.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sxyazi";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-2AiaJs6xY8hsB1DBxpPwdZtc8IZvsoCGWBOFVMf4dvk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-fRUmXv27sHYz8z0cc795JCPLHDQGgTV4wAWAtQ/pbg4=";
|
||||
|
||||
env.YAZI_GEN_COMPLETIONS = true;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper installShellFiles ];
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ Foundation ];
|
||||
|
||||
postInstall = with lib;
|
||||
let
|
||||
runtimePaths = [ ]
|
||||
++ optional withFile file
|
||||
++ optional withJq jq
|
||||
++ optional withPoppler poppler_utils
|
||||
++ optional withUnar unar
|
||||
++ optional withFfmpegthumbnailer ffmpegthumbnailer
|
||||
++ optional withFd fd
|
||||
++ optional withRipgrep ripgrep
|
||||
++ optional withFzf fzf
|
||||
++ optional withZoxide zoxide;
|
||||
in
|
||||
''
|
||||
wrapProgram $out/bin/yazi \
|
||||
--prefix PATH : "${makeBinPath runtimePaths}"
|
||||
installShellCompletion --cmd yazi \
|
||||
--bash ./yazi-config/completions/yazi.bash \
|
||||
--fish ./yazi-config/completions/yazi.fish \
|
||||
--zsh ./yazi-config/completions/_yazi
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = with lib; {
|
||||
description = "Blazing fast terminal file manager written in Rust, based on async I/O";
|
||||
homepage = "https://github.com/sxyazi/yazi";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ xyenon matthiasbeyer ];
|
||||
mainProgram = "yazi";
|
||||
};
|
||||
}
|
@ -8,16 +8,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "artem";
|
||||
version = "2.0.2";
|
||||
version = "2.0.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "finefindus";
|
||||
repo = "artem";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-t8L1lylaacEHGg3wxVgiB2XmBHDGzql774oHrg/vUC0=";
|
||||
hash = "sha256-iio0MJG0qVndhQvF2zgZ6Jw0za6bBQYFmtk1Mbxpq1E=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-rsgl8g6AqNmdq2gJ3PHvKMb7eid8ewtheajGWSWbeBw=";
|
||||
cargoHash = "sha256-47HNoAA1qr39qQqfq+qZoCFyjKHu5pnRKC2QzA60K3k=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
|
@ -23,13 +23,13 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "cloudcompare";
|
||||
version = "2.12.4";
|
||||
version = "2.13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "CloudCompare";
|
||||
repo = "CloudCompare";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-rQ9/vS/fyRWGBL4UGPNSeeNsDtnRHEp9NCViBtu/QEs=";
|
||||
hash = "sha256-tCmIdajizaTT1tvPA7YQoklfz7pYVKS0lJXrxV2fidg=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -15,12 +15,12 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mkgmap";
|
||||
version = "4916";
|
||||
version = "4917";
|
||||
|
||||
src = fetchsvn {
|
||||
url = "https://svn.mkgmap.org.uk/mkgmap/mkgmap/trunk";
|
||||
rev = version;
|
||||
sha256 = "sha256-Ok6s1DaTZBcYtkHA7WAxjGz0HycvFqBpkwZIirc+dFU=";
|
||||
sha256 = "sha256-7VCEbsvcT7iaJ3MZz4CthJEE9FSJCowAO7PJ9UqmzPA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -16,13 +16,13 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "nwg-panel";
|
||||
version = "0.9.22";
|
||||
version = "0.9.23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nwg-piotr";
|
||||
repo = "nwg-panel";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-2O3FMPA/QD+ZUmLvot+MMwbUo3zT6ZN5NIbulh2oGYk=";
|
||||
hash = "sha256-NCMGqKRcwqy4e3gF9y2oykiAoL8X3IZbcGzq6N3CAMU=";
|
||||
};
|
||||
|
||||
# No tests
|
||||
|
@ -8,7 +8,7 @@ with python3.pkgs;
|
||||
buildPythonPackage rec {
|
||||
pname = "shell-genie";
|
||||
version = "0.2.10";
|
||||
format = "pyproject";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "shell_genie";
|
||||
@ -17,6 +17,7 @@ buildPythonPackage rec {
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"openai"
|
||||
"typer"
|
||||
];
|
||||
|
||||
|
@ -12,16 +12,17 @@
|
||||
, exfat
|
||||
, ntfs3g
|
||||
, btrfs-progs
|
||||
, pcsclite
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "veracrypt";
|
||||
version = "1.25.9";
|
||||
version = "1.26.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://launchpad.net/${pname}/trunk/${lib.toLower version}/+download/VeraCrypt_${version}_Source.tar.bz2";
|
||||
sha256 = "sha256-drbhgYS8IaQdKUn/Y9ch1JBUpxbO/zpL13tcNRC3lK8=";
|
||||
sha256 = "sha256-920nsYJBTg1P2ba1n76iiyXbb6afK7z/ouwmmxqGX2U=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@ -39,7 +40,7 @@ stdenv.mkDerivation rec {
|
||||
sourceRoot = "src";
|
||||
|
||||
nativeBuildInputs = [ makeself pkg-config yasm wrapGAppsHook ];
|
||||
buildInputs = [ fuse lvm2 wxGTK ];
|
||||
buildInputs = [ fuse lvm2 wxGTK pcsclite ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -3,10 +3,10 @@
|
||||
{
|
||||
firefox = buildMozillaMach rec {
|
||||
pname = "firefox";
|
||||
version = "122.0.1";
|
||||
version = "123.0";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "1d4fe1ed351edd748ede2ef6448798a32de9ed7a075a54a7ed5f7baa7b0c4c7f932c2e29f443c9066829e39f22a1dc94be5d00cc994193e949b72aa4a1c8ba41";
|
||||
sha512 = "a19567a13e1b663e538c4af17491146adad1f0ab977995e8da9ce9ed428008ad20902dee4efb82d54e1319a0e31768609696bc822563d75732b622760129d8bb";
|
||||
};
|
||||
|
||||
extraPatches = [
|
||||
@ -94,11 +94,11 @@
|
||||
|
||||
firefox-esr-115 = buildMozillaMach rec {
|
||||
pname = "firefox-esr-115";
|
||||
version = "115.7.0esr";
|
||||
version = "115.8.0esr";
|
||||
applicationName = "Mozilla Firefox ESR";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "d468d8ef117d76e0660c5359c3becf0502354c61bdaaeb4137d86f52b50143abec2ac4578af69afa5670700b57efff1c7323ca23e3339a9eaaa888dee7e8e922";
|
||||
sha512 = "4b8c06b5eb3617700a72aaad8831d703a537fe600740f1acb8377bd0ce198a199938603fd7e6b2007671a578dfb24aa8f5c031c6c1ccf15d4a34562679eaa883";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "arkade";
|
||||
version = "0.11.0";
|
||||
version = "0.11.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alexellis";
|
||||
repo = "arkade";
|
||||
rev = version;
|
||||
hash = "sha256-SNYaUbWj8t73Aaamg2SOu5EBiYjDMHCiXlaERqGmr2A=";
|
||||
hash = "sha256-DsKc+AT+0vIaJftBFLqVXx/CJRNNgE/vzSxlHkCSJaI=";
|
||||
};
|
||||
|
||||
CGO_ENABLED = 0;
|
||||
|
@ -8,18 +8,18 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cmctl";
|
||||
version = "1.14.1";
|
||||
version = "1.14.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cert-manager";
|
||||
repo = "cert-manager";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-tS/s8zrOomuUBIoIh81RMdwmPM9pcz4cNSKVQfNxlrI=";
|
||||
hash = "sha256-pq7v7j/w+gDlyjYyrOk86YW76rwxLQQUFwhaPrblCSw=";
|
||||
};
|
||||
|
||||
sourceRoot = "${src.name}/cmd/ctl";
|
||||
|
||||
vendorHash = "sha256-9Y8u6DVS08liliMNEalX6XQU50qRFy5qZq/9EvRSBRQ=";
|
||||
vendorHash = "sha256-HHlZkxXEJIP3u2rB4+B8Z9vcGwzRT5dtjf5Hu1WVroI=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "glooctl";
|
||||
version = "1.16.3";
|
||||
version = "1.16.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "solo-io";
|
||||
repo = "gloo";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-BGyaYINFFCqEH+UH8XqKom+2eUhgPRF3cMp9fq3whpI=";
|
||||
hash = "sha256-gLm9PEcNg/YeAjT97W9jDOi4ECBrmp2ZAuUTkhZNxyw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-GTd38gSlCKTjfLkAW/Tz22oQJ4FhZB+9vpN/8q4JSCo=";
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "k8sgpt";
|
||||
version = "0.3.26";
|
||||
version = "0.3.27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "k8sgpt-ai";
|
||||
repo = "k8sgpt";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-FUYtBoJAnY8WRh0eABniOgg781UooG67RKTHp1u3SiQ=";
|
||||
hash = "sha256-HWcEcufn0NM+7AF4/M29bsUoQYlVA1nbrkCKt9F1g6k=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-sd4QIQQpDyPV4pqk9VJBApzRzjwxMFieCOQQjJzFXHc=";
|
||||
vendorHash = "sha256-b8Y95BDOR5HI6QMU4XLn5FmSHFD9fntc80r84KgmkuY=";
|
||||
|
||||
CGO_ENABLED = 0;
|
||||
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "k9s";
|
||||
version = "0.31.8";
|
||||
version = "0.31.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "derailed";
|
||||
repo = "k9s";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-sZtMeFoi3UJO5uV4zOez1TbpBCtfclGhZTrYGZ/+Mio=";
|
||||
hash = "sha256-yPSAHqnGdLW2a2TCR7HPl8e5WlG+ruHwITATtivtBnw=";
|
||||
};
|
||||
|
||||
ldflags = [
|
||||
@ -23,7 +23,7 @@ buildGoModule rec {
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
vendorHash = "sha256-0Tq74BtSk5mp0eZjTevvDFWnEc5tnSwO7ZckcJXd/Yo=";
|
||||
vendorHash = "sha256-roHFUKH72BSzqZp2qh/Hw7rfTXj9yqpJyB2dozUz+Y8=";
|
||||
|
||||
# TODO investigate why some config tests are failing
|
||||
doCheck = !(stdenv.isDarwin && stdenv.isAarch64);
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
(callPackage ./generic.nix { }) {
|
||||
channel = "edge";
|
||||
version = "24.2.2";
|
||||
sha256 = "1q6lgmasqa9z7hi0ajcjwj24wrqs74v9vy247hq40y5naaqj07j8";
|
||||
vendorHash = "sha256-ImICopQkBLvSyy/KPmnd4JYeVIPlbzIUFAY4g2iqICI=";
|
||||
version = "24.2.3";
|
||||
sha256 = "0l1sa8xzqddvyzlzddcb9nbvxlj06dm5l6fb0f6fw9ay0d8qm22k";
|
||||
vendorHash = "sha256-g1e1uY43fUC2srKK9erVFlJDSwWrEvq4ni0PgeCFaOg=";
|
||||
}
|
||||
|
@ -10,13 +10,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "nerdctl";
|
||||
version = "1.7.3";
|
||||
version = "1.7.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containerd";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Y76H/88/esziIermnzfOS48FLBRnVBN8u4C381n184M=";
|
||||
hash = "sha256-d90xwrMtDK5ibRHIeV6nzv5jqJfaQXpU9xKTH49yiX4=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-oiBgZQtqFwq189h/Bb4CrFhs4RDYUoEEOjrccujGclU=";
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "rke";
|
||||
version = "1.5.3";
|
||||
version = "1.5.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rancher";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-p1hkiXHwh8Vo2LIP1BeE5XSc/gKjn9XN30usGwCVj7w=";
|
||||
hash = "sha256-TPgXjM7RyjI8NmfiZHkHF3txfzAwjOg7kGODBj37JEI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-eH4FBfX9LNb1UgSRsYSd1Fn2Ju+cL6t64u+/sf9uzNM=";
|
||||
vendorHash = "sha256-0H9K3/BwdSExADFHaYtn2RrHZ6AyEjzlBKYXL/Ow9JA=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
@ -10,16 +10,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "werf";
|
||||
version = "1.2.290";
|
||||
version = "1.2.292";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "werf";
|
||||
repo = "werf";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-pXmFpXpab6YKgujMGqP6xt5iRt/7CrG3wbpBeQ9Ty6c=";
|
||||
hash = "sha256-jBGAd7He2ap7+IF5Og7J6iBoIoLG8KqxSLcPKogJwP8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-yz0H/016NR+CwVbVfXPAIayacPprcf+MKptbG5fHwVY=";
|
||||
vendorHash = "sha256-JaAiQC5QnamzUz1hPSldXtZqhTQIlGFGMYhLJd7t3j4=";
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
|
@ -11,13 +11,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "dayon";
|
||||
version = "13.0.1";
|
||||
version = "13.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RetGal";
|
||||
repo = "dayon";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-nevDC4kfVSgfmJZiCj82mc+/yZcIgub3CP9qi9ISF3o=";
|
||||
hash = "sha256-sKA50D+VYjfKzdZAppIGfU5uJqrCrZPEsk9EEMBxu3I=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -13,11 +13,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "appflowy";
|
||||
version = "0.4.6";
|
||||
version = "0.4.9";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/AppFlowy-IO/appflowy/releases/download/${version}/AppFlowy-${version}-linux-x86_64.tar.gz";
|
||||
hash = "sha256-496uXlJ/3ID8fnW/LKwk0Waca4gSQBuKIFMJ4EJGcsA=";
|
||||
hash = "sha256-+Olmp2z5cLDgZikY2n9LI2A9W03pYdCtUE9hdr9Tp2Q=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
|
@ -44,6 +44,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
description = "A free, open-source tool for programming your amateur radio";
|
||||
homepage = "https://chirp.danplanet.com/";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = [ maintainers.emantor ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -8,13 +8,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "cloudlog";
|
||||
version = "2.6.3";
|
||||
version = "2.6.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "magicbug";
|
||||
repo = "Cloudlog";
|
||||
rev = version;
|
||||
hash = "sha256-axulZxMSgpBtF2cUCUWiVdiEOAalvo6RNtG4xpEmC7o=";
|
||||
hash = "sha256-5QY3llgI2wUp7xQssLMgU5CDx42rNLm77/vNnPv15r4=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -3,16 +3,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "elan";
|
||||
version = "3.0.0";
|
||||
version = "3.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "leanprover";
|
||||
repo = "elan";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-VrCEwAoWKhb1qfJUv3OreTzuKEVQADwZpEQIVEhjwHA=";
|
||||
hash = "sha256-IC/xb4tZer2cbwIusdCwXxJS3K7kN/XFoU4mxKW4dVc=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-SMKFSu5C5mc3U266hEa6RB3GH5te3jIrUZAzj3YNa2E=";
|
||||
cargoHash = "sha256-F80iiXb0UpV+N9q7Msef6/Uzas1DGjMKPWuOKrk8tqU=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config makeWrapper ];
|
||||
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "clingo";
|
||||
version = "5.7.0";
|
||||
version = "5.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "potassco";
|
||||
repo = "clingo";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-mXexFRPC/+5mNRVZqzsLJKiRkKA009OQrEhOAg8M38k=";
|
||||
sha256 = "sha256-S0JAfMwg49aryKABbC/2oLCEkndVpMVcFE6X0vkbtNc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
@ -1,30 +1,21 @@
|
||||
{ lib
|
||||
, python3
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, wrapQtAppsHook
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "sasview";
|
||||
version = "5.0.4";
|
||||
version = "5.0.6";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SasView";
|
||||
repo = "sasview";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-TjcchqA6GCvkr59ZgDuGglan2RxLp+aMjJk28XhvoiY=";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-cwP9VuvO4GPlbAxCqw31xISTi9NoF5RoBQmjWusrnzc=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix `asscalar` numpy API removal.
|
||||
# See https://github.com/SasView/sasview/pull/2178
|
||||
(fetchpatch {
|
||||
url = "https://github.com/SasView/sasview/commit/b1ab08c2a4e8fdade7f3e4cfecf3dfec38b8f3c5.patch";
|
||||
hash = "sha256-IH8g4XPziVAnkmBdzLH1ii8vN6kyCmOgrQlH2HEbm5o=";
|
||||
})
|
||||
];
|
||||
|
||||
# AttributeError: module 'numpy' has no attribute 'float'.
|
||||
postPatch = ''
|
||||
substituteInPlace src/sas/sascalc/pr/p_invertor.py \
|
||||
@ -33,6 +24,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3.pkgs.pyqt5
|
||||
python3.pkgs.setuptools
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
@ -66,12 +58,21 @@ python3.pkgs.buildPythonApplication rec {
|
||||
unittest-xml-reporting
|
||||
];
|
||||
|
||||
pytestFlagsArray = [ "test" ];
|
||||
pytestFlagsArray = [
|
||||
"test"
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# NoKnownLoaderException
|
||||
"test_invalid_cansas"
|
||||
"test_data_reader_exception"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.sasview.org";
|
||||
description = "Fitting and data analysis for small angle scattering data";
|
||||
maintainers = with maintainers; [ rprospero ];
|
||||
homepage = "https://www.sasview.org";
|
||||
changelog = "https://github.com/SasView/sasview/releases/tag/v${version}";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ rprospero ];
|
||||
};
|
||||
}
|
||||
|
@ -6,14 +6,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "snakemake";
|
||||
version = "8.4.4";
|
||||
version = "8.4.8";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "snakemake";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-d3pUVhn9oi1ILDR4sfRh6HypbDn2JZMha27h0twixPc=";
|
||||
hash = "sha256-iF5+slcPTRK/3SmqR+4KK5KAK5LhKAe+nt+U/B5C3/8=";
|
||||
# https://github.com/python-versioneer/python-versioneer/issues/217
|
||||
postFetch = ''
|
||||
sed -i "$out"/snakemake/_version.py -e 's#git_refnames = ".*"#git_refnames = " (tag: v${version})"#'
|
||||
|
@ -0,0 +1,48 @@
|
||||
From 9a0102fe1da038ebe08107ead991964df11b0271 Mon Sep 17 00:00:00 2001
|
||||
From: annalee <150648636+a-n-n-a-l-e-e@users.noreply.github.com>
|
||||
Date: Mon, 19 Feb 2024 03:31:20 +0000
|
||||
Subject: [PATCH] no qtgui darwin bundle
|
||||
|
||||
---
|
||||
qtgui/recoll.pro.in | 11 +++++++++--
|
||||
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/qtgui/recoll.pro.in b/qtgui/recoll.pro.in
|
||||
index a0ef314..6dbc3b5 100644
|
||||
--- a/qtgui/recoll.pro.in
|
||||
+++ b/qtgui/recoll.pro.in
|
||||
@@ -180,7 +180,7 @@ windows {
|
||||
}
|
||||
}
|
||||
|
||||
-macx: {
|
||||
+if (false) {
|
||||
QCBUILDLOC=Qt_6_4_2_for_macOS
|
||||
|
||||
# QT += webkit webkitwidgets
|
||||
@@ -375,7 +375,7 @@ macx: {
|
||||
QMAKE_BUNDLE_DATA = APP_EXAMPLES APP_EXAMPLES_MAC APP_FILTERS APP_IMAGES APP_DOC
|
||||
}
|
||||
|
||||
-unix:!macx {
|
||||
+unix {
|
||||
|
||||
VPATH = @srcdir@
|
||||
|
||||
@@ -400,6 +400,13 @@ VPATH = @srcdir@
|
||||
SOURCES += crontool.cpp \
|
||||
rtitool.cpp
|
||||
|
||||
+ macx {
|
||||
+ SOURCES += ../utils/closefrom.cpp \
|
||||
+ ../utils/execmd.cpp \
|
||||
+ ../utils/netcon.cpp \
|
||||
+ ../utils/rclionice.cpp
|
||||
+ }
|
||||
+
|
||||
FORMS += crontool.ui \
|
||||
rtitool.ui
|
||||
|
||||
--
|
||||
2.43.0
|
||||
|
@ -105,6 +105,8 @@ mkDerivation rec {
|
||||
patches = [
|
||||
# fix "No/bad main configuration file" error
|
||||
./fix-datadir.patch
|
||||
# use the same configure based build for darwin as linux
|
||||
./0001-no-qtgui-darwin-bundle.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -135,6 +137,10 @@ mkDerivation rec {
|
||||
libiconv
|
||||
];
|
||||
|
||||
qtWrapperArgs = [
|
||||
"--prefix PATH : ${filterPath}"
|
||||
];
|
||||
|
||||
# the filters search through ${PATH} using a sh proc 'checkcmds' for the
|
||||
# filtering utils. Short circuit this by replacing the filtering command with
|
||||
# the absolute path to the filtering command.
|
||||
@ -150,8 +156,6 @@ mkDerivation rec {
|
||||
substituteInPlace $f --replace /usr/bin/perl ${lib.getBin (perl.passthru.withPackages (p: [ p.ImageExifTool ]))}/bin/perl
|
||||
fi
|
||||
done
|
||||
wrapProgram $out/bin/recoll --prefix PATH : "${filterPath}"
|
||||
wrapProgram $out/bin/recollindex --prefix PATH : "${filterPath}"
|
||||
wrapProgram $out/share/recoll/filters/rclaudio.py \
|
||||
--prefix PYTHONPATH : $PYTHONPATH
|
||||
wrapProgram $out/share/recoll/filters/rclimg \
|
||||
@ -163,6 +167,11 @@ mkDerivation rec {
|
||||
mv $out/bin/recoll.app $out/Applications
|
||||
'';
|
||||
|
||||
# create symlink after fixup to prevent double wrapping of recoll
|
||||
postFixup = lib.optionalString (stdenv.isDarwin && withGui) ''
|
||||
ln -s ../Applications/recoll.app/Contents/MacOS/recoll $out/bin/recoll
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "commitizen";
|
||||
version = "3.14.1";
|
||||
version = "3.15.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = python3.pythonOlder "3.8";
|
||||
@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
owner = "commitizen-tools";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-yRcc87V4XJuTyrngQgPGJozk+hd7SRHERLvsQ/yZKYQ=";
|
||||
hash = "sha256-WXsEkJRis9L9heHj6SkTFFTuGmnDXPMKfr7rYy8vzcI=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [
|
||||
|
@ -18,13 +18,13 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "meld";
|
||||
version = "3.22.0";
|
||||
version = "3.22.1";
|
||||
|
||||
format = "other";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-P8EHyY7251NY/9Kw0UyF3bSP4UoR6TmpQyL6qo6QxA0=";
|
||||
sha256 = "sha256-bdO9MtvUNBq6djD7lTd393x3aB7qIjazZB1iKo+QaDY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -18,15 +18,15 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "stgit";
|
||||
version = "2.4.4";
|
||||
version = "2.4.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stacked-git";
|
||||
repo = "stgit";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-KyyvTyPJ4LJ/H2rqutPlswrjINR+V8mJNi6iq8Om1j0=";
|
||||
hash = "sha256-zESuJJ68CCTGSDwGBeguAV78KETp+FUKnNNJx+4zorw=";
|
||||
};
|
||||
cargoHash = "sha256-Vlv2NRB4iggG3aCZwNZWhl7KfmYxryG2joY0jnBFhZ0=";
|
||||
cargoHash = "sha256-ITR6RREx55q3hxYrHj+fOv0C8fAzphR4q/A5tTd9CDg=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config installShellFiles makeWrapper asciidoc xmlto docbook_xsl
|
||||
|
40
pkgs/applications/video/qctools/default.nix
Normal file
40
pkgs/applications/video/qctools/default.nix
Normal file
@ -0,0 +1,40 @@
|
||||
{ lib, stdenv, fetchurl, qmake, wrapQtAppsHook, ffmpeg, qtmultimedia, qwt }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "qctools";
|
||||
version = "1.3.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://mediaarea.net/download/source/${pname}/${version}/${pname}_${version}.tar.xz";
|
||||
hash = "sha256-ClF8KiVjV2JTCjz/ueioojhiHZf8UW9WONaJrIx4Npo=";
|
||||
};
|
||||
|
||||
sourceRoot = "${pname}/Project/QtCreator";
|
||||
|
||||
nativeBuildInputs = [ qmake wrapQtAppsHook ];
|
||||
|
||||
buildInputs = [ ffmpeg qtmultimedia qwt ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -Dt $out/bin qctools-cli/qcli qctools-gui/QCTools
|
||||
cd ../GNU/GUI
|
||||
install -Dm644 qctools.desktop $out/share/applications/qctools.desktop
|
||||
install -Dm644 qctools.metainfo.xml $out/share/metainfo/qctools.metainfo.xml
|
||||
cd ../../../Source/Resource
|
||||
install -Dm 0644 Logo.png $out/share/icons/hicolor/256x256/apps/qctools.png
|
||||
install -Dm 0644 Logo.png $out/share/pixmaps/qctools.png
|
||||
cd ../../Project/QtCreator
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Audiovisual analytics and filtering of video files";
|
||||
homepage = "https://mediaarea.net/QCTools";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ orivej ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -39,13 +39,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "crun";
|
||||
version = "1.14.1";
|
||||
version = "1.14.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-IEfHww+kAPKcTe5bWM+YuDe6PHlSdZQVEunlBMQ29Ic=";
|
||||
hash = "sha256-D2OuTbWAISEtrKy7LFVJz8FZWdXSn1ZiKYak9cJVceU=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
, proot
|
||||
, fakeNss
|
||||
, fakeroot
|
||||
, file
|
||||
, go
|
||||
, jq
|
||||
, jshon
|
||||
@ -34,6 +35,7 @@
|
||||
, writeText
|
||||
, writeTextDir
|
||||
, writePython3
|
||||
, zstd
|
||||
}:
|
||||
|
||||
let
|
||||
@ -76,6 +78,30 @@ let
|
||||
# mapping from the go package.
|
||||
defaultArchitecture = go.GOARCH;
|
||||
|
||||
compressors = {
|
||||
none = {
|
||||
ext = "";
|
||||
nativeInputs = [ ];
|
||||
compress = "cat";
|
||||
decompress = "cat";
|
||||
};
|
||||
gz = {
|
||||
ext = ".gz";
|
||||
nativeInputs = [ pigz ];
|
||||
compress = "pigz -p$NIX_BUILD_CORES -nTR";
|
||||
decompress = "pigz -d -p$NIX_BUILD_CORES";
|
||||
};
|
||||
zstd = {
|
||||
ext = ".zst";
|
||||
nativeInputs = [ zstd ];
|
||||
compress = "zstd -T$NIX_BUILD_CORES";
|
||||
decompress = "zstd -d -T$NIX_BUILD_CORES";
|
||||
};
|
||||
};
|
||||
|
||||
compressorForImage = compressor: imageName: compressors.${compressor} or
|
||||
(throw "in docker image ${imageName}: compressor must be one of: [${toString builtins.attrNames compressors}]");
|
||||
|
||||
in
|
||||
rec {
|
||||
examples = callPackage ./examples.nix {
|
||||
@ -487,16 +513,17 @@ rec {
|
||||
'';
|
||||
};
|
||||
|
||||
buildLayeredImage = lib.makeOverridable ({ name, ... }@args:
|
||||
buildLayeredImage = lib.makeOverridable ({ name, compressor ? "gz", ... }@args:
|
||||
let
|
||||
stream = streamLayeredImage args;
|
||||
compress = compressorForImage compressor name;
|
||||
in
|
||||
runCommand "${baseNameOf name}.tar.gz"
|
||||
runCommand "${baseNameOf name}.tar${compress.ext}"
|
||||
{
|
||||
inherit (stream) imageName;
|
||||
passthru = { inherit (stream) imageTag; };
|
||||
nativeBuildInputs = [ pigz ];
|
||||
} "${stream} | pigz -nTR > $out"
|
||||
nativeBuildInputs = compress.nativeInputs;
|
||||
} "${stream} | ${compress.compress} > $out"
|
||||
);
|
||||
|
||||
# 1. extract the base image
|
||||
@ -539,6 +566,8 @@ rec {
|
||||
buildVMMemorySize ? 512
|
||||
, # Time of creation of the image.
|
||||
created ? "1970-01-01T00:00:01Z"
|
||||
, # Compressor to use. One of: none, gz, zstd.
|
||||
compressor ? "gz"
|
||||
, # Deprecated.
|
||||
contents ? null
|
||||
,
|
||||
@ -574,6 +603,8 @@ rec {
|
||||
in
|
||||
if created == "now" then impure else pure;
|
||||
|
||||
compress = compressorForImage compressor name;
|
||||
|
||||
layer =
|
||||
if runAsRoot == null
|
||||
then
|
||||
@ -590,9 +621,9 @@ rec {
|
||||
extraCommands;
|
||||
copyToRoot = rootContents;
|
||||
};
|
||||
result = runCommand "docker-image-${baseName}.tar.gz"
|
||||
result = runCommand "docker-image-${baseName}.tar${compress.ext}"
|
||||
{
|
||||
nativeBuildInputs = [ jshon pigz jq moreutils ];
|
||||
nativeBuildInputs = [ jshon jq moreutils ] ++ compress.nativeInputs;
|
||||
# Image name must be lowercase
|
||||
imageName = lib.toLower name;
|
||||
imageTag = lib.optionalString (tag != null) tag;
|
||||
@ -746,7 +777,7 @@ rec {
|
||||
chmod -R a-w image
|
||||
|
||||
echo "Cooking the image..."
|
||||
tar -C image --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" --owner=0 --group=0 --xform s:'^./':: -c . | pigz -nTR > $out
|
||||
tar -C image --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" --owner=0 --group=0 --xform s:'^./':: -c . | ${compress.compress} > $out
|
||||
|
||||
echo "Finished."
|
||||
'';
|
||||
@ -761,16 +792,28 @@ rec {
|
||||
mergeImages = images: runCommand "merge-docker-images"
|
||||
{
|
||||
inherit images;
|
||||
nativeBuildInputs = [ pigz jq ];
|
||||
nativeBuildInputs = [ file jq ]
|
||||
++ compressors.none.nativeInputs
|
||||
++ compressors.gz.nativeInputs
|
||||
++ compressors.zstd.nativeInputs;
|
||||
} ''
|
||||
mkdir image inputs
|
||||
# Extract images
|
||||
repos=()
|
||||
manifests=()
|
||||
last_image_mime="application/gzip"
|
||||
for item in $images; do
|
||||
name=$(basename $item)
|
||||
mkdir inputs/$name
|
||||
tar -I pigz -xf $item -C inputs/$name
|
||||
|
||||
last_image_mime=$(file --mime-type -b $item)
|
||||
case $last_image_mime in
|
||||
"application/x-tar") ${compressors.none.decompress};;
|
||||
"application/zstd") ${compressors.zstd.decompress};;
|
||||
"application/gzip") ${compressors.gz.decompress};;
|
||||
*) echo "error: unexpected layer type $last_image_mime" >&2; exit 1;;
|
||||
esac < $item | tar -xC inputs/$name
|
||||
|
||||
if [ -f inputs/$name/repositories ]; then
|
||||
repos+=(inputs/$name/repositories)
|
||||
fi
|
||||
@ -787,7 +830,14 @@ rec {
|
||||
mv repositories image/repositories
|
||||
mv manifest.json image/manifest.json
|
||||
# Create tarball and gzip
|
||||
tar -C image --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" --owner=0 --group=0 --xform s:'^./':: -c . | pigz -nTR > $out
|
||||
tar -C image --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" --owner=0 --group=0 --xform s:'^./':: -c . | (
|
||||
case $last_image_mime in
|
||||
"application/x-tar") ${compressors.none.compress};;
|
||||
"application/zstd") ${compressors.zstd.compress};;
|
||||
"application/gzip") ${compressors.gz.compress};;
|
||||
# `*)` not needed; already checked.
|
||||
esac
|
||||
) > $out
|
||||
'';
|
||||
|
||||
|
||||
@ -1239,14 +1289,15 @@ rec {
|
||||
};
|
||||
|
||||
# Wrapper around streamNixShellImage to build an image from the result
|
||||
buildNixShellImage = { drv, ... }@args:
|
||||
buildNixShellImage = { drv, compressor ? "gz", ... }@args:
|
||||
let
|
||||
stream = streamNixShellImage args;
|
||||
compress = compressorForImage compressor drv.name;
|
||||
in
|
||||
runCommand "${drv.name}-env.tar.gz"
|
||||
runCommand "${drv.name}-env.tar${compress.ext}"
|
||||
{
|
||||
inherit (stream) imageName;
|
||||
passthru = { inherit (stream) imageTag; };
|
||||
nativeBuildInputs = [ pigz ];
|
||||
} "${stream} | pigz -nTR > $out";
|
||||
nativeBuildInputs = compress.nativeInputs;
|
||||
} "${stream} | ${compress.compress} > $out";
|
||||
}
|
||||
|
@ -480,6 +480,22 @@ rec {
|
||||
layerC = layerOnTopOf layerB "c";
|
||||
in layerC;
|
||||
|
||||
bashUncompressed = pkgs.dockerTools.buildImage {
|
||||
name = "bash-uncompressed";
|
||||
tag = "latest";
|
||||
compressor = "none";
|
||||
# Not recommended. Use `buildEnv` between copy and packages to avoid file duplication.
|
||||
copyToRoot = pkgs.bashInteractive;
|
||||
};
|
||||
|
||||
bashZstdCompressed = pkgs.dockerTools.buildImage {
|
||||
name = "bash-zstd";
|
||||
tag = "latest";
|
||||
compressor = "zstd";
|
||||
# Not recommended. Use `buildEnv` between copy and packages to avoid file duplication.
|
||||
copyToRoot = pkgs.bashInteractive;
|
||||
};
|
||||
|
||||
# buildImage without explicit tag
|
||||
bashNoTag = pkgs.dockerTools.buildImage {
|
||||
name = "bash-no-tag";
|
||||
@ -614,6 +630,12 @@ rec {
|
||||
layeredImageWithFakeRootCommands
|
||||
];
|
||||
|
||||
mergeVaryingCompressor = pkgs.dockerTools.mergeImages [
|
||||
redis
|
||||
bashUncompressed
|
||||
bashZstdCompressed
|
||||
];
|
||||
|
||||
helloOnRoot = pkgs.dockerTools.streamLayeredImage {
|
||||
name = "hello";
|
||||
tag = "latest";
|
||||
|
@ -5,13 +5,13 @@
|
||||
}:
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "arxiv-latex-cleaner";
|
||||
version = "1.0.3";
|
||||
version = "1.0.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "google-research";
|
||||
repo = "arxiv-latex-cleaner";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-kM1eCzXipJ6GuYFA9Na2C0HtwHLotmE63nyUZ+9wkkk=";
|
||||
hash = "sha256-Dr0GyivoPjQwVYzvN1JIWhuLz60TQtz4MBB8n1hm6Lo=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
|
@ -11,11 +11,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "bmake";
|
||||
version = "20240108";
|
||||
version = "20240212";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.crufty.net/ftp/pub/sjg/bmake-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-N3JXiCBhbpmZFvTFHb0kFbBvcoH2jMzMXh047SOOMQc=";
|
||||
hash = "sha256-lx1aNkA1NJ6YTYLCpI1Uagxz5S87jyqimjvj0kCP+qg=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -6,16 +6,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-swift";
|
||||
version = "0.6.0";
|
||||
version = "0.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "antoniusnaumann";
|
||||
repo = "cargo-swift";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ATpEo7s/qatK7hsbNo9tE97yMpymA1xmf879WrgUluM=";
|
||||
hash = "sha256-hTlgIPXXdhxFtK/acXITwitIg1DGgF4cCVaAxogWPrk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-hKTvtPulltsxi0PX8Xmo9MYcQYuTdOOspfgLCaEKQL4=";
|
||||
cargoHash = "sha256-6F4CX9uiCfPbgFRZ0hC/s5xT42S2V5ZgGQ+O2bHb9vg=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A cargo plugin to easily build Swift packages from Rust code";
|
||||
|
39
pkgs/by-name/co/construct/package.nix
Normal file
39
pkgs/by-name/co/construct/package.nix
Normal file
@ -0,0 +1,39 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "construct";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Thomas-de-Bock";
|
||||
repo = "construct";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-ENso0y7yEaXzGXzZOnlZ1L7+j/qayJL+f55/NYLz2ew=";
|
||||
};
|
||||
|
||||
postPatch = lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace Makefile \
|
||||
--replace g++ c++
|
||||
'';
|
||||
|
||||
makeTarget = "main";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -Dm755 bin/construct -t $out/bin
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Construct is an abstraction over x86 NASM Assembly";
|
||||
longDescription = "Construct adds features such as while loops, if statements, scoped macros and function-call syntax to NASM Assembly.";
|
||||
homepage = "https://github.com/Thomas-de-Bock/construct";
|
||||
maintainers = with maintainers; [ rucadi ];
|
||||
platforms = platforms.all;
|
||||
license = licenses.mit;
|
||||
mainProgram = "construct";
|
||||
};
|
||||
})
|
@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "crossplane-cli";
|
||||
version = "1.14.5";
|
||||
version = "1.15.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "crossplane";
|
||||
repo = "crossplane";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-P7zfkrE+r/pQEEu0GK7v+bJ4ONeejZLXq2sYmU/V110=";
|
||||
hash = "sha256-VwnKTeCfCgKlgh+6QO2J4r1ImAq0zlxFFdhTtC95bs0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-vkXvnEstD/czBDxmI96TIQB/L4jxhMwIS1XpHqVtxqY=";
|
||||
vendorHash = "sha256-+e3NuSCvUgZANDB9LsvlQn3h9+L1NeQeURKDZd21reo=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "decker";
|
||||
version = "1.32";
|
||||
version = "1.39";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JohnEarnest";
|
||||
repo = "Decker";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ch/Lit9qA6XEkPJdcQ03+r0asOKMwy0jRJMHG9VMEig=";
|
||||
hash = "sha256-77x+LT+oTDtK4jszL3A9MAv9Hakovz47yFaiu8kFtTg=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
31
pkgs/by-name/do/dotslash/package.nix
Normal file
31
pkgs/by-name/do/dotslash/package.nix
Normal file
@ -0,0 +1,31 @@
|
||||
{ lib, rustPlatform, fetchCrate }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "dotslash";
|
||||
version = "0.2.0";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
hash = "sha256-4y4GH+YR6QpZj7gYycJcm7K5tE7dCvYm3UQuCKF3cfQ=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-L/ahRDLVOWsg7mHWlLYqP/+6zS9JwXGQXn66UsIIARk=";
|
||||
doCheck = false; # http tests
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://dotslash-cli.com";
|
||||
description = "Simplified multi-platform executable deployment";
|
||||
longDescription = ''
|
||||
DotSlash is a command-line tool that is designed to facilitate fetching an
|
||||
executable, verifying it, and then running it. It maintains a local cache
|
||||
of fetched executables so that subsequent invocations are fast.
|
||||
|
||||
DotSlash helps keeps heavyweight binaries out of your repo while ensuring
|
||||
your developers seamlessly get the tools they need, ensuring consistent
|
||||
builds across platforms.
|
||||
'';
|
||||
license = with licenses; [ asl20 /* or */ mit ];
|
||||
mainProgram = "dotslash";
|
||||
maintainers = with maintainers; [ thoughtpolice ];
|
||||
};
|
||||
}
|
@ -6,13 +6,13 @@
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "eigenlayer";
|
||||
version = "0.6.1";
|
||||
version = "0.6.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Layr-Labs";
|
||||
repo = "eigenlayer-cli";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-PN1VB01NyBrDNIDpUIQlzhdwKoy17X1GdfQfRrN3bWo=";
|
||||
hash = "sha256-cr3ltNmJj8GoQLADivekLU2hV7xWk4KR2Gej0rcaVTA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-VcXjYiJ9nwSCQJvQd7UYduZKJISRfoEXjziiX6Z3w6Q=";
|
||||
|
@ -10,7 +10,7 @@ buildDotnetGlobalTool {
|
||||
description = "F# source code formatter";
|
||||
homepage = "https://github.com/fsprojects/fantomas";
|
||||
license = licenses.asl20;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [ mikaelfangel ];
|
||||
mainProgram = "fantomas";
|
||||
};
|
||||
|
@ -1,16 +0,0 @@
|
||||
diff --git a/libcurl/curl_wrap.cpp b/libcurl/curl_wrap.cpp
|
||||
index 11ac9dd..93edd44 100644
|
||||
--- a/libcurl/curl_wrap.cpp
|
||||
+++ b/libcurl/curl_wrap.cpp
|
||||
@@ -401,9 +401,10 @@ std::wstring zen::formatCurlStatusCode(CURLcode sc)
|
||||
ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_PROXY);
|
||||
ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_CLIENTCERT);
|
||||
ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_UNRECOVERABLE_POLL);
|
||||
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TOO_LARGE);
|
||||
ZEN_CHECK_CASE_FOR_CONSTANT(CURL_LAST);
|
||||
}
|
||||
- static_assert(CURL_LAST == CURLE_UNRECOVERABLE_POLL + 1);
|
||||
+ static_assert(CURL_LAST == CURLE_TOO_LARGE + 1);
|
||||
|
||||
return replaceCpy<std::wstring>(L"Curl status %x", L"%x", numberTo<std::wstring>(static_cast<int>(sc)));
|
||||
}
|
@ -18,7 +18,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "freefilesync";
|
||||
version = "13.3";
|
||||
version = "13.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://freefilesync.org/download/FreeFileSync_${finalAttrs.version}_Source.zip";
|
||||
@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
rm -f $out
|
||||
tryDownload "$url"
|
||||
'';
|
||||
hash = "sha256-mpCCecG1teBjIJqCzB3pGAQKT6t8bMKbK8KihMXOn3g=";
|
||||
hash = "sha256-0c4HYlah9aHsMMyCz/TjgA59pTce4hogz5n6Xf9Myho=";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
@ -56,14 +56,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
patch = "Disable_wxWidgets_uncaught_exception_handling.patch";
|
||||
hash = "sha256-Fem7eDDKSqPFU/t12Jco8OmYC8FM9JgB4/QVy/ouvbI=";
|
||||
})
|
||||
# Fix gui freeze
|
||||
(fetchDebianPatch {
|
||||
pname = "freefilesync";
|
||||
version = "13.3";
|
||||
debianRevision = "1";
|
||||
patch = "revert_buggy_gtk3_change_in_12.1.patch";
|
||||
hash = "sha256-eqush3zXxypQUxtO5110GoOJ30F5LZcF8XIC/Y8/fgM=";
|
||||
})
|
||||
# Disable update patch
|
||||
(fetchDebianPatch {
|
||||
pname = "freefilesync";
|
||||
@ -72,8 +64,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
patch = "ffs_no_check_updates.patch";
|
||||
hash = "sha256-lPyHpxhZz8BSnDI8QfAzKpKwVkp2jiF49RWjKNuZGII=";
|
||||
})
|
||||
# Fix build with curl 8.6.0
|
||||
./curl-8.6.0.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchzip
|
||||
, fetchpatch
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@ -12,8 +13,30 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
hash = "sha256-tc5XLToyQZutb51ZoBlGWXDpsSqdJ89bjzJwY8kRncA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# fix some GCC warnings.
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/pkg-security-team/galleta/-/raw/998470d8151b2f3a4bec71ae340c30f252d03a9b/debian/patches/10_fix-gcc-warnings.patch";
|
||||
hash = "sha256-b8VJGSAoSnWteyUbC2Ue3tqkpho7gyn+E/yrN2O3G9c=";
|
||||
})
|
||||
# make Makefile compliant with Debian and add GCC hardening.
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/pkg-security-team/galleta/-/raw/553c237a34995d9f7fc0383ee547d4f5cd004d5b/debian/patches/20_fix-makefile.patch";
|
||||
hash = "sha256-+rnoTrlXtWl9zmZlkvqbJ+YlIXFCpKOqvxIkN8xxtsg=";
|
||||
})
|
||||
# Fix cross compilation.
|
||||
# Galleta fails to cross build from source, because the upstream
|
||||
# Makefile hard codes the build architecture compiler. The patch
|
||||
# makes the compiler substitutable and galleta cross buildable.
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/pkg-security-team/galleta/-/raw/f0f51a5a9e5adc0279f78872461fa57ee90d6842/debian/patches/30-fix-FTBS-cross-compilation.patch";
|
||||
hash = "sha256-ZwymEVJy7KvLFvNOcVZqDtJPxEcpQBVg+u+G+kSDZBo=";
|
||||
})
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"-C src"
|
||||
"CC=cc"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
@ -21,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/bin
|
||||
cp bin/galleta $out/bin
|
||||
cp src/galleta $out/bin
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
|
@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "glauth";
|
||||
version = "2.3.1";
|
||||
version = "2.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "glauth";
|
||||
repo = "glauth";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-OkkiB1AGO7r7ehpnSJ+cB00crVpZ5Cwy4rAT55LUUdE=";
|
||||
hash = "sha256-FOhtL8nIm5kuKRxFtkrDyUU2z1K22ZdHaes3GY0KmfQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-MfauZRufl3kxr1fqatxTmiIvLJ+5JhbpSnbTHiujME8=";
|
||||
|
@ -4,12 +4,12 @@
|
||||
}:
|
||||
appimageTools.wrapType2 rec {
|
||||
pname = "immersed-vr";
|
||||
version = "9.6";
|
||||
version = "9.10";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://web.archive.org/web/20231011083250/https://static.immersed.com/dl/Immersed-x86_64.AppImage";
|
||||
hash = "sha256-iA0SQlPktETFXEqCbSoWV9NaWVahkPa6qO4Cfju0aBQ=";
|
||||
url = "https://web.archive.org/web/20240210075929/https://static.immersed.com/dl/Immersed-x86_64.AppImage";
|
||||
hash = "sha256-Mx8UnV4fZSebj9ah650ZqsL/EIJpM6jl8tYmXJZiJpA=";
|
||||
};
|
||||
|
||||
extraInstallCommands = ''
|
||||
|
@ -7,13 +7,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "jasper";
|
||||
version = "4.1.2";
|
||||
version = "4.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jasper-software";
|
||||
repo = "jasper";
|
||||
rev = "version-${finalAttrs.version}";
|
||||
hash = "sha256-tTgoRLthNLqRO8fDrmGHVCB9QXpmPmTr9uqSFwkIK+s=";
|
||||
hash = "sha256-aDeexQ+JmxRIjYAUH+x/J/Z847JasKWQNYYEpu78sHw=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "doc" "man" ];
|
||||
|
44
pkgs/by-name/ki/killerbee/package.nix
Normal file
44
pkgs/by-name/ki/killerbee/package.nix
Normal file
@ -0,0 +1,44 @@
|
||||
{ lib
|
||||
, fetchFromGitHub
|
||||
, libgcrypt
|
||||
, python3
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "killerbee";
|
||||
version = "3.0.0-beta.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "riverloopsec";
|
||||
repo = "killerbee";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-WM0Z6sd8S71F8FfhhoUq3MSD/2uvRTY/FsBP7VGGtb0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3.pkgs; [
|
||||
setuptools
|
||||
];
|
||||
|
||||
buildInputs = with python3.pkgs; [
|
||||
libgcrypt
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
pyserial
|
||||
pyusb
|
||||
rangeparser
|
||||
scapy
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"killerbee"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "IEEE 802.15.4/ZigBee Security Research Toolkit";
|
||||
homepage = "https://github.com/riverloopsec/killerbee";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
13
pkgs/by-name/op/opensoundmeter/build.patch
Normal file
13
pkgs/by-name/op/opensoundmeter/build.patch
Normal file
@ -0,0 +1,13 @@
|
||||
--- a/OpenSoundMeter.desktop
|
||||
+++ b/OpenSoundMeter.desktop
|
||||
@@ -6 +6 @@
|
||||
-Icon=white
|
||||
+Icon=OpenSoundMeter
|
||||
--- a/OpenSoundMeter.pro
|
||||
+++ b/OpenSoundMeter.pro
|
||||
@@ -261 +261 @@
|
||||
-APP_GIT_VERSION = $$system(git --git-dir $$_PRO_FILE_PWD_/.git --work-tree $$_PRO_FILE_PWD_ describe --tags $$system(git --git-dir $$_PRO_FILE_PWD_/.git --work-tree $$_PRO_FILE_PWD_ rev-list --tags --max-count=1))
|
||||
+APP_GIT_VERSION = ?
|
||||
@@ -486 +486 @@
|
||||
-unix:!macx:!ios:CONFIG(release, debug|release) {
|
||||
+unix:!linux:!macx:!ios:CONFIG(release, debug|release) {
|
45
pkgs/by-name/op/opensoundmeter/package.nix
Normal file
45
pkgs/by-name/op/opensoundmeter/package.nix
Normal file
@ -0,0 +1,45 @@
|
||||
{ lib, stdenv, fetchFromGitHub, alsa-lib, qt5 }:
|
||||
|
||||
let
|
||||
inherit (qt5) qmake wrapQtAppsHook qtgraphicaleffects qtquickcontrols2;
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "opensoundmeter";
|
||||
version = "1.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "psmokotnin";
|
||||
repo = "osm";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-nRibcEtG6UUTgn7PhSg4IyahMYi5aSPvaEOrAdx6u3o=";
|
||||
};
|
||||
|
||||
patches = [ ./build.patch ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace OpenSoundMeter.pro \
|
||||
--replace 'APP_GIT_VERSION = ?' 'APP_GIT_VERSION = ${src.rev}'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ qmake wrapQtAppsHook ];
|
||||
|
||||
buildInputs = [ alsa-lib qtgraphicaleffects qtquickcontrols2 ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install OpenSoundMeter -Dt $out/bin
|
||||
install OpenSoundMeter.desktop -m444 -Dt $out/share/applications
|
||||
install icons/white.png -m444 -D $out/share/icons/OpenSoundMeter.png
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Sound measurement application for tuning audio systems in real-time";
|
||||
homepage = "https://opensoundmeter.com/";
|
||||
license = licenses.gpl3Plus;
|
||||
mainProgram = "OpenSoundMeter";
|
||||
maintainers = with maintainers; [ orivej ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -1,13 +1,13 @@
|
||||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
buildGoModule rec {
|
||||
pname = "pmtiles";
|
||||
version = "1.14.1";
|
||||
version = "1.17.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "protomaps";
|
||||
repo = "go-pmtiles";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-CnREcPXNehxOMZm/cuedkDeWtloc7TGWNmmoFZhSTZE=";
|
||||
hash = "sha256-BHzQMSIE94LW6SGcpaMdX/ztzVLlmWquwWMbruLAt00=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-tSQjCdgEXIGlSWcIB6lLQulAiEAebgW3pXL9Z2ujgIs=";
|
||||
|
52
pkgs/by-name/pt/ptunnel/package.nix
Normal file
52
pkgs/by-name/pt/ptunnel/package.nix
Normal file
@ -0,0 +1,52 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, libpcap
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ptunnel";
|
||||
version = "0.72";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.cs.uit.no/~daniels/PingTunnel/PingTunnel-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-sxj3qn2IkYtiadBUp+JvBPl9iHD0e9Sadsssmcc0B6Q=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# fix hyphen-used-as-minus-sign lintian warning in manpage.
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/alteholz/ptunnel/-/raw/7475a32bc401056aeeb1b99e56b9ae5f1ee9c960/debian/patches/fix_minus_chars_in_man.patch";
|
||||
hash = "sha256-DcMsCZczO+SxOiQuFbdSJn5UH5E4TVf3+vupJ4OurVg=";
|
||||
})
|
||||
# fix typo in README file.
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/alteholz/ptunnel/-/raw/7475a32bc401056aeeb1b99e56b9ae5f1ee9c960/debian/patches/fix_typo.diff";
|
||||
hash = "sha256-9cdOCfr2r9FnTmxJwvoClW5uf27j05zWQLykahKMJQg=";
|
||||
})
|
||||
# reverse parameters to memset.
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/alteholz/ptunnel/-/raw/1dbf9b69507e19c86ac539fd8e3c60fc274717b3/debian/patches/memset-fix.patch";
|
||||
hash = "sha256-dYbuMM0/ZUgi3OxukBIp5rKhlwAjGu7cl/3w3sWr/xU=";
|
||||
})
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"prefix=$(out)"
|
||||
"CC=cc"
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libpcap
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A tool for reliably tunneling TCP connections over ICMP echo request and reply packets";
|
||||
homepage = "https://www.cs.uit.no/~daniels/PingTunnel";
|
||||
license = licenses.bsd3;
|
||||
mainProgram = "ptunnel";
|
||||
maintainers = with maintainers; [ d3vil0p3r ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
})
|
@ -8,16 +8,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "qrtool";
|
||||
version = "0.10.4";
|
||||
version = "0.10.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sorairolake";
|
||||
repo = "qrtool";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-b1dNGEdjmY2RSZ3M7lwWVeookMij2rUsVtevsYYNtw0=";
|
||||
sha256 = "sha256-XYoa5AueI0AYH5Lw7CmzeK9RkNy8WXbAAePAGkcwzWw=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-9Zd4zETDy8iM/rrZI55NOybpa4Sn9AzYsNYmLDzxL+Q=";
|
||||
cargoHash = "sha256-s68OCW2KS1ADTp8rWaUOGXCrl+Qapyf9FcLVhSF4QMg=";
|
||||
|
||||
nativeBuildInputs = [ asciidoctor installShellFiles ];
|
||||
|
||||
|
@ -4,14 +4,14 @@
|
||||
}:
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "rclip";
|
||||
version = "1.7.24";
|
||||
version = "1.7.26";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yurijmikhalevich";
|
||||
repo = "rclip";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-JWtKgvSP7oaPg19vWnnCDfm7P5Uew+v9yuvH7y2eHHM=";
|
||||
hash = "sha256-u+xnrqJXtjElVXlwkCTHztcRl998CwoTEIvaGYzGOLU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3Packages; [
|
||||
|
28
pkgs/by-name/sh/shittier/package.nix
Normal file
28
pkgs/by-name/sh/shittier/package.nix
Normal file
@ -0,0 +1,28 @@
|
||||
{ lib
|
||||
, buildNpmPackage
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "shittier";
|
||||
# No tagged release on GitHub yet
|
||||
# Commit corresponds to release tagged as 0.1.1 on [npm](https://www.npmjs.com/package/shittier)
|
||||
# See issue https://github.com/rohitdhas/shittier/issues/7
|
||||
version = "0-unstable-2023-12-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rohitdhas";
|
||||
repo = "shittier";
|
||||
rev = "c61b443c06dbaa8085a88b16360941cc4ba6baa2";
|
||||
hash = "sha256-qdG1PdIZGWoJI7KgJqM/fayubPbPk+od/SgKfZQADz8=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-oC9eOpoMZLZbyx9XnC4m5zzqORQWP62uRDNVZjyVnBs=";
|
||||
|
||||
meta = {
|
||||
description = "Unconventional code formatting tool for JavaScript";
|
||||
homepage = "https://github.com/rohitdhas/shittier";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ totoroot ];
|
||||
};
|
||||
}
|
@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "updatecli";
|
||||
version = "0.70.0";
|
||||
version = "0.72.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "updatecli";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-MQoi/HvJqGCYzQLNsJul/7N3MXkV1X5d48InUSIWT8o=";
|
||||
hash = "sha256-t+HR/MrhwMQ0tDLoXU+mzI99PUtTLMpvBpGpqZed4q8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-RjyVlj66CbkQlzXkdP6ZWf+cNVjOgoPdskQefv9bNoo=";
|
||||
vendorHash = "sha256-jHH4JHz1z1eW10A3bN0DbvgIXgVICPxUWld9EtjQX/8=";
|
||||
|
||||
# tests require network access
|
||||
doCheck = false;
|
||||
|
3
pkgs/by-name/uv/uv/Cargo.lock
generated
3
pkgs/by-name/uv/uv/Cargo.lock
generated
@ -1237,6 +1237,7 @@ name = "gourgeist"
|
||||
version = "0.0.4"
|
||||
dependencies = [
|
||||
"anstream",
|
||||
"cachedir",
|
||||
"camino",
|
||||
"clap",
|
||||
"directories",
|
||||
@ -4115,7 +4116,7 @@ checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
|
||||
|
||||
[[package]]
|
||||
name = "uv"
|
||||
version = "0.1.4"
|
||||
version = "0.1.5"
|
||||
dependencies = [
|
||||
"anstream",
|
||||
"anyhow",
|
||||
|
@ -15,14 +15,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "uv";
|
||||
version = "0.1.4";
|
||||
version = "0.1.5";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "astral-sh";
|
||||
repo = "uv";
|
||||
rev = version;
|
||||
hash = "sha256-0bG1nReTaNqjHXCeW8gg3AWfXpsm8KulX6jsZQMVLlg=";
|
||||
hash = "sha256-aiTec1uWcLcCA03qki5EE7Yy4Ne2+kXu9YtIVIAyd+o=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.importCargoLock {
|
||||
|
@ -7,13 +7,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "uxn";
|
||||
version = "unstable-2024-02-14";
|
||||
version = "unstable-2024-02-15";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~rabbits";
|
||||
repo = "uxn";
|
||||
rev = "8abb621b12df11f7975ad1485d556ebb8bcb2042";
|
||||
hash = "sha256-R36qrnNpR7cNosPnWxMr5/RMwA3ge/GvYPNCzcOziYk=";
|
||||
rev = "c37d2cd75c855d0932a93cd8fdadd1db00b05e48";
|
||||
hash = "sha256-O8XN0+ixo2xMXtJkEoJAqrKZ1M4s4YoHSxKWGOUyl1k=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "projects" ];
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wiremock";
|
||||
version = "3.3.1";
|
||||
version = "3.4.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://maven/org/wiremock/wiremock-standalone/${version}/wiremock-standalone-${version}.jar";
|
||||
hash = "sha256-VgUJeQJeHNmmX1cS2s5hTljQZ8fIYr9uHYWMXjZjJzY=";
|
||||
hash = "sha256-YD7bx8AAZZ7sj49Vt2dc3berLCmd8/eC6NDBbST0jYc=";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
46
pkgs/by-name/ya/yazi-unwrapped/package.nix
Normal file
46
pkgs/by-name/ya/yazi-unwrapped/package.nix
Normal file
@ -0,0 +1,46 @@
|
||||
{ rustPlatform
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
|
||||
, installShellFiles
|
||||
, stdenv
|
||||
, Foundation
|
||||
|
||||
, nix-update-script
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "yazi";
|
||||
version = "0.2.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sxyazi";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-2AiaJs6xY8hsB1DBxpPwdZtc8IZvsoCGWBOFVMf4dvk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-fRUmXv27sHYz8z0cc795JCPLHDQGgTV4wAWAtQ/pbg4=";
|
||||
|
||||
env.YAZI_GEN_COMPLETIONS = true;
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ Foundation ];
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --cmd yazi \
|
||||
--bash ./yazi-config/completions/yazi.bash \
|
||||
--fish ./yazi-config/completions/yazi.fish \
|
||||
--zsh ./yazi-config/completions/_yazi
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = with lib; {
|
||||
description = "Blazing fast terminal file manager written in Rust, based on async I/O";
|
||||
homepage = "https://github.com/sxyazi/yazi";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ xyenon matthiasbeyer ];
|
||||
mainProgram = "yazi";
|
||||
};
|
||||
}
|
48
pkgs/by-name/ya/yazi/package.nix
Normal file
48
pkgs/by-name/ya/yazi/package.nix
Normal file
@ -0,0 +1,48 @@
|
||||
{ lib
|
||||
, runCommand
|
||||
, makeWrapper
|
||||
, yazi-unwrapped
|
||||
|
||||
, withFile ? true
|
||||
, file
|
||||
, withJq ? true
|
||||
, jq
|
||||
, withPoppler ? true
|
||||
, poppler_utils
|
||||
, withUnar ? true
|
||||
, unar
|
||||
, withFfmpegthumbnailer ? true
|
||||
, ffmpegthumbnailer
|
||||
, withFd ? true
|
||||
, fd
|
||||
, withRipgrep ? true
|
||||
, ripgrep
|
||||
, withFzf ? true
|
||||
, fzf
|
||||
, withZoxide ? true
|
||||
, zoxide
|
||||
}:
|
||||
|
||||
let
|
||||
runtimePaths = with lib; [ ]
|
||||
++ optional withFile file
|
||||
++ optional withJq jq
|
||||
++ optional withPoppler poppler_utils
|
||||
++ optional withUnar unar
|
||||
++ optional withFfmpegthumbnailer ffmpegthumbnailer
|
||||
++ optional withFd fd
|
||||
++ optional withRipgrep ripgrep
|
||||
++ optional withFzf fzf
|
||||
++ optional withZoxide zoxide;
|
||||
in
|
||||
runCommand yazi-unwrapped.name
|
||||
{
|
||||
inherit (yazi-unwrapped) pname version meta;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
} ''
|
||||
mkdir -p $out/bin
|
||||
ln -s ${yazi-unwrapped}/share $out/share
|
||||
makeWrapper ${yazi-unwrapped}/bin/yazi $out/bin/yazi \
|
||||
--prefix PATH : "${lib.makeBinPath runtimePaths}"
|
||||
''
|
63
pkgs/by-name/ys/ysfx/package.nix
Normal file
63
pkgs/by-name/ys/ysfx/package.nix
Normal file
@ -0,0 +1,63 @@
|
||||
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config
|
||||
, freetype, juce, libX11, libXcursor, libXext, libXinerama, libXrandr, libglvnd
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ysfx";
|
||||
version = "0-unstable-2022-07-31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jpcima";
|
||||
repo = "ysfx";
|
||||
rev = "8077347ccf4115567aed81400281dca57acbb0cc";
|
||||
hash = "sha256-pObuOb/PA9WkKB2FdMDCOd9TKmML+Sj2MybLP0YwT+8=";
|
||||
};
|
||||
|
||||
# Provide latest dr_libs.
|
||||
dr_libs = fetchFromGitHub {
|
||||
owner = "mackron";
|
||||
repo = "dr_libs";
|
||||
rev = "e4a7765e598e9e54dc0f520b7e4416359bee80cc";
|
||||
hash = "sha256-rWabyCP47vd+EfibBWy6iQY/nFN/OXPNhkuOTSboJaU=";
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
rmdir thirdparty/dr_libs
|
||||
ln -s ${dr_libs} thirdparty/dr_libs
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
freetype
|
||||
juce
|
||||
libX11
|
||||
libXcursor
|
||||
libXext
|
||||
libXinerama
|
||||
libXrandr
|
||||
libglvnd
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DYSFX_PLUGIN_COPY=OFF"
|
||||
"-DYSFX_PLUGIN_USE_SYSTEM_JUCE=ON"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/lib
|
||||
cp -r ysfx_plugin_artefacts/Release/VST3 $out/lib/vst3
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Hosting library for JSFX";
|
||||
homepage = "https://github.com/jpcima/ysfx";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ orivej ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -121,10 +121,14 @@ stdenvNoCC.mkDerivation rec {
|
||||
mv -v $out/share/themes/Nordic/kde/colorschemes/* $out/share/color-schemes/
|
||||
mv -v $out/share/themes/Nordic/kde/konsole $out/share/
|
||||
mv -v $out/share/themes/Nordic/kde/kvantum/* $out/share/Kvantum/
|
||||
mv -v $out/share/themes/Nordic/kde/plasma/look-and-feel $out/share/plasma/
|
||||
cp -vr $out/share/themes/Nordic/kde/plasma/look-and-feel $out/share/plasma/look-and-feel/
|
||||
mv -v $out/share/themes/Nordic/kde/plasma/look-and-feel $out/share/plasma/desktoptheme/
|
||||
mv -v $out/share/themes/Nordic/kde/folders/* $out/share/icons/
|
||||
mv -v $out/share/themes/Nordic/kde/cursors/*-cursors $out/share/icons/
|
||||
|
||||
rm -rf $out/share/plasma/look-and-feel/*/contents/{logout,osd,components}
|
||||
rm -rf $out/share/plasma/desktoptheme/*/contents/{{defaults,splash,previews}
|
||||
|
||||
mkdir -p $sddm/share/sddm/themes
|
||||
mv -v $out/share/themes/Nordic/kde/sddm/* $sddm/share/sddm/themes/
|
||||
|
||||
|
@ -5,18 +5,18 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "expr";
|
||||
version = "1.16.0";
|
||||
version = "1.16.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "antonmedv";
|
||||
repo = "expr";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-GLh4NayAbqGXI0Ekkk3lXCRwpLwGLbJIo7WjDfpKDhI=";
|
||||
hash = "sha256-OwxBzsIkKauaYTdDpgSEdVL4JhacMnIvBTgxvkAm9YA=";
|
||||
};
|
||||
|
||||
sourceRoot = "${src.name}/repl";
|
||||
|
||||
vendorHash = "sha256-42kFO7kXIdqVrp2FQGELZ90OUobOp4zbdo533vresIw=";
|
||||
vendorHash = "sha256-RE6qQmAlWuXFIMzkop/Dk7DqATUnQpJ8Z+U8ZZeUvOA=";
|
||||
|
||||
ldflags = [ "-s" "-w" ];
|
||||
|
||||
|
@ -79,13 +79,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gdal";
|
||||
version = "3.8.3";
|
||||
version = "3.8.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OSGeo";
|
||||
repo = "gdal";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-GYBGGZ2bobVYElO0WJrsQzLMdNR5AfQwgdjBtPeGH1g=";
|
||||
hash = "sha256-R9VLof13OXPbWGHOG1Q4WZWSPoF739C6WuNWxoIwKTw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -22,8 +22,8 @@ stdenv.mkDerivation {
|
||||
src = fetchFromGitHub {
|
||||
owner = "libfive";
|
||||
repo = "libfive";
|
||||
rev = "c85ffe1ba1570c2551434c5bad731884aaf80598";
|
||||
hash = "sha256-OITy3fJx+Z6856V3D/KpSQRJztvOdJdqUv1c65wNgCc=";
|
||||
rev = "7af5f43684a8a497ac8610d39f7fca935364a9b9";
|
||||
hash = "sha256-GQzsHKeKsCWKOVfBrTuUFq2XasPxhsN+19stWY0WtVc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ wrapQtAppsHook cmake ninja pkg-config python.pkgs.pythonImportsCheckHook ];
|
||||
|
@ -19,13 +19,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libmanette";
|
||||
version = "0.2.6";
|
||||
version = "0.2.7";
|
||||
|
||||
outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "1b3bcdkk5xd5asq797cch9id8692grsjxrc1ss87vv11m1ck4rb3";
|
||||
hash = "sha256-zd1cAqExBywZxs3m8sss1X6ufay1DRTDN+/ZgLqlGlE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -11,13 +11,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "librime";
|
||||
version = "1.9.0";
|
||||
version = "1.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-4gEdltdm9A3FxwyZqgSyUWgQ934glinfKwHF8S05f5I=";
|
||||
sha256 = "sha256-tflWBfH1+1AFvkq0A6mgsKl+jq6m5c83GA56LWxdnlw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, cmake
|
||||
, gtest
|
||||
, pkg-config
|
||||
@ -23,6 +24,15 @@ stdenv.mkDerivation rec {
|
||||
# error: unsafe buffer access
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-unsafe-buffer-usage";
|
||||
|
||||
patches = [
|
||||
# nvcc doesn't recognize the "gsl" attribute namespace (microsoft/onnxruntime#13573)
|
||||
# only affects nvcc
|
||||
(fetchpatch {
|
||||
url = "https://raw.githubusercontent.com/microsoft/onnxruntime/4bfa69def85476b33ccfaf68cf070f3fb65d39f7/cmake/patches/gsl/1064.patch";
|
||||
hash = "sha256-0jESA+VENWQms9HGE0jRiZZuWLJehBlbArxSaQbYOrM=";
|
||||
})
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv
|
||||
{ config
|
||||
, stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, fetchFromGitLab
|
||||
, Foundation
|
||||
, abseil-cpp
|
||||
, cmake
|
||||
@ -18,10 +18,22 @@
|
||||
, iconv
|
||||
, protobuf_21
|
||||
, pythonSupport ? true
|
||||
}:
|
||||
, cudaSupport ? config.cudaSupport
|
||||
, cudaPackages ? {}
|
||||
}@inputs:
|
||||
|
||||
|
||||
let
|
||||
version = "1.16.3";
|
||||
|
||||
stdenv = throw "Use effectiveStdenv instead";
|
||||
effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv;
|
||||
|
||||
cudaCapabilities = cudaPackages.cudaFlags.cudaCapabilities;
|
||||
# E.g. [ "80" "86" "90" ]
|
||||
cudaArchitectures = (builtins.map cudaPackages.cudaFlags.dropDot cudaCapabilities);
|
||||
cudaArchitecturesString = lib.strings.concatStringsSep ";" cudaArchitectures;
|
||||
|
||||
howard-hinnant-date = fetchFromGitHub {
|
||||
owner = "HowardHinnant";
|
||||
repo = "date";
|
||||
@ -74,10 +86,17 @@ let
|
||||
rev = "refs/tags/v1.14.1";
|
||||
hash = "sha256-ZVSdk6LeAiZpQrrzLxphMbc1b3rNUMpcxcXPP8s/5tE=";
|
||||
};
|
||||
|
||||
cutlass = fetchFromGitHub {
|
||||
owner = "NVIDIA";
|
||||
repo = "cutlass";
|
||||
rev = "v3.0.0";
|
||||
sha256 = "sha256-YPD5Sy6SvByjIcGtgeGH80TEKg2BtqJWSg46RvnJChY=";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
effectiveStdenv.mkDerivation rec {
|
||||
pname = "onnxruntime";
|
||||
version = "1.16.3";
|
||||
inherit version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "microsoft";
|
||||
@ -96,6 +115,10 @@ stdenv.mkDerivation rec {
|
||||
# - use MakeAvailable instead of the low-level Populate,
|
||||
# - use Eigen3::Eigen as the target name (as declared by libeigen/eigen).
|
||||
./0001-eigen-allow-dependency-injection.patch
|
||||
] ++ lib.optionals cudaSupport [
|
||||
# We apply the referenced 1064.patch ourselves to our nix dependency.
|
||||
# FIND_PACKAGE_ARGS for CUDA was added in https://github.com/microsoft/onnxruntime/commit/87744e5 so it might be possible to delete this patch after upgrading to 1.17.0
|
||||
./nvcc-gsl.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -109,7 +132,9 @@ stdenv.mkDerivation rec {
|
||||
pythonOutputDistHook
|
||||
setuptools
|
||||
wheel
|
||||
]);
|
||||
]) ++ lib.optionals cudaSupport [
|
||||
cudaPackages.cuda_nvcc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
eigen
|
||||
@ -118,16 +143,24 @@ stdenv.mkDerivation rec {
|
||||
nlohmann_json
|
||||
microsoft-gsl
|
||||
] ++ lib.optionals pythonSupport (with python3Packages; [
|
||||
gtest'
|
||||
numpy
|
||||
pybind11
|
||||
packaging
|
||||
]) ++ lib.optionals stdenv.isDarwin [
|
||||
]) ++ lib.optionals effectiveStdenv.isDarwin [
|
||||
Foundation
|
||||
iconv
|
||||
];
|
||||
] ++ lib.optionals cudaSupport (with cudaPackages; [
|
||||
cuda_cccl # cub/cub.cuh
|
||||
libcublas # cublas_v2.h
|
||||
libcurand # curand.h
|
||||
libcusparse # cusparse.h
|
||||
libcufft # cufft.h
|
||||
cudnn # cudnn.h
|
||||
cuda_cudart
|
||||
]);
|
||||
|
||||
nativeCheckInputs = lib.optionals pythonSupport (with python3Packages; [
|
||||
gtest'
|
||||
pytest
|
||||
sympy
|
||||
onnx
|
||||
@ -159,23 +192,31 @@ stdenv.mkDerivation rec {
|
||||
"-Donnxruntime_BUILD_UNIT_TESTS=ON"
|
||||
"-Donnxruntime_ENABLE_LTO=ON"
|
||||
"-Donnxruntime_USE_FULL_PROTOBUF=OFF"
|
||||
(lib.cmakeBool "onnxruntime_USE_CUDA" cudaSupport)
|
||||
(lib.cmakeBool "onnxruntime_USE_NCCL" cudaSupport)
|
||||
] ++ lib.optionals pythonSupport [
|
||||
"-Donnxruntime_ENABLE_PYTHON=ON"
|
||||
] ++ lib.optionals cudaSupport [
|
||||
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_CUTLASS" cutlass)
|
||||
(lib.cmakeFeature "onnxruntime_CUDNN_HOME" cudaPackages.cudnn)
|
||||
(lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cudaArchitecturesString)
|
||||
];
|
||||
|
||||
env = lib.optionalAttrs stdenv.cc.isClang {
|
||||
env = lib.optionalAttrs effectiveStdenv.cc.isClang {
|
||||
NIX_CFLAGS_COMPILE = toString [
|
||||
"-Wno-error=deprecated-declarations"
|
||||
"-Wno-error=unused-but-set-variable"
|
||||
];
|
||||
};
|
||||
|
||||
doCheck = true;
|
||||
doCheck = !cudaSupport;
|
||||
|
||||
requiredSystemFeatures = lib.optionals cudaSupport [ "big-parallel" ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace cmake/libonnxruntime.pc.cmake.in \
|
||||
--replace-fail '$'{prefix}/@CMAKE_INSTALL_ @CMAKE_INSTALL_
|
||||
'' + lib.optionalString (stdenv.hostPlatform.system == "aarch64-linux") ''
|
||||
'' + lib.optionalString (effectiveStdenv.hostPlatform.system == "aarch64-linux") ''
|
||||
# https://github.com/NixOS/nixpkgs/pull/226734#issuecomment-1663028691
|
||||
rm -v onnxruntime/test/optimizer/nhwc_transformer_test.cc
|
||||
'';
|
||||
|
32
pkgs/development/libraries/onnxruntime/nvcc-gsl.patch
Normal file
32
pkgs/development/libraries/onnxruntime/nvcc-gsl.patch
Normal file
@ -0,0 +1,32 @@
|
||||
diff --git a/cmake/external/onnxruntime_external_deps.cmake b/cmake/external/onnxruntime_external_deps.cmake
|
||||
index 9effd1a2db..faff5e8de7 100644
|
||||
--- a/cmake/external/onnxruntime_external_deps.cmake
|
||||
+++ b/cmake/external/onnxruntime_external_deps.cmake
|
||||
@@ -280,21 +280,12 @@ if (NOT WIN32)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
-if(onnxruntime_USE_CUDA)
|
||||
- FetchContent_Declare(
|
||||
- GSL
|
||||
- URL ${DEP_URL_microsoft_gsl}
|
||||
- URL_HASH SHA1=${DEP_SHA1_microsoft_gsl}
|
||||
- PATCH_COMMAND ${Patch_EXECUTABLE} --binary --ignore-whitespace -p1 < ${PROJECT_SOURCE_DIR}/patches/gsl/1064.patch
|
||||
- )
|
||||
-else()
|
||||
- FetchContent_Declare(
|
||||
- GSL
|
||||
- URL ${DEP_URL_microsoft_gsl}
|
||||
- URL_HASH SHA1=${DEP_SHA1_microsoft_gsl}
|
||||
- FIND_PACKAGE_ARGS 4.0 NAMES Microsoft.GSL
|
||||
- )
|
||||
-endif()
|
||||
+FetchContent_Declare(
|
||||
+ GSL
|
||||
+ URL ${DEP_URL_microsoft_gsl}
|
||||
+ URL_HASH SHA1=${DEP_SHA1_microsoft_gsl}
|
||||
+ FIND_PACKAGE_ARGS 4.0 NAMES Microsoft.GSL
|
||||
+)
|
||||
|
||||
FetchContent_Declare(
|
||||
safeint
|
@ -1,4 +1,12 @@
|
||||
{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, fftw, speexdsp }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, autoreconfHook
|
||||
, pkg-config
|
||||
, fftw
|
||||
, speexdsp
|
||||
, withFft ? !stdenv.hostPlatform.isMinGW
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "speex";
|
||||
@ -16,12 +24,13 @@ stdenv.mkDerivation rec {
|
||||
outputs = [ "out" "dev" "doc" ];
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
buildInputs = [ fftw speexdsp ];
|
||||
buildInputs = lib.optionals withFft [ fftw ]
|
||||
++ [ speexdsp ];
|
||||
|
||||
# TODO: Remove this will help with immediate backward compatibility
|
||||
propagatedBuildInputs = [ speexdsp ];
|
||||
|
||||
configureFlags = [
|
||||
configureFlags = lib.optionals withFft [
|
||||
"--with-fft=gpl-fftw3"
|
||||
];
|
||||
|
||||
@ -29,6 +38,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = "https://www.speex.org/";
|
||||
description = "An Open Source/Free Software patent-free audio compression format designed for speech";
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.unix;
|
||||
platforms = platforms.unix ++ platforms.windows;
|
||||
};
|
||||
}
|
||||
|
@ -139,6 +139,10 @@ stdenv.mkDerivation rec {
|
||||
|
||||
postInstall = ''
|
||||
rm -f ${placeholder "out"}/lib/*.a
|
||||
''
|
||||
# For mingw, libs are located in $out/bin not $out/lib
|
||||
+ lib.optionalString stdenv.hostPlatform.isMinGW ''
|
||||
ln -s $out/bin/*.dll $out/lib
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ lib, fetchurl, pkg-config, buildDunePackage, dune-configurator
|
||||
{ lib, fetchurl, fetchpatch, pkg-config, buildDunePackage, dune-configurator
|
||||
, gtk3, cairo2
|
||||
, camlp-streams
|
||||
}:
|
||||
@ -14,6 +14,13 @@ buildDunePackage rec {
|
||||
hash = "sha256-bxEVMzfnaH5yHVxAmifNYOy8GnSivLLgSE/9+1yxBI4=";
|
||||
};
|
||||
|
||||
# Fix build with clang 16
|
||||
# See: https://github.com/garrigue/lablgtk/pull/175
|
||||
patches = fetchpatch {
|
||||
url = "https://github.com/garrigue/lablgtk/commit/a9b64b9ed8a13855c672cde0a2d9f78687f4214b.patch";
|
||||
hash = "sha256-j/L+yYKLlj410jx2VG77hnn9SVHCcSzmr3wpOMZhX5w=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ dune-configurator camlp-streams ];
|
||||
propagatedBuildInputs = [ gtk3 cairo2 ];
|
||||
|
@ -2,12 +2,12 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ocaml${ocaml.version}-mlgmpidl";
|
||||
version = "1.2.15";
|
||||
version = "1.3.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nberth";
|
||||
repo = "mlgmpidl";
|
||||
rev = version;
|
||||
sha256 = "sha256-85wy5eVWb5qdaa2lLDcfqlUTIY7vnN3nGMdxoj5BslU=";
|
||||
hash = "sha256-ZmSDKZiHko8MCeIuZL53HjupfwO6PAm8QOCc9O3xJOk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ perl ocaml findlib camlidl ];
|
||||
@ -17,18 +17,11 @@ stdenv.mkDerivation rec {
|
||||
strictDeps = true;
|
||||
|
||||
prefixKey = "-prefix ";
|
||||
configureFlags = [
|
||||
"--gmp-prefix ${gmp.dev}"
|
||||
"--mpfr-prefix ${mpfr.dev}"
|
||||
"-disable-profiling"
|
||||
];
|
||||
|
||||
postConfigure = ''
|
||||
substituteInPlace Makefile --replace "/bin/rm" "rm"
|
||||
mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs
|
||||
'';
|
||||
|
||||
|
||||
meta = {
|
||||
description = "OCaml interface to the GMP library";
|
||||
homepage = "https://www.inrialpes.fr/pop-art/people/bjeannet/mlxxxidl-forge/mlgmpidl/";
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiodiscover";
|
||||
version = "1.6.0";
|
||||
version = "1.6.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -24,14 +24,9 @@ buildPythonPackage rec {
|
||||
owner = "bdraco";
|
||||
repo = "aiodiscover";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-FbOqTUSqxSPSCn5zA4s47+M6OsVsqvUBZxTFvJ5PoHs=";
|
||||
hash = "sha256-M3tus0r58YVJyi/S7UWq+OvaKke3hqkHGuYkUxEpVxg=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace '"pytest-runner>=5.2",' ""
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
setuptools
|
||||
];
|
||||
|
64
pkgs/development/python-modules/aiotankerkoenig/default.nix
Normal file
64
pkgs/development/python-modules/aiotankerkoenig/default.nix
Normal file
@ -0,0 +1,64 @@
|
||||
{ lib
|
||||
, aiohttp
|
||||
, aioresponses
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, mashumaro
|
||||
, orjson
|
||||
, poetry-core
|
||||
, pytest-asyncio
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, syrupy
|
||||
, yarl
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiotankerkoenig";
|
||||
version = "0.4.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jpbede";
|
||||
repo = "aiotankerkoenig";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-BB1Cy4Aji5m06LlNj03as4CWF8RcYKAYy4oxPomOP68=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace-fail "--cov" ""
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
aiohttp
|
||||
mashumaro
|
||||
orjson
|
||||
yarl
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
aioresponses
|
||||
pytest-asyncio
|
||||
pytestCheckHook
|
||||
syrupy
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"aiotankerkoenig"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python module for interacting with tankerkoenig.de";
|
||||
homepage = "https://github.com/jpbede/aiotankerkoenig";
|
||||
changelog = "https://github.com/jpbede/aiotankerkoenig/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
@ -1,41 +1,45 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, click
|
||||
, fetchFromGitHub
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, flit-core
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "click-default-group";
|
||||
version = "1.2.2";
|
||||
format = "setuptools";
|
||||
version = "1.2.4";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
# No tests in Pypi tarball
|
||||
src = fetchFromGitHub {
|
||||
owner = "click-contrib";
|
||||
repo = "click-default-group";
|
||||
rev = "v${version}";
|
||||
sha256 = "0nk39lmkn208w8kvq6f4h3a6qzxrrvxixahpips6ik3zflbkss86";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-9Vk4LdgLDAWG2YCQPLKR6PIVnULmpOoe7RtS8DgWARo=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# make tests compatible with click 8
|
||||
(fetchpatch {
|
||||
url = "https://github.com/click-contrib/click-default-group/commit/9415c77d05cf7d16876e7d70a49a41a6189983b4.patch";
|
||||
sha256 = "1czzma8nmwyxhwhnr8rfw5bjw6d46b3s5r5bfb8ly3sjwqjlwhw2";
|
||||
})
|
||||
nativeBuildInputs = [
|
||||
flit-core
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ click ];
|
||||
propagatedBuildInputs = [
|
||||
click
|
||||
];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "click_default_group" ];
|
||||
pythonImportsCheck = [
|
||||
"click_default_group"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/click-contrib/click-default-group";
|
||||
description = "Group to invoke a command without explicit subcommand name";
|
||||
homepage = "https://github.com/click-contrib/click-default-group";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ jakewaksbaum ];
|
||||
};
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user