Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2025-01-26 18:04:05 +00:00
committed by GitHub
140 changed files with 1669 additions and 700 deletions
+7
View File
@@ -6173,6 +6173,13 @@
githubId = 20759788;
name = "JP Lippold";
};
DrakeTDL = {
name = "Drake";
email = "draketdl@mailbox.org";
matrix = "@draketdl:matrix.org";
github = "DrakeTDL";
githubId = 22124013;
};
dramaturg = {
email = "seb@ds.ag";
github = "dramaturg";
@@ -115,6 +115,8 @@
- [Zipline](https://zipline.diced.sh/), a ShareX/file upload server that is easy to use, packed with features, and with an easy setup. Available as [services.zipline](#opt-services.zipline.enable).
- [Stash](https://github.com/stashapp/stash), An organizer for your adult videos/images, written in Go. Available as [services.stash](#opt-services.stash.enable).
- [Fider](https://fider.io/), an open platform to collect and prioritize feedback. Available as [services.fider](#opt-services.fider.enable).
- [mqtt-exporter](https://github.com/kpetremann/mqtt-exporter/), a Prometheus exporter for exposing messages from MQTT. Available as [services.prometheus.exporters.mqtt](#opt-services.prometheus.exporters.mqtt.enable).
+1
View File
@@ -1577,6 +1577,7 @@
./services/web-apps/snipe-it.nix
./services/web-apps/sogo.nix
./services/web-apps/stirling-pdf.nix
./services/web-apps/stash.nix
./services/web-apps/trilium.nix
./services/web-apps/tt-rss.nix
./services/web-apps/vikunja.nix
@@ -18,7 +18,7 @@ To enable FoundationDB, add the following to your
```nix
{
services.foundationdb.enable = true;
services.foundationdb.package = pkgs.foundationdb73; # FoundationDB 7.r3.x
services.foundationdb.package = pkgs.foundationdb73; # FoundationDB 7.3.x
}
```
+3 -29
View File
@@ -84,14 +84,7 @@ let
++ filter (x: x != null) [
cfg.${proto}.cert or null
cfg.${proto}.key or null
]
++
# Without confinement the whole Nix store
# is made available to the service
optionals (!config.systemd.services."public-inbox-${srv}".confinement.enable) [
"${pkgs.dash}/bin/dash:/bin/sh"
builtins.storeDir
];
];
# The following options are only for optimizing:
# systemd-analyze security public-inbox-'*'
AmbientCapabilities = "";
@@ -108,7 +101,7 @@ let
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectProc = "invisible";
#ProtectSystem = "strict";
ProtectSystem = "strict";
RemoveIPC = true;
RestrictAddressFamilies =
[ "AF_UNIX" ]
@@ -130,28 +123,9 @@ let
# Not removing @timer because git upload-pack needs it.
];
SystemCallArchitectures = "native";
# The following options are redundant when confinement is enabled
RootDirectory = "/var/empty";
TemporaryFileSystem = "/";
PrivateMounts = true;
MountAPIVFS = true;
PrivateDevices = true;
PrivateTmp = true;
PrivateUsers = true;
ProtectControlGroups = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
};
confinement = {
# Until we agree upon doing it directly here in NixOS
# https://github.com/NixOS/nixpkgs/pull/104457#issuecomment-1115768447
# let the user choose to enable the confinement with:
# systemd.services.public-inbox-httpd.confinement.enable = true;
# systemd.services.public-inbox-imapd.confinement.enable = true;
# systemd.services.public-inbox-init.confinement.enable = true;
# systemd.services.public-inbox-nntpd.confinement.enable = true;
#enable = true;
enable = true;
mode = "full-apivfs";
# Inline::C needs a /bin/sh, and dash is enough
binSh = "${pkgs.dash}/bin/dash";
+585
View File
@@ -0,0 +1,585 @@
{
config,
pkgs,
lib,
...
}:
let
inherit (lib)
getExe
literalExpression
mkEnableOption
mkIf
mkOption
mkPackageOption
optionalString
toUpper
types
;
cfg = config.services.stash;
stashType = types.submodule {
options = {
path = mkOption {
type = types.path;
description = "location of your media files";
};
excludevideo = mkOption {
type = types.bool;
default = false;
description = "Whether to exclude video files from being scanned into Stash";
};
excludeimage = mkOption {
type = types.bool;
default = false;
description = "Whether to exclude image files from being scanned into Stash";
};
};
};
stashBoxType = types.submodule {
options = {
name = mkOption {
type = types.str;
description = "The name of the Stash Box";
};
endpoint = mkOption {
type = types.str;
description = "URL to the Stash Box graphql api";
};
apikey = mkOption {
type = types.str;
description = "Stash Box API key";
};
};
};
recentlyReleased = mode: {
__typename = "CustomFilter";
message = {
id = "recently_released_objects";
values.objects = mode;
};
mode = toUpper mode;
sortBy = "date";
direction = "DESC";
};
recentlyAdded = mode: {
__typename = "CustomFilter";
message = {
id = "recently_added_objects";
values.objects = mode;
};
mode = toUpper mode;
sortBy = "created_at";
direction = "DESC";
};
uiPresets = {
recentlyReleasedScenes = recentlyReleased "Scenes";
recentlyAddedScenes = recentlyAdded "Scenes";
recentlyReleasedGalleries = recentlyReleased "Galleries";
recentlyAddedGalleries = recentlyAdded "Galleries";
recentlyAddedImages = recentlyAdded "Images";
recentlyReleasedMovies = recentlyReleased "Movies";
recentlyAddedMovies = recentlyAdded "Movies";
recentlyAddedStudios = recentlyAdded "Studios";
recentlyAddedPerformers = recentlyAdded "Performers";
};
settingsFormat = pkgs.formats.yaml { };
settingsFile = settingsFormat.generate "config.yml" cfg.settings;
settingsType = types.submodule {
freeformType = settingsFormat.type;
options = {
host = mkOption {
type = types.str;
default = "localhost";
example = "::1";
description = "The ip address that Stash should bind to.";
};
port = mkOption {
type = types.port;
default = 9999;
example = 1234;
description = "The port that Stash should listen on.";
};
stash = mkOption {
type = types.listOf stashType;
description = ''
Add directories containing your adult videos and images.
Stash will use these directories to find videos and/or images during scanning.
'';
example = literalExpression ''
{
stash = [
{
Path = "/media/drive/videos";
ExcludeImage = true;
}
];
}
'';
};
stash_boxes = mkOption {
type = types.listOf stashBoxType;
default = [ ];
description = ''Stash-box facilitates automated tagging of scenes and performers based on fingerprints and filenames'';
example = literalExpression ''
{
stash_boxes = [
{
name = "StashDB";
endpoint = "https://stashdb.org/graphql";
apikey = "aaaaaaaaaaaa.bbbbbbbbbbbbbbbbbbbbbbbb.cccccccccccccc";
}
];
}
'';
};
ui.frontPageContent = mkOption {
description = "Search filters to display on the front page.";
type = types.either (types.listOf types.attrs) (types.functionTo (types.listOf types.attrs));
default = presets: [
presets.recentlyReleasedScenes
presets.recentlyAddedStudios
presets.recentlyReleasedMovies
presets.recentlyAddedPerformers
presets.recentlyReleasedGalleries
];
example = literalExpression ''
presets: [
# To get the savedFilterId, you can query `{ findSavedFilters(mode: <FilterMode>) { id name } }` on localhost:9999/graphql
{
__typename = "SavedFilter";
savedFilterId = 1;
}
# basic custom filter
{
__typename = "CustomFilter";
title = "Random Scenes";
mode = "SCENES";
sortBy = "random";
direction = "DESC";
}
presets.recentlyAddedImages
]
'';
apply = type: if builtins.isFunction type then (type uiPresets) else type;
};
blobs_path = mkOption {
type = types.path;
default = "${cfg.dataDir}/blobs";
description = "Path to blobs";
};
cache = mkOption {
type = types.path;
default = "${cfg.dataDir}/cache";
description = "Path to cache";
};
database = mkOption {
type = types.path;
default = "${cfg.dataDir}/go.sqlite";
description = "Path to the SQLite database";
};
generated = mkOption {
type = types.path;
default = "${cfg.dataDir}/generated";
description = "Path to generated files";
};
plugins_path = mkOption {
type = types.path;
default = "${cfg.dataDir}/plugins";
description = "Path to scrapers";
};
scrapers_path = mkOption {
type = types.path;
default = "${cfg.dataDir}/scrapers";
description = "Path to scrapers";
};
blobs_storage = mkOption {
type = types.enum [
"FILESYSTEM"
"DATABASE"
];
default = "FILESYSTEM";
description = "Where to store blobs";
};
calculate_md5 = mkOption {
type = types.bool;
default = false;
description = "Whether to calculate MD5 checksums for scene video files";
};
create_image_clip_from_videos = mkOption {
type = types.bool;
default = false;
description = "Create Image Clips from Video extensions when Videos are disabled in Library";
};
dangerous_allow_public_without_auth = mkOption {
type = types.bool;
default = false;
description = "Learn more at https://docs.stashapp.cc/networking/authentication-required-when-accessing-stash-from-the-internet/";
};
gallery_cover_regex = mkOption {
type = types.str;
default = "(poster|cover|folder|board)\.[^\.]+$";
description = "Regex used to identify images as gallery covers";
};
no_proxy = mkOption {
type = types.str;
default = "localhost,127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12";
description = "A list of domains for which the proxy must not be used";
};
nobrowser = mkOption {
type = types.bool;
default = true;
description = "If we should not auto-open a browser window on startup";
};
notifications_enabled = mkOption {
type = types.bool;
default = true;
description = "If we should send notifications to the desktop";
};
parallel_tasks = mkOption {
type = types.int;
default = 1;
description = "Number of parallel tasks to start during scan/generate";
};
preview_audio = mkOption {
type = types.bool;
default = true;
description = "Include audio stream in previews";
};
preview_exclude_end = mkOption {
type = types.int;
default = 0;
description = "Duration of start of video to exclude when generating previews";
};
preview_exclude_start = mkOption {
type = types.int;
default = 0;
description = "Duration of end of video to exclude when generating previews";
};
preview_segment_duration = mkOption {
type = types.float;
default = 0.75;
description = "Preview segment duration, in seconds";
};
preview_segments = mkOption {
type = types.int;
default = 12;
description = "Number of segments in a preview file";
};
security_tripwire_accessed_from_public_internet = mkOption {
type = types.nullOr types.str;
default = "";
description = "Learn more at https://docs.stashapp.cc/networking/authentication-required-when-accessing-stash-from-the-internet/";
};
sequential_scanning = mkOption {
type = types.bool;
default = false;
description = "Modifies behaviour of the scanning functionality to generate support files (previews/sprites/phash) at the same time as fingerprinting/screenshotting";
};
show_one_time_moved_notification = mkOption {
type = types.bool;
default = true;
description = "Whether a small notification to inform the user that Stash will no longer show a terminal window, and instead will be available in the tray";
};
sound_on_preview = mkOption {
type = types.bool;
default = false;
description = "Enable sound on mouseover previews";
};
theme_color = mkOption {
type = types.str;
default = "#202b33";
description = "Sets the `theme-color` property in the UI";
};
video_file_naming_algorithm = mkOption {
type = types.enum [
"OSHASH"
"MD5"
];
default = "OSHASH";
description = "Hash algorithm to use for generated file naming";
};
write_image_thumbnails = mkOption {
type = types.bool;
default = true;
description = "Write image thumbnails to disk when generating on the fly";
};
};
};
pluginType =
kind:
mkOption {
type = types.listOf types.package;
default = [ ];
description = ''
The ${kind} Stash should be started with.
'';
apply =
srcs:
optionalString (srcs != [ ]) (
pkgs.runCommand "stash-${kind}"
{
inherit srcs;
nativeBuildInputs = [ pkgs.yq-go ];
preferLocalBuild = true;
}
''
find $srcs -mindepth 1 -name '*.yml' | while read plugin_file; do
grep -q "^#pkgignore" "$plugin_file" && continue
plugin_dir=$(dirname $plugin_file)
out_path=$out/$(basename $plugin_dir)
mkdir -p $out_path
ls $plugin_dir | xargs -I{} ln -sf "$plugin_dir/{}" $out_path
env \
plugin_id=$(basename $plugin_file .yml) \
plugin_name="$(yq '.name' $plugin_file)" \
plugin_description="$(yq '.description' $plugin_file)" \
plugin_version="$(yq '.version' $plugin_file)" \
plugin_files="$(find -L $out_path -mindepth 1 -type f -printf "%P\n")" \
yq -n '
.id = strenv(plugin_id) |
.name = strenv(plugin_name) |
(
strenv(plugin_description) as $desc |
with(select($desc == "null"); .metadata = {}) |
with(select($desc != "null"); .metadata.description = $desc)
) |
(
strenv(plugin_version) as $ver |
with(select($ver == "null"); .version = "Unknown") |
with(select($ver != "null"); .version = $ver)
) |
.date = (now | format_datetime("2006-01-02 15:04:05")) |
.files = (strenv(plugin_files) | split("\n"))
' > $out_path/manifest
done
''
);
};
in
{
meta = {
buildDocsInSandbox = false;
maintainers = with lib.maintainers; [ DrakeTDL ];
};
options = {
services.stash = {
enable = mkEnableOption "stash";
package = mkPackageOption pkgs "stash" { };
user = mkOption {
type = types.str;
default = "stash";
description = "User under which Stash runs.";
};
group = mkOption {
type = types.str;
default = "stash";
description = "Group under which Stash runs.";
};
dataDir = mkOption {
type = types.path;
default = "/var/lib/stash";
description = "The directory where Stash stores its files.";
};
openFirewall = mkOption {
type = types.bool;
default = false;
description = "Open ports in the firewall for the Stash web interface.";
};
username = mkOption {
type = types.nullOr types.nonEmptyStr;
default = null;
example = "admin";
description = ''
Username for login.
::: {.warning}
This option takes precedence over {option}`services.stash.settings.username`
::
'';
};
passwordFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/path/to/password/file";
description = ''
Path to file containing password for login.
::: {.warning}
This option takes precedence over {option}`services.stash.settings.password`
::
'';
};
jwtSecretKeyFile = mkOption {
type = types.path;
description = "Path to file containing a secret used to sign JWT tokens.";
};
sessionStoreKeyFile = mkOption {
type = types.path;
description = "Path to file containing a secret for session store.";
};
mutableSettings = mkOption {
description = ''
Whether the Stash config.yml is writeable by Stash.
If `false`, Any config changes done from within Stash UI will be temporary and reset to those defined in {option}`services.stash.settings` upon `Stash.service` restart.
If `true`, the {option}`services.stash.settings` will only be used to initialize the Stash configuration if it does not exist, and are subsequently ignored.
'';
type = types.bool;
default = true;
};
mutablePlugins = mkEnableOption "Whether plugins/themes can be installed, updated, uninstalled manually.";
mutableScrapers = mkEnableOption "Whether scrapers can be installed, updated, uninstalled manually.";
plugins = pluginType "plugins";
scrapers = pluginType "scrapers";
settings = mkOption {
type = settingsType;
description = "Stash configuration";
};
};
};
config = mkIf cfg.enable {
assertions = [
{
assertion =
!lib.xor (cfg.username != null || cfg.settings.username or null != null) (
cfg.passwordFile != null || cfg.settings.password or null != null
);
message = "You must set either both username and password, or neither.";
}
];
services.stash.settings = {
username = mkIf (cfg.username != null) cfg.username;
plugins_path = mkIf (!cfg.mutablePlugins) cfg.plugins;
scrapers_path = mkIf (!cfg.mutableScrapers) cfg.scrapers;
};
networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.settings.port ];
users.users.${cfg.user} = {
inherit (cfg) group;
isSystemUser = true;
home = cfg.dataDir;
};
users.groups.${cfg.group} = { };
systemd = {
tmpfiles.settings."10-stash-datadir".${cfg.dataDir}."d" = {
inherit (cfg) user group;
mode = "0755";
};
services.stash = {
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
path = with pkgs; [
ffmpeg-full
python3
ruby
];
environment.STASH_CONFIG_FILE = "${cfg.dataDir}/config.yml";
serviceConfig = {
DynamicUser = false;
User = cfg.user;
Group = cfg.group;
Restart = "on-failure";
WorkingDirectory = cfg.dataDir;
StateDirectory = mkIf (cfg.dataDir == "/var/lib/stash") (baseNameOf cfg.dataDir);
ExecStartPre = pkgs.writers.writeBash "stash-setup.bash" (
''
install -d ${cfg.settings.generated}
if [[ ! -z "${toString cfg.mutableSettings}" || ! -f ${cfg.dataDir}/config.yml ]]; then
env \
password=$(< ${cfg.passwordFile}) \
jwtSecretKeyFile=$(< ${cfg.jwtSecretKeyFile}) \
sessionStoreKeyFile=$(< ${cfg.sessionStoreKeyFile}) \
${lib.getExe pkgs.yq-go} '
.jwt_secret_key = strenv(jwtSecretKeyFile) |
.session_store_key = strenv(sessionStoreKeyFile) |
(
strenv(password) as $password |
with(select($password != ""); .password = $password)
)
' ${settingsFile} > ${cfg.dataDir}/config.yml
fi
''
+ optionalString cfg.mutablePlugins ''
install -d ${cfg.settings.plugins_path}
ls ${cfg.plugins} | xargs -I{} ln -sf '${cfg.plugins}/{}' ${cfg.settings.plugins_path}
''
+ optionalString cfg.mutableScrapers ''
install -d ${cfg.settings.scrapers_path}
ls ${cfg.scrapers} | xargs -I{} ln -sf '${cfg.scrapers}/{}' ${cfg.settings.scrapers_path}
''
);
ExecStart = getExe cfg.package;
ProtectHome = "tmpfs";
BindReadOnlyPaths = mkIf (cfg.settings != { }) (map (stash: "${stash.path}") cfg.settings.stash);
# hardening
DevicePolicy = "auto"; # needed for hardware acceleration
PrivateDevices = false; # needed for hardware acceleration
AmbientCapabilities = [ "" ];
CapabilityBoundingSet = [ "" ];
ProtectSystem = "full";
LockPersonality = true;
NoNewPrivileges = true;
PrivateTmp = true;
PrivateUsers = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProcSubset = "pid";
ProtectProc = "invisible";
RemoveIPC = true;
RestrictAddressFamilies = [
"AF_UNIX"
"AF_INET"
"AF_INET6"
];
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
MemoryDenyWriteExecute = true;
SystemCallArchitectures = "native";
SystemCallFilter = [
"~@cpu-emulation"
"~@debug"
"~@mount"
"~@obsolete"
"~@privileged"
];
};
};
};
};
}
+1
View File
@@ -982,6 +982,7 @@ in {
stalwart-mail = handleTest ./stalwart-mail.nix {};
stargazer = runTest ./web-servers/stargazer.nix;
starship = handleTest ./starship.nix {};
stash = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./stash.nix {};
static-web-server = handleTest ./web-servers/static-web-server.nix {};
step-ca = handleTestOn ["x86_64-linux"] ./step-ca.nix {};
stratis = handleTest ./stratis {};
+10 -6
View File
@@ -10,11 +10,9 @@ import ./make-test-python.nix (
install -D -t $out key.pem cert.pem
'';
# Git repositories paths in Gitolite.
# Here only their baseNameOf is used for configuring public-inbox inboxes.
gitRepositories = [
"user/repo1"
"user/repo2"
"repo1"
"repo2"
];
in
{
@@ -81,7 +79,7 @@ import ./make-test-python.nix (
};
inboxes =
lib.recursiveUpdate
(lib.genAttrs (map baseNameOf gitRepositories) (repo: {
(lib.genAttrs gitRepositories (repo: {
address = [
# Routed to the "public-inbox:" transport in services.postfix.transport
"${repo}@${domain}"
@@ -106,7 +104,7 @@ import ./make-test-python.nix (
settings.coderepo = lib.listToAttrs (
map (
repositoryName:
lib.nameValuePair (baseNameOf repositoryName) {
lib.nameValuePair repositoryName {
dir = "/var/lib/public-inbox/repositories/${repositoryName}.git";
cgitUrl = "https://git.${domain}/${repositoryName}.git";
}
@@ -183,6 +181,12 @@ import ./make-test-python.nix (
testScript = ''
start_all()
# The threshold and/or hardening may have to be changed with new features/checks
with subtest("systemd hardening thresholds"):
print(machine.succeed("systemd-analyze security public-inbox-httpd.service --threshold=5 --no-pager"))
print(machine.succeed("systemd-analyze security public-inbox-imapd.service --threshold=5 --no-pager"))
print(machine.succeed("systemd-analyze security public-inbox-nntpd.service --threshold=4 --no-pager"))
machine.wait_for_unit("multi-user.target")
machine.wait_for_unit("public-inbox-init.service")
+80
View File
@@ -0,0 +1,80 @@
import ./make-test-python.nix (
let
host = "127.0.0.1";
port = 1234;
dataDir = "/stash";
in
{ pkgs, ... }:
{
name = "stash";
meta.maintainers = pkgs.stash.meta.maintainers;
nodes.machine = {
services.stash = {
inherit dataDir;
enable = true;
username = "test";
passwordFile = pkgs.writeText "stash-password" "MyPassword";
jwtSecretKeyFile = pkgs.writeText "jwt_secret_key" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
sessionStoreKeyFile = pkgs.writeText "session_store_key" "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";
plugins =
let
src = pkgs.fetchFromGitHub {
owner = "stashapp";
repo = "CommunityScripts";
rev = "9b6fac4934c2fac2ef0859ea68ebee5111fc5be5";
hash = "sha256-PO3J15vaA7SD4r/LyHlXjnpaeYAN9Q++O94bIWdz7OA=";
};
in
[
(pkgs.runCommand "stashNotes" { inherit src; } ''
mkdir -p $out/plugins
cp -r $src/plugins/stashNotes $out/plugins/stashNotes
'')
(pkgs.runCommand "Theme-Plex" { inherit src; } ''
mkdir -p $out/plugins
cp -r $src/themes/Theme-Plex $out/plugins/Theme-Plex
'')
];
mutableScrapers = true;
scrapers =
let
src = pkgs.fetchFromGitHub {
owner = "stashapp";
repo = "CommunityScrapers";
rev = "2ece82d17ddb0952c16842b0775274bcda598d81";
hash = "sha256-AEmnvM8Nikhue9LNF9dkbleYgabCvjKHtzFpMse4otM=";
};
in
[
(pkgs.runCommand "FTV" { inherit src; } ''
mkdir -p $out/scrapers/FTV
cp -r $src/scrapers/FTV.yml $out/scrapers/FTV
'')
];
settings = {
inherit host port;
stash = [ { path = "/srv"; } ];
};
};
};
testScript = ''
machine.wait_for_unit("stash.service")
machine.wait_for_open_port(${toString port}, "${host}")
machine.succeed("curl --fail http://${host}:${toString port}/")
with subtest("Test plugins/scrapers"):
with subtest("mutable plugins directory should not exist"):
machine.fail("test -d ${dataDir}/plugins")
with subtest("mutable scrapers directory should exist and scraper FTV should be linked"):
machine.succeed("test -L ${dataDir}/scrapers/FTV")
'';
}
)
+2 -2
View File
@@ -21,7 +21,7 @@
stdenv.mkDerivation rec {
pname = "f3d";
version = "2.5.1";
version = "3.0.0";
outputs = [ "out" ] ++ lib.optionals withManual [ "man" ];
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
owner = "f3d-app";
repo = "f3d";
tag = "v${version}";
hash = "sha256-S3eigdW6rkDRSm4uCCTFHx5fhJGNVWpAAAKboougr08=";
hash = "sha256-mnDmo5qzdnElhvZwBmHL3xC2o8iLuvYyfZXHoaAUG08=";
};
nativeBuildInputs = [
+2 -5
View File
@@ -24,9 +24,6 @@
rustPlatform,
rustc,
srcs,
# provided as callPackage input to enable easier overrides through overlays
cargoSha256 ? "sha256-PSrTo7nGgH0KxA82RlBEwtOu80WMCBeaCxHj3n7SgEE=",
}:
mkDerivation rec {
@@ -40,11 +37,11 @@ mkDerivation rec {
})
];
cargoDeps = rustPlatform.fetchCargoTarball {
cargoDeps = rustPlatform.fetchCargoVendor {
# include version in the name so we invalidate the FOD
name = "${pname}-${srcs.angelfish.version}";
inherit (srcs.angelfish) src;
sha256 = cargoSha256;
hash = "sha256-M3CtP7eWqOxMvnak6K3QvB/diu4jAfMmlsa6ySFIHCU=";
};
nativeBuildInputs = [
@@ -9,6 +9,8 @@
libGLU,
libSM,
libXcomposite,
libXi,
libXrender,
libX11,
@@ -38,11 +40,11 @@ let
in
mkDerivation rec {
pname = "googleearth-pro";
version = "7.3.6.9796";
version = "7.3.6.10201";
src = fetchurl {
url = "https://dl.google.com/linux/earth/deb/pool/main/g/google-earth-pro-stable/google-earth-pro-stable_${version}-r0_${arch}.deb";
sha256 = "sha256-Wv2jPGN7LC5T32WdX3W1BfGYrcXTNWTI1Wv+PmD0gNM=";
sha256 = "sha256-LqkXOSfE52+7x+Y0DBjYzvVKO0meytLNHuS/ia88FbI=";
};
nativeBuildInputs = [
@@ -63,6 +65,8 @@ mkDerivation rec {
libGLU
libSM
libX11
libXcomposite
libXi
libXrender
libproxy
libxcb
@@ -24,7 +24,7 @@ let
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
in stdenv.mkDerivation rec {
pname = "vivaldi";
version = "7.0.3495.29";
version = "7.1.3570.39";
suffix = {
aarch64-linux = "arm64";
@@ -34,8 +34,8 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_${suffix}.deb";
hash = {
aarch64-linux = "sha256-GdywFoaxx2VSpOJ0FJIhFcIRDJEhozCWvYvdatmEi5o=";
x86_64-linux = "sha256-PNSGx2oCIbB3vaNFS+7coM9Xw+2qDELJBXX8zA1UC3Q=";
aarch64-linux = "sha256-rhIz+vX/W39sN/j37nhaq+iEbIc/rfgMprqmX+DM2D8=";
x86_64-linux = "sha256-d6NQRueNE9P2/IOLwBIm4evrqO0D+RNKUUC156PEgcc=";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
};
@@ -354,11 +354,11 @@
"vendorHash": "sha256-quoFrJbB1vjz+MdV+jnr7FPACHuUe5Gx9POLubD2IaM="
},
"digitalocean": {
"hash": "sha256-mPNc65zah7HO3Knd44qxbwGgPp4LyxG76abBOV/1D3I=",
"hash": "sha256-JRBur7pH1niPZLN+5do6GiuoiSP18QsDZqWjlc9riek=",
"homepage": "https://registry.terraform.io/providers/digitalocean/digitalocean",
"owner": "digitalocean",
"repo": "terraform-provider-digitalocean",
"rev": "v2.46.1",
"rev": "v2.47.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@@ -6,6 +6,9 @@
protonvpn-nm-lib,
pythondialog,
dialog,
wrapGAppsNoGuiHook,
gobject-introspection,
glib,
}:
buildPythonApplication rec {
@@ -22,12 +25,27 @@ buildPythonApplication rec {
sha256 = "sha256-KhfogC23i7THe6YZJ6Sy1+q83vZupHsS69NurHCeo8I=";
};
nativeBuildInputs = [
wrapGAppsNoGuiHook
gobject-introspection
];
buildInputs = [
glib
];
propagatedBuildInputs = [
protonvpn-nm-lib
pythondialog
dialog
];
dontWrapGApps = true;
makeWrapperArgs = [
"\${gappsWrapperArgs[@]}"
];
# Project has a dummy test
doCheck = false;
+2 -2
View File
@@ -31,11 +31,11 @@
mkDerivation rec {
pname = "skrooge";
version = "2.33.0";
version = "25.1.0";
src = fetchurl {
url = "mirror://kde/stable/skrooge/skrooge-${version}.tar.xz";
hash = "sha256-9K4/r3I9VNdUKHi4FCo0SxR+QzewvEKGOQevRM/r9GU=";
hash = "sha256-t8A9egotR2XoMBo5uoH2RBPEo3H6nPSJS5Oi4MkSVww=";
};
nativeBuildInputs = [
@@ -60,6 +60,7 @@ let
"8.19.2".sha256 = "sha256-q+i07JsMZp83Gqav6v1jxsgPLN7sPvp5/oszVnavmz0=";
"8.20.0".sha256 = "sha256-WFpZlA6CzFVAruPhWcHQI7VOBVhrGLdFzWrHW0DTSl0=";
"8.20.1".sha256 = "sha256-nRaLODPG4E3gUDzGrCK40vhl4+VhPyd+/fXFK/HC3Ig=";
"9.0+rc1".sha256 = "sha256-TLq925HFdizxyHjKRMeHBH9rLRpLNUiVIfA1JSMgYXA=";
};
releaseRev = v: "V${v}";
fetched = import ../../../../build-support/coq/meta-fetch/default.nix
@@ -1,104 +1,147 @@
{ lib, stdenv, fetchFromGitHub, python3Packages, libunistring
, harfbuzz, fontconfig, pkg-config, ncurses, imagemagick
, libstartup_notification, libGL, libX11, libXrandr, libXinerama, libXcursor
, libxkbcommon, libXi, libXext, wayland-protocols, wayland, xxHash
, nerd-fonts
, lcms2
, librsync
, openssl
, installShellFiles
, dbus
, sudo
, Libsystem
, Cocoa
, Kernel
, UniformTypeIdentifiers
, UserNotifications
, libcanberra
, libicns
, wayland-scanner
, libpng
, python3
, zlib
, simde
, bashInteractive
, zsh
, fish
, nixosTests
, go_1_23
, buildGo123Module
, nix-update-script
, makeBinaryWrapper
, autoSignDarwinBinariesHook
{
lib,
stdenv,
fetchFromGitHub,
python3Packages,
libunistring,
harfbuzz,
fontconfig,
pkg-config,
ncurses,
imagemagick,
libstartup_notification,
libGL,
libX11,
libXrandr,
libXinerama,
libXcursor,
libxkbcommon,
libXi,
libXext,
wayland-protocols,
wayland,
xxHash,
nerd-fonts,
lcms2,
librsync,
openssl,
installShellFiles,
dbus,
sudo,
Libsystem,
Cocoa,
Kernel,
UniformTypeIdentifiers,
UserNotifications,
libcanberra,
libicns,
wayland-scanner,
libpng,
python3,
zlib,
simde,
bashInteractive,
zsh,
fish,
nixosTests,
go_1_23,
buildGo123Module,
nix-update-script,
makeBinaryWrapper,
autoSignDarwinBinariesHook,
}:
with python3Packages;
buildPythonApplication rec {
pname = "kitty";
version = "0.38.1";
version = "0.39.0";
format = "other";
src = fetchFromGitHub {
owner = "kovidgoyal";
repo = "kitty";
tag = "v${version}";
hash = "sha256-0M4Bvhh3j9vPedE/d+8zaiZdET4mXcrSNUgLllhaPJw=";
hash = "sha256-4JlsIwQzCxs1i8Pvsj9KcJZpXbVkSzWtW7klatA0FOM";
};
goModules = (buildGo123Module {
pname = "kitty-go-modules";
inherit src version;
vendorHash = "sha256-K12P81jE7oOU7qX2yQ+VtVHX/igKG0nPMSBkZ7wsR0o=";
}).goModules;
goModules =
(buildGo123Module {
pname = "kitty-go-modules";
inherit src version;
vendorHash = "sha256-Yahn+nlarPy4Yf1QmDminnHDqbe0+iJ6IsUKF0tioK4=";
}).goModules;
buildInputs = [
harfbuzz
ncurses
simde
lcms2
librsync
matplotlib
openssl.dev
xxHash
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
Cocoa
Kernel
UniformTypeIdentifiers
UserNotifications
libpng
python3
zlib
] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
Libsystem
] ++ lib.optionals stdenv.hostPlatform.isLinux [
fontconfig libunistring libcanberra libX11
libXrandr libXinerama libXcursor libxkbcommon libXi libXext
wayland-protocols wayland dbus libGL
];
buildInputs =
[
harfbuzz
ncurses
simde
lcms2
librsync
matplotlib
openssl.dev
xxHash
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
Cocoa
Kernel
UniformTypeIdentifiers
UserNotifications
libpng
python3
zlib
]
++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
Libsystem
]
++ lib.optionals stdenv.hostPlatform.isLinux [
fontconfig
libunistring
libcanberra
libX11
libXrandr
libXinerama
libXcursor
libxkbcommon
libXi
libXext
wayland-protocols
wayland
dbus
libGL
];
nativeBuildInputs = [
installShellFiles
ncurses
pkg-config
sphinx
furo
sphinx-copybutton
sphinxext-opengraph
sphinx-inline-tabs
go_1_23
fontconfig
makeBinaryWrapper
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
imagemagick
libicns # For the png2icns tool.
autoSignDarwinBinariesHook
] ++ lib.optionals stdenv.hostPlatform.isLinux [
wayland-scanner
];
nativeBuildInputs =
[
installShellFiles
ncurses
pkg-config
sphinx
furo
sphinx-copybutton
sphinxext-opengraph
sphinx-inline-tabs
go_1_23
fontconfig
makeBinaryWrapper
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
imagemagick
libicns # For the png2icns tool.
autoSignDarwinBinariesHook
]
++ lib.optionals stdenv.hostPlatform.isLinux [
wayland-scanner
];
depsBuildBuild = [ pkg-config ];
outputs = [ "out" "terminfo" "shell_integration" "kitten" ];
outputs = [
"out"
"terminfo"
"shell_integration"
"kitten"
];
patches = [
# Gets `test_ssh_env_vars` to pass when `bzip2` is in the output of `env`.
@@ -130,49 +173,58 @@ buildPythonApplication rec {
cp -r --reflink=auto $goModules vendor
'';
buildPhase = let
commonOptions = ''
--update-check-interval=0 \
--shell-integration=enabled\ no-rc
buildPhase =
let
commonOptions = ''
--update-check-interval=0 \
--shell-integration=enabled\ no-rc
'';
darwinOptions = ''
--disable-link-time-optimization \
${commonOptions}
'';
in
''
runHook preBuild
# Add the font by hand because fontconfig does not finds it in darwin
mkdir ./fonts/
cp "${nerd-fonts.symbols-only}/share/fonts/truetype/NerdFonts/Symbols/SymbolsNerdFontMono-Regular.ttf" ./fonts/
${
if stdenv.hostPlatform.isDarwin then
''
${python.pythonOnBuildForHost.interpreter} setup.py build ${darwinOptions}
make docs
${python.pythonOnBuildForHost.interpreter} setup.py kitty.app ${darwinOptions}
''
else
''
${python.pythonOnBuildForHost.interpreter} setup.py linux-package \
--egl-library='${lib.getLib libGL}/lib/libEGL.so.1' \
--startup-notification-library='${libstartup_notification}/lib/libstartup-notification-1.so' \
--canberra-library='${libcanberra}/lib/libcanberra.so' \
--fontconfig-library='${fontconfig.lib}/lib/libfontconfig.so' \
${commonOptions}
${python.pythonOnBuildForHost.interpreter} setup.py build-launcher
''
}
runHook postBuild
'';
darwinOptions = ''
--disable-link-time-optimization \
${commonOptions}
'';
in ''
runHook preBuild
# Add the font by hand because fontconfig does not finds it in darwin
mkdir ./fonts/
cp "${nerd-fonts.symbols-only}/share/fonts/truetype/NerdFonts/Symbols/SymbolsNerdFontMono-Regular.ttf" ./fonts/
nativeCheckInputs =
[
pillow
${if stdenv.hostPlatform.isDarwin then ''
${python.pythonOnBuildForHost.interpreter} setup.py build ${darwinOptions}
make docs
${python.pythonOnBuildForHost.interpreter} setup.py kitty.app ${darwinOptions}
'' else ''
${python.pythonOnBuildForHost.interpreter} setup.py linux-package \
--egl-library='${lib.getLib libGL}/lib/libEGL.so.1' \
--startup-notification-library='${libstartup_notification}/lib/libstartup-notification-1.so' \
--canberra-library='${libcanberra}/lib/libcanberra.so' \
--fontconfig-library='${fontconfig.lib}/lib/libfontconfig.so' \
${commonOptions}
${python.pythonOnBuildForHost.interpreter} setup.py build-launcher
''}
runHook postBuild
'';
nativeCheckInputs = [
pillow
# Shells needed for shell integration tests
bashInteractive
zsh
fish
] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
# integration tests need sudo
sudo
];
# Shells needed for shell integration tests
bashInteractive
zsh
fish
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
# integration tests need sudo
sudo
];
# skip failing tests due to darwin sandbox
preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
@@ -186,49 +238,61 @@ buildPythonApplication rec {
'';
checkPhase = ''
runHook preCheck
runHook preCheck
# Fontconfig error: Cannot load default config file: No such file: (null)
export FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf
# Fontconfig error: Cannot load default config file: No such file: (null)
export FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf
# Required for `test_ssh_shell_integration` to pass.
export TERM=kitty
# Required for `test_ssh_shell_integration` to pass.
export TERM=kitty
make test
runHook postCheck
'';
make test
runHook postCheck
'';
installPhase = ''
runHook preInstall
mkdir -p "$out"
mkdir -p "$kitten/bin"
${if stdenv.hostPlatform.isDarwin then ''
mkdir "$out/bin"
ln -s ../Applications/kitty.app/Contents/MacOS/kitty "$out/bin/kitty"
ln -s ../Applications/kitty.app/Contents/MacOS/kitten "$out/bin/kitten"
cp ./kitty.app/Contents/MacOS/kitten "$kitten/bin/kitten"
mkdir "$out/Applications"
cp -r kitty.app "$out/Applications/kitty.app"
${
if stdenv.hostPlatform.isDarwin then
''
mkdir "$out/bin"
ln -s ../Applications/kitty.app/Contents/MacOS/kitty "$out/bin/kitty"
ln -s ../Applications/kitty.app/Contents/MacOS/kitten "$out/bin/kitten"
cp ./kitty.app/Contents/MacOS/kitten "$kitten/bin/kitten"
mkdir "$out/Applications"
cp -r kitty.app "$out/Applications/kitty.app"
installManPage 'docs/_build/man/kitty.1'
'' else ''
cp -r linux-package/{bin,share,lib} "$out"
cp linux-package/bin/kitten "$kitten/bin/kitten"
''}
installManPage 'docs/_build/man/kitty.1'
''
else
''
cp -r linux-package/{bin,share,lib} "$out"
cp linux-package/bin/kitten "$kitten/bin/kitten"
''
}
# dereference the `kitty` symlink to make sure the actual executable
# is wrapped on macOS as well (and not just the symlink)
wrapProgram $(realpath "$out/bin/kitty") --prefix PATH : "$out/bin:${lib.makeBinPath [ imagemagick ncurses.dev ]}"
wrapProgram $(realpath "$out/bin/kitty") --prefix PATH : "$out/bin:${
lib.makeBinPath [
imagemagick
ncurses.dev
]
}"
installShellCompletion --cmd kitty \
--bash <("$out/bin/kitty" +complete setup bash) \
--fish <("$out/bin/kitty" +complete setup fish2) \
--zsh <("$out/bin/kitty" +complete setup zsh)
terminfo_src=${if stdenv.hostPlatform.isDarwin then
''"$out/Applications/kitty.app/Contents/Resources/terminfo"''
terminfo_src=${
if stdenv.hostPlatform.isDarwin then
''"$out/Applications/kitty.app/Contents/Resources/terminfo"''
else
"$out/share/terminfo"}
"$out/share/terminfo"
}
mkdir -p $terminfo/share
mv "$terminfo_src" $terminfo/share/terminfo
@@ -245,12 +309,12 @@ buildPythonApplication rec {
tests = lib.optionalAttrs stdenv.hostPlatform.isLinux {
default = nixosTests.terminal-emulators.kitty;
};
updateScript = nix-update-script {};
updateScript = nix-update-script { };
};
meta = with lib; {
homepage = "https://github.com/kovidgoyal/kitty";
description = "Modern, hackable, featureful, OpenGL based terminal emulator";
description = "The fast, feature-rich, GPU based terminal emulator";
license = licenses.gpl3Only;
changelog = [
"https://sw.kovidgoyal.net/kitty/changelog/"
@@ -258,6 +322,11 @@ buildPythonApplication rec {
];
platforms = platforms.darwin ++ platforms.linux;
mainProgram = "kitty";
maintainers = with maintainers; [ tex rvolosatovs Luflosi kashw2 ];
maintainers = with maintainers; [
tex
rvolosatovs
Luflosi
kashw2
];
};
}
@@ -16,20 +16,20 @@ let
bento4 = fetchFromGitHub {
owner = "xbmc";
repo = "Bento4";
rev = "1.6.0-641-${rel}";
sha256 = "sha256-vsFMDzH8JJecYw0qWKGCxnd/m5wn62mCKE2g2HwQhwI=";
tag = "1.6.0-641-3-${rel}";
hash = "sha256-ycWQvXgr1DQ3Wng73S8i6y6XmcUD/iN8OKfO1czgsnY=";
};
in
buildKodiBinaryAddon rec {
pname = "inputstream-adaptive";
namespace = "inputstream.adaptive";
version = "21.4.6";
version = "21.5.9";
src = fetchFromGitHub {
owner = "xbmc";
repo = "inputstream.adaptive";
rev = "${version}-${rel}";
sha256 = "sha256-ub4ep89datfr8aZLZAfoz7zhOizGFpzgp2PVON6Ptj8=";
tag = "${version}-${rel}";
hash = "sha256-OArvp/MgJGsRs3Z59JfgOkfwyhQ3ArC1yf37z7Y7khg=";
};
extraCMakeFlags = [
+2 -2
View File
@@ -15,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "abracadabra";
version = "2.9.1";
version = "2.9.2";
src = fetchFromGitHub {
owner = "KejPi";
repo = "AbracaDABra";
rev = "v${version}";
hash = "sha256-T2l5wjE62xBb55IzKzInf/K4VPOuZ68vp5VxS0vIn+I=";
hash = "sha256-3sjN62SWl5Xpb2cP108IFqCuJAo8JLOCLxJENCrq8wI=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -6,12 +6,12 @@
}:
let
pname = "bazecor";
version = "1.6.1";
version = "1.6.2";
src = appimageTools.extract {
inherit pname version;
src = fetchurl {
url = "https://github.com/Dygmalab/Bazecor/releases/download/v${version}/Bazecor-${version}-x64.AppImage";
hash = "sha256-Qf9FqHgTSCD2rYp8PC/gYHyiYcfFTJJmG4oRK/bch8Y=";
hash = "sha256-FfowCbnhGI0sglFvxf7ActUJC9Lsj97Ui08nObBnjoE=";
};
# Workaround for https://github.com/Dygmalab/Bazecor/issues/370
+3 -3
View File
@@ -11,14 +11,14 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-public-api";
version = "0.42.0";
version = "0.43.0";
src = fetchCrate {
inherit pname version;
hash = "sha256-vQhKvL9vRUq7WqtJ25v12DuCzO90bgXLmwu2Mm1jbig=";
hash = "sha256-oAtAfoWJ4YZ9YcU7DQtj6QqF1DSEMOUjauQxqo1a6GA=";
};
cargoHash = "sha256-Gm72Hr+bVmNwdFAIsAatTcF9Il6JG2i6dQPu1ZQy46o=";
cargoHash = "sha256-+mrPrYk/qj4UtbUgFIFS0XUp25uLs8fNhvSzx1nu1ng=";
nativeBuildInputs = [ pkg-config ];
+3 -3
View File
@@ -16,13 +16,13 @@
stdenv.mkDerivation {
pname = "chawan";
version = "0-unstable-2024-12-27";
version = "0-unstable-2025-01-06";
src = fetchFromSourcehut {
owner = "~bptato";
repo = "chawan";
rev = "93033c2c382aaff01b1aba6f5db7652c35708bf3";
hash = "sha256-MEOIu1CI/VTvd2cixa57Tv1xtBMXiMdD37ZYjAlg5S4=";
rev = "30a933adb2bade2ceee08a9b36371cecf554d648";
hash = "sha256-EepSEN66GTdWfCSiR/p69pN5bvTEiUFOMErCxedrq+g=";
fetchSubmodules = true;
};
+3 -3
View File
@@ -11,14 +11,14 @@
python3Packages.buildPythonApplication {
pname = "chirp";
version = "0.4.0-unstable-2025-01-12";
version = "0.4.0-unstable-2025-01-22";
pyproject = true;
src = fetchFromGitHub {
owner = "kk7ds";
repo = "chirp";
rev = "fc94f14823f3257961c4d0e144083fe6f397ad55";
hash = "sha256-J1Hhz6M1VhfIttz9lJnPNQsOJbzKBrb6Yz154oh3moo=";
rev = "470a8a0a5c5a878a72233339998f2e527dd32ff2";
hash = "sha256-H5N4YahSoMeKC+j6D6xj0MrZFUqcupvuqnahKhrq+sU=";
};
nativeBuildInputs = [
+7 -6
View File
@@ -6,16 +6,19 @@
rustPlatform.buildRustPackage rec {
pname = "clog-cli";
version = "0.9.3";
version = "0.10.0";
src = fetchFromGitHub {
owner = "clog-tool";
repo = "clog-cli";
rev = "v${version}";
sha256 = "1wxglc4n1dar5qphhj5pab7ps34cjr7jy611fwn72lz0f6c7jp3z";
# Tag seems to be missing:
# https://github.com/clog-tool/clog-cli/issues/128
rev = "7066cba2bcbaea0f62ea22c320d48dac20f36a38";
sha256 = "sha256-d1csT7iHf48kLkn6/cGhoIoEN/kiYc6vlUwHDNmbnMI=";
};
cargoHash = "sha256-yjBgccrkG2D8ZW3Uju4XUhz9Kar50jkJZ75MWhn9j3U=";
useFetchCargoVendor = true;
cargoHash = "sha256-b8/n3y6fTqP5+rZySEDEb8Z5DPHQ2jUasp5SvaJJlGo=";
meta = {
description = "Generate changelogs from local git metadata";
@@ -24,7 +27,5 @@ rustPlatform.buildRustPackage rec {
platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.nthorne ];
mainProgram = "clog";
# error: could not compile `rustc-serialize`
broken = true; # Added 2024-03-16
};
}
+2 -1
View File
@@ -17,7 +17,8 @@ rustPlatform.buildRustPackage rec {
hash = "sha256-Nqf0NNjE3gu+75tjMKAY3Wn75PiPwpnXgXtzdhqx7u8=";
};
cargoHash = "sha256-OLA9n7MBN5Fz3D3MJLb6PoEksO5Da2mp5h8pti2/lpA=";
useFetchCargoVendor = true;
cargoHash = "sha256-ssyx72o/eTcFClLyl4QJ71okqKU2k6SZVH0eGEFzIjs=";
cargoBuildFlags = [ "--package=clorinde" ];
+2 -1
View File
@@ -1,5 +1,5 @@
{
stdenv,
gcc13Stdenv,
lib,
fetchzip,
autoconf,
@@ -21,6 +21,7 @@
*/
let
stdenv = gcc13Stdenv;
arch =
if stdenv.hostPlatform.system == "x86_64-linux" then
"64"
+3 -3
View File
@@ -7,14 +7,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "codespell";
version = "2.3.0";
version = "2.4.0";
format = "pyproject";
src = fetchFromGitHub {
owner = "codespell-project";
repo = "codespell";
rev = "v${version}";
sha256 = "sha256-X3Pueu0E7Q57sbKSXqCZki4/PUb1WyWk/Zmj+lhVTM8=";
tag = "v${version}";
sha256 = "sha256-TZH3+ZzsThh0GDtiSU1ZEStmCHmEuNDrk/Vyc8E2ESI=";
};
nativeBuildInputs = with python3.pkgs; [
-25
View File
@@ -1,25 +0,0 @@
{
lib,
rustPlatform,
fetchCrate,
}:
rustPlatform.buildRustPackage rec {
pname = "dwfv";
version = "0.4.1";
src = fetchCrate {
inherit version pname;
hash = "sha256-JzOD0QQfDfIkJQATxGpyJBrFg5l6lkkAXY2qv9bir3c=";
};
cargoHash = "sha256-nmnpHz9sCRlxOngcSrW+oktYIKM/A295/a03fUf3ofw=";
meta = with lib; {
description = "Simple digital waveform viewer with vi-like key bindings";
mainProgram = "dwfv";
homepage = "https://github.com/psurply/dwfv";
license = licenses.mit;
maintainers = with maintainers; [ newam ];
};
}
+3 -3
View File
@@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "eigenmath";
version = "337-unstable-2024-12-20";
version = "337-unstable-2025-01-25";
src = fetchFromGitHub {
owner = "georgeweigt";
repo = pname;
rev = "571412786696680e1e04909e90e77d9d39b10b2a";
hash = "sha256-7/5UsU5TSW++MROWuUTsAptkv7gcqhvcqaRHYzXswB8=";
rev = "ae71bdf698283760ad3ac74ce57158f25c8d9198";
hash = "sha256-vmbujai7xW4U6fmsp4Gv63Tl3AcxOUsUA2rPTfFL3ZQ=";
};
checkPhase =
+7 -4
View File
@@ -16,13 +16,13 @@
stdenv.mkDerivation rec {
pname = "fastd";
version = "22";
version = "23";
src = fetchFromGitHub {
owner = "Neoraider";
owner = "neocturne";
repo = "fastd";
rev = "v${version}";
sha256 = "0qni32j7d3za9f87m68wq8zgalvfxdrx1zxi6l4x7vvmpcw5nhpq";
sha256 = "sha256-Sz6VEjKziL/w2a4VWFfMPDYvm7UZh5A/NmzP10rJ2r8=";
};
nativeBuildInputs = [
@@ -59,7 +59,10 @@ stdenv.mkDerivation rec {
bsd3
];
platforms = platforms.linux;
maintainers = with maintainers; [ fpletz ];
maintainers = with maintainers; [
fpletz
herbetom
];
mainProgram = "fastd";
};
}
+2 -2
View File
@@ -45,13 +45,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "fastfetch";
version = "2.34.1";
version = "2.35.0";
src = fetchFromGitHub {
owner = "fastfetch-cli";
repo = "fastfetch";
tag = finalAttrs.version;
hash = "sha256-kCSRS2GD58HS9Qdrv7ju8b7IGznBsP1IIAvvzkWPaLk=";
hash = "sha256-ChuK5DHRj1qJIjRo3oB5gdCxox2mDffCVM0wRGc5t1o=";
};
outputs = [
+3 -3
View File
@@ -8,20 +8,20 @@
buildNpmPackage rec {
pname = "flood";
version = "4.8.5";
version = "4.9.0";
src = fetchFromGitHub {
owner = "jesec";
repo = pname;
rev = "v${version}";
hash = "sha256-lm+vPo7V99OSUAVEvdiTNMlD/+iHGPIyPLc1WzO1aTU=";
hash = "sha256-R8OWr9jsD6KZ3P827plCTSLcVrrFEdutmlZNwqXJNfU=";
};
npmConfigHook = pnpm_9.configHook;
npmDeps = pnpmDeps;
pnpmDeps = pnpm_9.fetchDeps {
inherit pname version src;
hash = "sha256-NuU9O3bEboxmuEuk1WSUeZRNgVK5cwFiUAN3+7vACGw=";
hash = "sha256-6YW2m7siLzHiAFEpidQS5okhjsY9qNm+Ro8mHex1/No=";
};
passthru = {
+3 -3
View File
@@ -9,16 +9,16 @@
buildGoModule rec {
pname = "flyctl";
version = "0.3.61";
version = "0.3.68";
src = fetchFromGitHub {
owner = "superfly";
repo = "flyctl";
rev = "v${version}";
hash = "sha256-YGUjEK8Yvb1S879MNQ/gJYNG4DjFMTL2VHE/m5KLoE0=";
hash = "sha256-6/84MC7wmMCfCtuV0HJ/zMG96RO55LQxudejI5exVAM=";
};
vendorHash = "sha256-SqG5JJ2l71+fQirsg51hjr5sFHQzzH3U+acJMaN5W0c=";
vendorHash = "sha256-aKDziIx0xyWOczc9G0YQ7mdWdc5cWHjpjTDyJMsFriM=";
subPackages = [ "." ];
+11 -5
View File
@@ -6,6 +6,7 @@
recode,
perl,
rinutils,
fortune,
withOffensive ? false,
}:
@@ -20,11 +21,16 @@ stdenv.mkDerivation rec {
sha256 = "sha256-Hzh4dyVOleq2H5NyV7QmCfKbmU7wVxUxZVu/w6KsdKw=";
};
nativeBuildInputs = [
cmake
perl
rinutils
];
nativeBuildInputs =
[
cmake
perl
rinutils
]
++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
# "strfile" must be in PATH for cross-compiling builds.
fortune
];
buildInputs = [ recode ];
@@ -8,13 +8,13 @@
buildGoModule rec {
pname = "gh-markdown-preview";
version = "1.9.0";
version = "1.10.0";
src = fetchFromGitHub {
owner = "yusukebe";
repo = "gh-markdown-preview";
rev = "v${version}";
hash = "sha256-qvR23dXj+ERf5yhVbsJ3XcdePaAwuDvdya1zr5wtNsQ=";
hash = "sha256-5jxGFZqYkhFQ4Rx4jbI+fes9ezsuXa+VZowk5Jzhi3I=";
};
vendorHash = "sha256-O6Q9h5zcYAoKLjuzGu7f7UZY0Y5rL2INqFyJT2QZJ/E=";
+2 -2
View File
@@ -8,13 +8,13 @@
stdenv.mkDerivation (final: {
pname = "glaze";
version = "4.3.0";
version = "4.3.1";
src = fetchFromGitHub {
owner = "stephenberry";
repo = "glaze";
rev = "v${final.version}";
hash = "sha256-iFFc2FjcvlQqvjXvFZ+J3RTEIritSM6AZXQlLE5YF9A=";
hash = "sha256-AIPsujIJl0LXK6p+GttyjDsXJ0595jl/2Y3adzv2TvE=";
};
nativeBuildInputs = [ cmake ];
+9 -12
View File
@@ -5,19 +5,20 @@
fetchFromGitHub,
nix-update-script,
glibcLocales,
versionCheckHook,
withPostgresAdapter ? true,
withBigQueryAdapter ? true,
}:
python3Packages.buildPythonApplication rec {
pname = "harlequin";
version = "1.25.2-unstable-2024-12-30";
version = "2.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "tconbeer";
repo = "harlequin";
rev = "7ef5327157c7617c1032c9128b487b32d1c91fea";
hash = "sha256-QoIjEfQgN6YWDDor4PxfeFkkFGAidUC0ZvHy+PqgnWs=";
tag = "v${version}";
hash = "sha256-IUzN+rWL69TUUS9npcmfSAPqy/8SYNusNAN/muCMqNI=";
};
pythonRelaxDeps = [
@@ -65,15 +66,11 @@ python3Packages.buildPythonApplication rec {
export HOME=$(mktemp -d)
'';
nativeCheckInputs =
[
# FIX: restore on next release
# versionCheckHook
]
++ (with python3Packages; [
pytest-asyncio
pytestCheckHook
]);
nativeCheckInputs = with python3Packages; [
pytest-asyncio
pytestCheckHook
versionCheckHook
];
disabledTests =
[
+3 -3
View File
@@ -8,16 +8,16 @@
buildGoModule rec {
pname = "hcdiag";
version = "0.5.5";
version = "0.5.6";
src = fetchFromGitHub {
owner = "hashicorp";
repo = "hcdiag";
tag = "v${version}";
hash = "sha256-ZzSGBw7DRh/VSDtXoMgJpGWVmJUF2G2yZaae+fKklMc=";
hash = "sha256-MY1qaVm1PRB3A+MPz4rVUS+Kn4O4p9yzn/3DHKvhZkk=";
};
vendorHash = "sha256-MJg6mqG1bn941LqIr0TQhcgWBCwUtfujdpqf4rgCrWM=";
vendorHash = "sha256-09I5Hsw7EhZZAvG7TnJNID/lVv0FVM3ejsmzy3GK48g=";
nativeInstallCheckHooks = [
versionCheckHook
+2 -2
View File
@@ -14,13 +14,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "jazz2";
version = "3.0.0";
version = "3.1.0";
src = fetchFromGitHub {
owner = "deathkiller";
repo = "jazz2-native";
rev = finalAttrs.version;
hash = "sha256-t1bXREL/WWnYnSfCyAY5tus/Bq5V4HVHg9s7oltGoIg=";
hash = "sha256-bPVCowop8bocUEXTQI5X4+6FgddKVOMfaXTrbvjrnjI=";
};
patches = [ ./nocontent.patch ];
+3 -3
View File
@@ -19,7 +19,7 @@
rustPlatform.buildRustPackage rec {
pname = "just";
version = "1.38.0";
version = "1.39.0";
outputs =
[
"out"
@@ -33,10 +33,10 @@ rustPlatform.buildRustPackage rec {
owner = "casey";
repo = pname;
tag = version;
hash = "sha256-jIc8+SFAcH2TsY12+txwlMoJmpDdDpC0H+UrjYH61Lk=";
hash = "sha256-K2MUS6wo0qxJnnIWDdmxHRNwyzx1z7yscVwMzXKAwQA=";
};
cargoHash = "sha256-JHLkjMy5b1spJrAqFCCzqgnlYTAKA1Z9Tx4w1WWuiAI=";
cargoHash = "sha256-omojDIFfkK1fAxFMe+3B7k6Wfk4/Eaqdv0NcCd8b1ks=";
nativeBuildInputs =
lib.optionals (installShellCompletions || installManPages) [ installShellFiles ]
+3 -3
View File
@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec {
pname = "kdlfmt";
version = "0.0.10";
version = "0.0.11";
src = fetchFromGitHub {
owner = "hougesen";
repo = "kdlfmt";
rev = "v${version}";
hash = "sha256-XqcexHeXXVfNoIu0h0Ooxlkm/FaDh/ctkH3cod1mlwY=";
hash = "sha256-OldgEAGvwXBnLIEVI/jGXV9lFp/Ua+n8cQqSWETn3T4=";
};
cargoHash = "sha256-ZlaILIVG3gLVFGqv1cozDtbHcL+dxUJXq/DvuJ077O8=";
cargoHash = "sha256-Pxs/ITGSU3WErcUgjnehCzuqkeC6M7x2mM/sU00djUw=";
meta = {
description = "Formatter for kdl documents";
+2 -2
View File
@@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "kissat";
version = "4.0.1";
version = "4.0.2";
src = fetchFromGitHub {
owner = "arminbiere";
repo = "kissat";
rev = "rel-${version}";
sha256 = "sha256-+y9TlSEgnMTtRT9F6OBSle9OqGfljChcHOFJ5lgwjyk=";
sha256 = "sha256-XVaWO1zHMXM83Qih3HnmIsOvM1zpefF6u9lBP420/mQ=";
};
outputs = [
+2 -2
View File
@@ -40,13 +40,13 @@ let
in
effectiveStdenv.mkDerivation (finalAttrs: {
pname = "koboldcpp";
version = "1.81.1";
version = "1.82.4";
src = fetchFromGitHub {
owner = "LostRuins";
repo = "koboldcpp";
tag = "v${finalAttrs.version}";
hash = "sha256-Ndi7EQ4Idh946iQuf1mFluLh+9SEfTRtIu8uYN9uHpE=";
hash = "sha256-ObQJS6ZRdtSCTAQCq8w3gLDa1Z8z++JgDmyedTXB1F8=";
};
enableParallelBuilding = true;
+1 -1
View File
@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: {
];
preBuild = ''
make -C libtools
make -C libtools CROSS_COMPILE=${stdenv.cc.targetPrefix}
'';
installPhase = ''
+1 -1
View File
@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: {
];
preBuild = ''
make -C libtools
make -C libtools CROSS_COMPILE=${stdenv.cc.targetPrefix}
'';
installPhase = ''
-29
View File
@@ -1,29 +0,0 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
version = "0.4.1";
pname = "loc";
src = fetchFromGitHub {
owner = "cgag";
repo = "loc";
rev = "v${version}";
sha256 = "0086asrx48qlmc484pjz5r5znli85q6qgpfbd81gjlzylj7f57gg";
};
cargoHash = "sha256-/YnU7vLz37Y9gggGx+vKWvtxBH0fjBwXGc+UWyOG2OE=";
meta = {
homepage = "https://github.com/cgag/loc";
changelog = "https://github.com/cgag/loc/blob/v${version}/CHANGELOG.md";
description = "Count lines of code quickly";
mainProgram = "loc";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ sigmanificient ];
platforms = lib.platforms.unix;
};
}
+6 -6
View File
@@ -1,7 +1,7 @@
{
lib,
stdenv,
libsForQt5,
qt6,
makeDesktopItem,
copyDesktopItems,
fetchFromGitHub,
@@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "mcontrolcenter";
version = "0.4.1";
version = "0.5.0";
src = fetchFromGitHub {
owner = "dmitry-s93";
repo = "MControlCenter";
rev = finalAttrs.version;
hash = "sha256-SV78OVRGzy2zFLT3xqeUtbjlh81Z97PVao18P3h/8dI=";
hash = "sha256-Gl+YnbUbwtwF2WHT39bIKh48qSIMe3fpzxgdvifR4DQ=";
};
postPatch = ''
@@ -39,14 +39,14 @@ stdenv.mkDerivation (finalAttrs: {
];
nativeBuildInputs = [
libsForQt5.wrapQtAppsHook
libsForQt5.qttools
qt6.wrapQtAppsHook
qt6.qttools
copyDesktopItems
cmake
];
buildInputs = [
libsForQt5.qtbase
qt6.qtbase
kmod
];
+2 -2
View File
@@ -16,13 +16,13 @@
stdenv.mkDerivation rec {
pname = "memorado";
version = "0.4";
version = "0.5";
src = fetchFromGitHub {
owner = "wbernard";
repo = "Memorado";
tag = version;
hash = "sha256-yWu2+VAa5FkpLs/KLI0lcNzFLGN/kiq6frtW8SHN+W4=";
hash = "sha256-HNZdWRATjSfMk0e99CERPuR891549+wS/WeA7XGFxto=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -9,17 +9,17 @@
rustPlatform.buildRustPackage rec {
pname = "mountpoint-s3";
version = "1.13.0";
version = "1.14.0";
src = fetchFromGitHub {
owner = "awslabs";
repo = "mountpoint-s3";
rev = "v${version}";
hash = "sha256-L0xVrADLWVH6r600XvxI5I+IghBSmpC6F93cIH/ejh8=";
hash = "sha256-QpJYpHow9/vEPrq82XtbDosGz8lqVB0cOPQmY7Dx78Q=";
fetchSubmodules = true;
};
cargoHash = "sha256-Uj6/ZDRaYq99gTwHqAX2c21LecC3LLkJXgCDQ+xEytE=";
cargoHash = "sha256-lyxuYrmmB1hQCR3fKEMXI69xYcubisRi/bc6M7hQl70=";
# thread 'main' panicked at cargo-auditable/src/collect_audit_data.rs:77:9:
# cargo metadata failure: error: none of the selected packages contains these features: libfuse3
+3 -3
View File
@@ -7,16 +7,16 @@
}:
buildGo123Module rec {
pname = "nak";
version = "0.9.1";
version = "0.10.1";
src = fetchFromGitHub {
owner = "fiatjaf";
repo = "nak";
tag = "v${version}";
hash = "sha256-qfTqzsjRQXrLsL6+qXu2AacDmWbEMH6M1kgSPV3Eodg=";
hash = "sha256-nIqmQVLGe6iqgnz0QuCgLTPT0TsL5QUMqxBQGXq13QE=";
};
vendorHash = "sha256-zM9VFLD1CNI9UPvB+ow8KBUDCyoARUqLjumhvWfJvVA=";
vendorHash = "sha256-Gt/HG3iRoz9nDBX8C8XUZ0FTic1cl2c5cVkxUG9ngwY=";
ldflags = [
"-s"
+2 -2
View File
@@ -5,7 +5,7 @@
}:
let
pname = "nuclear";
version = "0.6.41";
version = "0.6.42";
src = fetchurl {
# Nuclear currenntly only publishes AppImage releases for x86_64, which is hardcoded in
@@ -13,7 +13,7 @@ let
# provide more arches, we should use stdenv.hostPlatform to determine the arch and choose
# source URL accordingly.
url = "https://github.com/nukeop/nuclear/releases/download/v${version}/${pname}-v${version}-x86_64.AppImage";
hash = "sha256-hPnFz3cQMQj8EzwqC8bNYf2MidBbLUa8U3I+vQbWpcE=";
hash = "sha256-95Q8TEn2gvJu75vgDdzSYH/1ci3BlidQ5nKA53fas6U=";
};
appimageContents = appimageTools.extract { inherit pname version src; };
+3 -3
View File
@@ -8,13 +8,13 @@
buildGoModule {
pname = "packwiz";
version = "0-unstable-2024-10-15";
version = "0-unstable-2025-01-19";
src = fetchFromGitHub {
owner = "packwiz";
repo = "packwiz";
rev = "0626c00149a8d9a5e9f76e5640e7b8b95c064350";
sha256 = "sha256-eAGfLUcyjDR2oJjLK3+DiuICTqoOcIwO5wL350w6vGw=";
rev = "241f24b550f6fe838913a56bdd58bac2fc53254a";
sha256 = "sha256-VmNsWzsFVNRciNIPUXUVos4cBdpawgN1/nPwMjNpx+0=";
};
passthru.updateScript = unstableGitUpdater { };
+2 -2
View File
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "podman-tui";
version = "1.3.0";
version = "1.3.1";
src = fetchFromGitHub {
owner = "containers";
repo = "podman-tui";
rev = "v${version}";
hash = "sha256-3AgPt7dRZaHrM4/y35Z5elBFq1b2ZhvwBd4CKNBbgTk=";
hash = "sha256-IO2y+im6QQ6krgYBiFxv9FSU4X6Y+s8/y5/piE1HDSo=";
};
vendorHash = null;
+3 -3
View File
@@ -7,13 +7,13 @@
buildGoModule rec {
pname = "popeye";
version = "0.21.6";
version = "0.21.7";
src = fetchFromGitHub {
rev = "v${version}";
owner = "derailed";
repo = "popeye";
sha256 = "sha256-CX30/AzHFtHhctvLIgRNDBvrXuNUXfz2xLoBY5zIWPo=";
sha256 = "sha256-8X/L9je5TaxSx/RtPQlO/6CKd+zUIxFBfTDrNZAA2fU=";
};
ldflags = [
@@ -23,7 +23,7 @@ buildGoModule rec {
"-X github.com/derailed/popeye/cmd.commit=${version}"
];
vendorHash = "sha256-YvIINp81XPMbSLCDhK9i+I4hfVXPWH19EeVXYhEXbs8=";
vendorHash = "sha256-JX9afHS76kUkOdIZZP44UjcZt69YqzW/S1JKhGxLVOw=";
nativeBuildInputs = [ installShellFiles ];
+2 -1
View File
@@ -25,7 +25,8 @@ let
inherit src version;
pname = "portmod-rust";
cargoHash = "sha256-sAjgGVVjgXaWbmN/eGEvatYjkHeFTZNX1GXFcJqs3GI=";
useFetchCargoVendor = true;
cargoHash = "sha256-a6brse/qXzO7H46zUrOJzyOicKPiKGISp2VhdxAVUUI=";
nativeBuildInputs = [
python3Packages.python
@@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation {
pname = "roddhjav-apparmor-rules";
version = "0-unstable-2025-01-12";
version = "0-unstable-2025-01-25";
src = fetchFromGitHub {
owner = "roddhjav";
repo = "apparmor.d";
rev = "f1182b27bb64a3bf44e92a4bafb58178ebfbf5ac";
hash = "sha256-3Ofv7Eam2/CXRNM84E0H97RrLWQEzDeSM6wYykzlLAM=";
rev = "de690ab878200fe0727571aeb97ff06d08323a64";
hash = "sha256-nV8RgielAjYqOGZ/5SpGOupsb770jnrehTn0S1R3hQ4=";
};
dontConfigure = true;
+2 -2
View File
@@ -6,13 +6,13 @@
python3Packages.buildPythonApplication rec {
pname = "rpl";
version = "1.16";
version = "1.16.1";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-uBpzKYfdGu2j1ZEaw4TN1fH+W9VLrJf7a87vzZBBU3Y=";
hash = "sha256-VTm4KU59Yk501tUdVn4z3bFx9Ot00CDL9HGlf44/t44=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -6,13 +6,13 @@
buildGoModule rec {
pname = "rqlite";
version = "8.36.5";
version = "8.36.8";
src = fetchFromGitHub {
owner = "rqlite";
repo = pname;
rev = "v${version}";
sha256 = "sha256-T5pyec+sS3hBlQTUevIP3v8vlxZEFMSFN7doJliTUCg=";
sha256 = "sha256-fyhBKSPE9vAMe1g7IOjrk8u3+KhMgtVrwKRZA+DsGik=";
};
vendorHash = "sha256-+otWcVUAqO2e9v+4T5QTw2DOVfDUGu6hP/1/6LO21nY=";
+3 -3
View File
@@ -18,14 +18,14 @@
stdenv.mkDerivation rec {
pname = "sbt-extras";
rev = "408f74841b90169a7f674955389212e2d02f7f4d";
version = "2024-09-28";
rev = "e16dab993203b611b9592ddae7b8822a68ae16ec";
version = "2024-11-06";
src = fetchFromGitHub {
owner = "paulp";
repo = "sbt-extras";
inherit rev;
sha256 = "2iXNs2Ks54Gj6T6PR5AtWrmR9uUxgFScAfek2v+qdTo=";
sha256 = "Z9bN+gmWiomWnp94pMXf5+Bksl6OejIPbYUGfVrDxJQ=";
};
dontBuild = true;
+2 -2
View File
@@ -37,7 +37,7 @@
stdenv.mkDerivation rec {
pname = "slurm";
version = "24.11.0.1";
version = "24.11.1.1";
# N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
# because the latter does not keep older releases.
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
repo = "slurm";
# The release tags use - instead of .
rev = "${pname}-${builtins.replaceStrings [ "." ] [ "-" ] version}";
hash = "sha256-waUCyzLCK3NRp8DfkvzWjGjzlB1MIZ7N9X+nfjrdAFY=";
hash = "sha256-0Vev64P0nx0M/fW4XOX/bR92RJNBuQyWggaNeoE6SN0=";
};
outputs = [
+13 -8
View File
@@ -3,21 +3,22 @@
buildGo122Module,
fetchFromGitHub,
installShellFiles,
versionCheckHook,
nix-update-script,
}:
buildGo122Module rec {
pname = "sops";
version = "3.9.3";
version = "3.9.4";
src = fetchFromGitHub {
owner = "getsops";
repo = pname;
tag = "v${version}";
hash = "sha256-U8ZJktOSj0JJ70CbXDS3FpNmk07cKnco5w2rt4BnQBU=";
hash = "sha256-w2RMK1Fl/k8QXV68j0Kc6shtx4vQa07RCnpgHLM8c8Q=";
};
vendorHash = "sha256-+UxngJgKG+gAjnXXEcdXPXQqRcMfRDn4wPeR1IhltC0=";
vendorHash = "sha256-wxmSj3QaFChGE+/2my7Oe2mhprwi404izUxteecyggY=";
postPatch = ''
substituteInPlace go.mod \
@@ -32,8 +33,6 @@ buildGo122Module rec {
"-X github.com/getsops/sops/v3/version.Version=${version}"
];
passthru.updateScript = nix-update-script { };
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
@@ -41,15 +40,21 @@ buildGo122Module rec {
installShellCompletion --cmd sops --zsh ${./zsh_autocomplete}
'';
meta = with lib; {
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://getsops.io/";
description = "Simple and flexible tool for managing secrets";
changelog = "https://github.com/getsops/sops/blob/v${version}/CHANGELOG.rst";
mainProgram = "sops";
maintainers = with maintainers; [
maintainers = with lib.maintainers; [
Scrumplex
mic92
];
license = licenses.mpl20;
license = lib.licenses.mpl20;
};
}
+20 -1
View File
@@ -14,6 +14,10 @@
soapysdr-with-plugins,
libbladeRF,
zeromq,
enableAvx ? stdenv.hostPlatform.avxSupport,
enableAvx2 ? stdenv.hostPlatform.avx2Support,
enableFma ? stdenv.hostPlatform.fmaSupport,
enableAvx512 ? stdenv.hostPlatform.avx512Support,
}:
stdenv.mkDerivation rec {
@@ -27,6 +31,11 @@ stdenv.mkDerivation rec {
sha256 = "sha256-3cQMZ75I4cyHpik2d/eBuzw7M4OgbKqroCddycw4uW8=";
};
outputs = [
"out"
"dev"
];
nativeBuildInputs = [
cmake
pkg-config
@@ -45,7 +54,17 @@ stdenv.mkDerivation rec {
zeromq
];
cmakeFlags = [ "-DENABLE_WERROR=OFF" ];
cmakeFlags = [
"-DENABLE_WERROR=OFF"
(lib.cmakeBool "ENABLE_AVX" enableAvx)
(lib.cmakeBool "ENABLE_AVX2" enableAvx2)
(lib.cmakeBool "ENABLE_FMA" enableFma)
(lib.cmakeBool "ENABLE_AVX512" enableAvx512)
];
postInstall = lib.optionalString (!stdenv.hostPlatform.isStatic) ''
rm $out/lib/*.a
'';
meta = with lib; {
homepage = "https://www.srslte.com/";
+122 -35
View File
@@ -1,50 +1,137 @@
{
buildGoModule,
fetchFromGitHub,
fetchYarnDeps,
lib,
nixosTests,
nodejs,
stash,
stdenv,
fetchurl,
testers,
yarnBuildHook,
yarnConfigHook,
}:
let
version = "0.25.1";
sources = {
x86_64-linux = {
url = "https://github.com/stashapp/stash/releases/download/v${version}/stash-linux";
hash = "sha256-Rb4x6iKx6T9NPuWWDbNaz+35XPzLqZzSm0psv+k2Gw4=";
};
aarch64-linux = {
url = "https://github.com/stashapp/stash/releases/download/v${version}/stash-linux-arm64v8";
hash = "sha256-6qPyIYKFkhmBNO47w9E91FSKlByepBOnl0MNJighGSc=";
};
x86_64-darwin = {
url = "https://github.com/stashapp/stash/releases/download/v${version}/stash-macos";
hash = "sha256-W8+rgqWUDTOB8ykGO2GL9tKEjaDXdx9LpFg0TAtJsxM=";
};
};
in
stdenv.mkDerivation (finalAttrs: {
inherit version;
inherit (lib.importJSON ./version.json)
gitHash
srcHash
vendorHash
version
yarnHash
;
pname = "stash";
src = fetchurl { inherit (sources.${stdenv.system}) url hash; };
src = fetchFromGitHub {
owner = "stashapp";
repo = "stash";
tag = "v${version}";
hash = srcHash;
};
dontUnpack = true;
frontend = stdenv.mkDerivation (final: {
inherit version;
pname = "${pname}-ui";
src = "${src}/ui/v2.5";
installPhase = ''
runHook preInstall
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${final.src}/yarn.lock";
hash = yarnHash;
};
install -Dm755 $src $out/bin/stash
nativeBuildInputs = [
yarnConfigHook
yarnBuildHook
# Needed for executing package.json scripts
nodejs
];
runHook postInstall
postPatch = ''
substituteInPlace codegen.ts \
--replace-fail "../../graphql/" "${src}/graphql/"
'';
buildPhase = ''
runHook preBuild
export HOME=$(mktemp -d)
export VITE_APP_DATE='1970-01-01 00:00:00'
export VITE_APP_GITHASH=${gitHash}
export VITE_APP_STASH_VERSION=v${version}
export VITE_APP_NOLEGACY=true
yarn --offline run gqlgen
yarn --offline build
mv build $out
runHook postBuild
'';
dontInstall = true;
dontFixup = true;
});
in
buildGoModule {
inherit
pname
src
version
vendorHash
;
ldflags = [
"-s"
"-w"
"-X 'github.com/stashapp/stash/internal/build.buildstamp=1970-01-01 00:00:00'"
"-X 'github.com/stashapp/stash/internal/build.githash=${gitHash}'"
"-X 'github.com/stashapp/stash/internal/build.version=v${version}'"
"-X 'github.com/stashapp/stash/internal/build.officialBuild=false'"
];
tags = [
"sqlite_stat4"
"sqlite_math_functions"
];
subPackages = [ "cmd/stash" ];
preBuild = ''
cp -a ${frontend} ui/v2.5/build
# `go mod tidy` requires internet access and does nothing
echo "skip_mod_tidy: true" >> gqlgen.yml
# remove `-trimpath` fron `GOFLAGS` because `gqlgen` does not work with it
GOFLAGS="''${GOFLAGS/-trimpath/}" go generate ./cmd/stash
'';
meta = with lib; {
description = "Stash is a self-hosted porn app";
homepage = "https://github.com/stashapp/stash";
license = licenses.agpl3Only;
maintainers = with maintainers; [ Golo300 ];
platforms = builtins.attrNames sources;
mainProgram = "stash";
strictDeps = true;
passthru = {
inherit frontend;
updateScript = ./update.py;
tests = {
inherit (nixosTests) stash;
version = testers.testVersion {
package = stash;
version = "v${version} (${gitHash}) - Unofficial Build - 1970-01-01 00:00:00";
};
};
};
})
meta = {
mainProgram = "stash";
description = "Organizer for your adult videos/images";
license = lib.licenses.agpl3Only;
homepage = "https://stashapp.cc/";
changelog = "https://github.com/stashapp/stash/blob/v${version}/ui/v2.5/src/docs/en/Changelog/v${lib.versions.major version}${lib.versions.minor version}0.md";
maintainers = with lib.maintainers; [
Golo300
DrakeTDL
];
platforms = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
};
}
+82
View File
@@ -0,0 +1,82 @@
#! /usr/bin/env nix-shell
#! nix-shell -i python3 -p python3 prefetch-yarn-deps nix-prefetch-git nix-prefetch
from pathlib import Path
from shutil import copyfile
from urllib.request import Request, urlopen
import json
import os
import subprocess
def run_external(args: list[str]):
proc = subprocess.run(
args,
check=True,
stdout=subprocess.PIPE,
)
return proc.stdout.strip().decode("utf8")
def get_latest_release_tag():
req = Request("https://api.github.com/repos/stashapp/stash/tags?per_page=1")
if "GITHUB_TOKEN" in os.environ:
req.add_header("authorization", f"Bearer {os.environ['GITHUB_TOKEN']}")
with urlopen(req) as resp:
return json.loads(resp.read())[0]
def prefetch_github(rev: str):
print(f"Prefetching stashapp/stash({rev})")
proc = run_external(["nix-prefetch-git", "--no-deepClone", "--rev", rev, f"https://github.com/stashapp/stash"])
return json.loads(proc)
def prefetch_yarn(lock_file: str):
print(f"Prefetching yarn deps")
hash = run_external(["prefetch-yarn-deps", lock_file])
return run_external(["nix", "hash", "convert", "--hash-algo", "sha256", hash])
def prefetch_go_modules(src: str, version: str):
print(f"Prefetching go modules")
expr = fr"""
{{ sha256 }}: (buildGoModule {{
pname = "stash";
src = {src};
version = "{version}";
vendorHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
}}).goModules.overrideAttrs (_: {{ modSha256 = sha256; }})
"""
return run_external([
"nix-prefetch",
"--option",
"extra-experimental-features",
"flakes",
expr
])
def save_version_json(version: dict[str, str]):
print("Writing version.json")
with open(Path(__file__).parent / "version.json", 'w') as f:
json.dump(version, f, indent=2)
f.write("\n")
if __name__ == "__main__":
release = get_latest_release_tag()
src = prefetch_github(release['name'])
yarn_hash = prefetch_yarn(f"{src['path']}/ui/v2.5/yarn.lock")
save_version_json({
"version": release["name"][1:],
"gitHash": release["commit"]["sha"][:8],
"srcHash": src["hash"],
"yarnHash": yarn_hash,
"vendorHash": prefetch_go_modules(src["path"], release["name"][1:])
})
+7
View File
@@ -0,0 +1,7 @@
{
"version": "0.27.2",
"gitHash": "76648fee",
"srcHash": "sha256-SMZBDKqgVdXf2abaSf/FuG2Vodav7SBu6onjHFZIZIM=",
"yarnHash": "sha256-ufGYQfEbcXO3XhpDQ3UTofS5B31L427KWy5NPbWhBJo=",
"vendorHash": "sha256-ZtKKs0JCEe4OpPulO74qYTYrZu2Ds3prWp5N8UP6z0g="
}
+3 -3
View File
@@ -6,16 +6,16 @@
buildGoModule rec {
pname = "tlsx";
version = "1.1.8";
version = "1.1.9";
src = fetchFromGitHub {
owner = "projectdiscovery";
repo = "tlsx";
tag = "v${version}";
hash = "sha256-AQiwHNHfwOJYIEsFm2YiksdTUxp5vkCL80rpvxHY2rA=";
hash = "sha256-u83hPmmiXH7SGCyINkHFrjNDLanwJLf0o9ZyceQeSg0=";
};
vendorHash = "sha256-KNyB+xK7TUf7XoVX/4xBTnG2lMMPVV5AOoUNi4aA/cM=";
vendorHash = "sha256-NF05vVLBRlWQpmTfrNEjnvH7kZMhgY73xmSgTZ8FGmo=";
ldflags = [
"-s"
+6 -4
View File
@@ -7,21 +7,23 @@
buildGo123Module rec {
pname = "traefik";
version = "3.2.2";
version = "3.3.2";
# Archive with static assets for webui
src = fetchzip {
url = "https://github.com/traefik/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz";
hash = "sha256-DTgpoJvk/rxzMAIBgKJPT70WW8W/aBhOEoyw3cK+JrM=";
hash = "sha256-7qS+rOBYDyYI8t0rVNmM0sJjGSdtIVelaIJuW1jaL+g=";
stripRoot = false;
};
vendorHash = "sha256-+sL0GJhWMlFdNEsRdgRJ42aGedOfn76gg70wH6/a+qQ=";
vendorHash = "sha256-9WuhQjl+lWRZBvEP8qjBQUbEQC1SG9J+3xNpmIieOo8=";
subPackages = [ "cmd/traefik" ];
env.CGO_ENABLED = 0;
preBuild = ''
GOOS= GOARCH= CGO_ENABLED=0 go generate
GOOS= GOARCH= go generate
CODENAME=$(grep -Po "CODENAME \?=\s\K.+$" Makefile)
+2 -2
View File
@@ -7,11 +7,11 @@
appimageTools.wrapType2 rec {
pname = "tutanota-desktop";
version = "259.241223.2";
version = "259.250108.1";
src = fetchurl {
url = "https://github.com/tutao/tutanota/releases/download/tutanota-desktop-release-${version}/tutanota-desktop-linux.AppImage";
hash = "sha256-VeAXOCdvy9liCJBNMdPc6iIeuOutqQ9sShc4XytApH4=";
hash = "sha256-VXHhN+6k1Jd/4tPxxLwXNYYPjpl+yBn8gRDLlfvCS4g=";
};
extraPkgs = pkgs: [ pkgs.libsecret ];
+2 -2
View File
@@ -7,13 +7,13 @@
buildGoModule rec {
pname = "unpoller";
version = "2.14.0";
version = "2.14.1";
src = fetchFromGitHub {
owner = "unpoller";
repo = "unpoller";
rev = "v${version}";
hash = "sha256-2yDrnBi5ZaFfgpqZS1PZM3Fp3zqb5oMuMbsoAeZan8o=";
hash = "sha256-x3Uboa6bs59LafEF9/aYmudo9JIh3KIMNdLJRimcmxY=";
};
vendorHash = "sha256-ZylkCictJNJ/QrWEbBIXDEKElpZRw2Yrj/IHMx0lqg0=";
+3 -3
View File
@@ -14,19 +14,19 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vencord";
version = "1.10.9";
version = "1.11.2";
src = fetchFromGitHub {
owner = "Vendicated";
repo = "Vencord";
rev = "v${finalAttrs.version}";
hash = "sha256-sU2eJUUw7crvzMGGBQP6rbxISkL+S5nmT3QspyYXlRQ=";
hash = "sha256-18CzWAcBotIdzXFPIptBo20KZxXDVhM7AwwlCnPz+Wk=";
};
pnpmDeps = pnpm_9.fetchDeps {
inherit (finalAttrs) pname src;
hash = "sha256-vVzERis1W3QZB/i6SQR9dQR56yDWadKWvFr+nLTQY9Y=";
hash = "sha256-ZUwtNtOmxjhOBpYB7vuytunGBRSuVxdlQsceRmeyhhI=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -21,11 +21,11 @@
stdenv.mkDerivation rec {
pname = "vintagestory";
version = "1.19.8";
version = "1.20.3";
src = fetchurl {
url = "https://cdn.vintagestory.at/gamefiles/stable/vs_client_linux-x64_${version}.tar.gz";
hash = "sha256-R6J+ACYDQpOzJZFBizsQGOexR7lMyeoZqz9TnWxfwyM=";
hash = "sha256-+nEyFlLfTAOmd8HrngZOD1rReaXCXX/ficE/PCLcewg=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec {
pname = "wayidle";
version = "0.2.0";
version = "1.0.0";
src = fetchFromSourcehut {
owner = "~whynothugo";
repo = "wayidle";
rev = "v${version}";
hash = "sha256-7hFk/YGOQ5+gQy6pT5DRgMLThQ1vFAvUvdHekTyzIRU=";
hash = "sha256-DgsktRIGWswSBYeij5OL4nJwWaURv+v+qzOdZnLKG/E=";
};
cargoHash = "sha256-PohfLmUoK+2a7Glnje4Rbym2rvzydUJAYW+edOj7qeo=";
cargoHash = "sha256-fJXI2y+kUIAwW6QrMf/T/2N6v/OY9BD3g9oXwB7U4so=";
meta = with lib; {
description = "Execute a program when a Wayland compositor reports being N seconds idle";
+199
View File
@@ -0,0 +1,199 @@
{
lib,
stdenv,
cmake,
apple-sdk_11,
ninja,
fetchFromGitHub,
SDL2,
wget,
which,
autoAddDriverRunpath,
makeWrapper,
metalSupport ? stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64,
coreMLSupport ? stdenv.hostPlatform.isDarwin && false, # FIXME currently broken
config,
cudaSupport ? config.cudaSupport,
cudaPackages ? { },
rocmSupport ? config.rocmSupport,
rocmPackages ? { },
rocmGpuTargets ? builtins.concatStringsSep ";" rocmPackages.clr.gpuTargets,
vulkanSupport ? false,
shaderc,
vulkan-headers,
vulkan-loader,
withSDL ? true,
}:
assert metalSupport -> stdenv.hostPlatform.isDarwin;
assert coreMLSupport -> stdenv.hostPlatform.isDarwin;
let
# It's necessary to consistently use backendStdenv when building with CUDA support,
# otherwise we get libstdc++ errors downstream.
# cuda imposes an upper bound on the gcc version, e.g. the latest gcc compatible with cudaPackages_11 is gcc11
effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else stdenv;
inherit (lib)
cmakeBool
cmakeFeature
optional
optionals
optionalString
forEach
;
darwinBuildInputs = [ apple-sdk_11 ];
cudaBuildInputs = with cudaPackages; [
cuda_cccl # <nv/target>
# A temporary hack for reducing the closure size, remove once cudaPackages
# have stopped using lndir: https://github.com/NixOS/nixpkgs/issues/271792
cuda_cudart
libcublas
];
rocmBuildInputs = with rocmPackages; [
clr
hipblas
rocblas
];
vulkanBuildInputs = [
shaderc
vulkan-headers
vulkan-loader
];
in
effectiveStdenv.mkDerivation (finalAttrs: {
pname = "whisper-cpp";
version = "1.7.2";
src = fetchFromGitHub {
owner = "ggerganov";
repo = "whisper.cpp";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-y30ZccpF3SCdRGa+P3ddF1tT1KnvlI4Fexx81wZxfTk=";
};
# The upstream download script tries to download the models to the
# directory of the script, which is not writable due to being
# inside the nix store. This patch changes the script to download
# the models to the current directory of where it is being run from.
patches = [ ./download-models.patch ];
postPatch = ''
for target in examples/{bench,command,main,quantize,server,stream,talk}/CMakeLists.txt; do
if ! grep -q -F 'install('; then
echo 'install(TARGETS ''${TARGET} RUNTIME)' >> $target
fi
done
'';
nativeBuildInputs =
[
cmake
ninja
which
makeWrapper
]
++ lib.optionals cudaSupport [
cudaPackages.cuda_nvcc
autoAddDriverRunpath
];
buildInputs =
optional withSDL SDL2
++ optionals effectiveStdenv.hostPlatform.isDarwin darwinBuildInputs
++ optionals cudaSupport cudaBuildInputs
++ optionals rocmSupport rocmBuildInputs
++ optionals vulkanSupport vulkanBuildInputs;
cmakeFlags =
[
(cmakeBool "WHISPER_BUILD_EXAMPLES" true)
(cmakeBool "GGML_CUDA" cudaSupport)
(cmakeBool "GGML_HIPBLAS" rocmSupport)
(cmakeBool "GGML_VULKAN" vulkanSupport)
(cmakeBool "WHISPER_SDL2" withSDL)
(cmakeBool "GGML_LTO" true)
(cmakeBool "GGML_NATIVE" false)
(cmakeBool "BUILD_SHARED_LIBS" (!effectiveStdenv.hostPlatform.isStatic))
]
++ optionals (effectiveStdenv.hostPlatform.isx86 && !effectiveStdenv.hostPlatform.isStatic) [
(cmakeBool "GGML_BACKEND_DL" true)
(cmakeBool "GGML_CPU_ALL_VARIANTS" true)
]
++ optionals cudaSupport [
(cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cudaPackages.flags.cmakeCudaArchitecturesString)
]
++ optionals rocmSupport [
(cmakeFeature "CMAKE_C_COMPILER" "hipcc")
(cmakeFeature "CMAKE_CXX_COMPILER" "hipcc")
# Build all targets supported by rocBLAS. When updating search for TARGET_LIST_ROCM
# in https://github.com/ROCmSoftwarePlatform/rocBLAS/blob/develop/CMakeLists.txt
# and select the line that matches the current nixpkgs version of rocBLAS.
"-DAMDGPU_TARGETS=${rocmGpuTargets}"
]
++ optionals coreMLSupport [
(cmakeBool "WHISPER_COREML" true)
(cmakeBool "WHISPER_COREML_ALLOW_FALLBACK" true)
]
++ optionals metalSupport [
(cmakeFeature "CMAKE_C_FLAGS" "-D__ARM_FEATURE_DOTPROD=1")
(cmakeBool "GGML_METAL" true)
(cmakeBool "GGML_METAL_EMBED_LIBRARY" true)
];
postInstall = ''
# Add "whisper-cpp" prefix before every command
mv -v $out/bin/{main,whisper-cpp}
for file in $out/bin/*; do
if [[ -x "$file" && -f "$file" && "$(basename $file)" != "whisper-cpp" ]]; then
mv -v "$file" "$out/bin/whisper-cpp-$(basename $file)"
fi
done
install -v -D -m755 $src/models/download-ggml-model.sh $out/bin/whisper-cpp-download-ggml-model
wrapProgram $out/bin/whisper-cpp-download-ggml-model \
--prefix PATH : ${lib.makeBinPath [ wget ]}
'';
requiredSystemFeatures = optionals rocmSupport [ "big-parallel" ]; # rocmSupport multiplies build time by the number of GPU targets, which takes arround 30 minutes on a 16-cores system to build
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
$out/bin/whisper-cpp --help >/dev/null
runHook postInstallCheck
'';
meta = {
description = "Port of OpenAI's Whisper model in C/C++";
longDescription = ''
To download the models as described in the project's readme, you may
use the `whisper-cpp-download-ggml-model` binary from this package.
'';
homepage = "https://github.com/ggerganov/whisper.cpp";
license = lib.licenses.mit;
mainProgram = "whisper-cpp";
platforms = lib.platforms.all;
broken = coreMLSupport;
badPlatforms = optionals cudaSupport lib.platforms.darwin;
maintainers = with lib.maintainers; [
dit7ya
hughobrien
aviallon
];
};
})
+2 -2
View File
@@ -5,12 +5,12 @@
}:
stdenv.mkDerivation rec {
version = "3.8";
version = "3.10";
pname = "xtermcontrol";
src = fetchurl {
url = "https://thrysoee.dk/xtermcontrol/xtermcontrol-${version}.tar.gz";
sha256 = "sha256-Vh6GNiDkjNhaD9U/3fG2LpMLN39L3jRUgG/FQeG1z40=";
sha256 = "sha256-Prl7HZ2KrhutT+LEHKOj27ENLWfmykWZqh9jGkBQPe4=";
};
meta = {
-1
View File
@@ -49,7 +49,6 @@ rustPlatform.buildRustPackage rec {
clang
];
cargoHash = "sha256-gZdLThmaeWVJXoeG7fuusfacgH2RNTHrqm8W0kqkqOY=";
cargoLock.lockFile = ./Cargo.lock;
# xtask doesn't support passing --target, but nix hooks expect the folder structure from when it's set
@@ -14,7 +14,7 @@ mkCoqDerivation {
with lib.versions;
lib.switch coq.version [
{
case = range "8.14" "8.20";
case = range "8.14" "9.0";
out = "20230107";
}
{
@@ -14,7 +14,7 @@ mkCoqDerivation {
with lib.versions;
lib.switch coq.version [
{
case = range "8.14" "8.20";
case = range "8.14" "9.0";
out = "1.8.5";
}
{
@@ -25,7 +25,7 @@ mkCoqDerivation {
[
{
cases = [
(range "8.17" "8.20")
(range "8.17" "9.0")
(range "1.3.1" "1.3.2")
];
out = "0.1.0";
@@ -4,7 +4,7 @@ mkCoqDerivation rec {
pname = "coq-ext-lib";
inherit version;
defaultVersion = with lib.versions; lib.switch coq.coq-version [
{ case = range "8.14" "8.20"; out = "0.13.0"; }
{ case = range "8.14" "9.0"; out = "0.13.0"; }
{ case = range "8.11" "8.19"; out = "0.12.0"; }
{ case = range "8.8" "8.16"; out = "0.11.6"; }
{ case = range "8.8" "8.14"; out = "0.11.4"; }
@@ -14,7 +14,7 @@ mkCoqDerivation rec {
defaultVersion =
with lib.versions;
lib.switch coq.version [
{ case = range "8.13" "8.20"; out = "5.2.0+20241009"; }
{ case = range "8.13" "9.0"; out = "5.2.0+20241009"; }
{ case = range "8.10" "8.16"; out = "4.0.0"; }
] null;
release."5.2.0+20241009".sha256 = "sha256-eg47YgnIonCq7XOUgh9uzoKsuFCvsOSTZhgFLNNcPD0=";
@@ -14,7 +14,7 @@ mkCoqDerivation {
with lib.versions;
lib.switch coq.version [
{
case = range "8.9" "8.20";
case = range "8.9" "9.0";
out = "20230107";
}
{
@@ -16,7 +16,7 @@ let
with lib.versions;
lib.switch coq.coq-version [
{
case = range "8.12" "8.20";
case = range "8.12" "9.0";
out = "20240715";
}
{
@@ -35,11 +35,11 @@ let
};
propagatedBuildInputs = [ stdlib ];
preBuild = "cd coq-menhirlib/src";
meta = with lib; {
meta = {
homepage = "https://gitlab.inria.fr/fpottier/menhir/-/tree/master/coq-menhirlib";
description = "A support library for verified Coq parsers produced by Menhir";
license = licenses.lgpl3Plus;
maintainers = with maintainers; [ ];
license = lib.licenses.lgpl3Plus;
maintainers = with lib.maintainers; [ damhiya ];
};
};
in
@@ -21,7 +21,7 @@ in
[
{
cases = [
(lib.versions.range "8.15" "8.20")
(lib.versions.range "8.15" "9.0")
lib.pred.true
];
out = "2.0.4";
@@ -14,7 +14,7 @@ mkCoqDerivation {
with lib.versions;
lib.switch coq.coq-version [
{
case = range "8.9" "8.20";
case = range "8.9" "9.0";
out = "20230107";
}
{
@@ -20,7 +20,7 @@ mkCoqDerivation {
with lib.versions;
lib.switch coq.coq-version [
{
case = range "8.14" "8.20";
case = range "8.14" "9.0";
out = "1.9";
}
{
@@ -13,6 +13,10 @@ mkCoqDerivation {
defaultVersion =
with lib.versions;
lib.switch coq.coq-version [
{
case = range "9.0" "9.0";
out = "9.0.0+rocq${coq.coq-version}";
}
{
case = range "8.13" "8.20";
out = "9.0.0+coq${coq.coq-version}";
@@ -23,6 +27,7 @@ mkCoqDerivation {
}
] null;
release."9.0.0+rocq9.0".sha256 = "sha256-ctnwpyNVhryEUA5YEsAImrcJsNMhtBgDSOz+z5Z4R78=";
release."9.0.0+coq8.20".sha256 = "sha256-pkvyDaMXRalc6Uu1eBTuiqTpRauRrzu946c6TavyTKY=";
release."9.0.0+coq8.19".sha256 = "sha256-02uL+qWbUveHe67zKfc8w3U0iN3X2DKBsvP3pKpW8KQ=";
release."9.0.0+coq8.18".sha256 = "sha256-vLeJ0GNKl4M84Uj2tAwlrxJOSR6VZoJQvdlDhxJRge8=";
@@ -17,7 +17,7 @@ mkCoqDerivation {
with lib.versions;
lib.switch coq.version [
{
case = range "8.14" "8.20";
case = range "8.14" "9.0";
out = "0.4.1";
}
{
@@ -21,6 +21,7 @@ default-elpi-version = if elpi-version != null then elpi-version else (
{ case = "8.18"; out = "1.18.1"; }
{ case = "8.19"; out = "1.18.1"; }
{ case = "8.20"; out = "1.19.2"; }
{ case = "9.0"; out = "2.0.7"; }
] { }
);
elpi = coq.ocamlPackages.elpi.override { version = default-elpi-version; };
@@ -34,6 +35,7 @@ derivation = mkCoqDerivation {
owner = "LPCIC";
inherit version;
defaultVersion = lib.switch coq.coq-version [
{ case = "9.0"; out = "2.4.0"; }
{ case = "8.20"; out = "2.2.0"; }
{ case = "8.19"; out = "2.0.1"; }
{ case = "8.18"; out = "2.0.0"; }
@@ -45,6 +47,7 @@ derivation = mkCoqDerivation {
{ case = "8.12"; out = "1.8.3_8.12"; }
{ case = "8.11"; out = "1.6.3_8.11"; }
] null;
release."2.4.0".sha256 = "sha256-W2+vVGExLLux8e0nSZESSoMVvrLxhL6dmXkb+JuKiqc=";
release."2.2.0".sha256 = "sha256-rADEoqTXM7/TyYkUKsmCFfj6fjpWdnZEOK++5oLfC/I=";
release."2.0.1".sha256 = "sha256-cuoPsEJ+JRLVc9Golt2rJj4P7lKltTrrmQijjoViooc=";
release."2.0.0".sha256 = "sha256-A/cH324M21k3SZ7+YWXtaYEbu6dZQq3K0cb1RMKjbsM=";
@@ -13,7 +13,7 @@ mkCoqDerivation rec {
with lib.versions;
lib.switch coq.coq-version [
{
case = range "8.10" "8.20";
case = range "8.10" "9.0";
out = "0.3.4";
}
] null;
@@ -17,7 +17,7 @@ mkCoqDerivation rec {
inherit (coq) src;
release."${coq.version}" = { };
defaultVersion = if lib.versions.isGe "8.14" coq.version then coq.version else null;
defaultVersion = if lib.versions.range "8.14" "8.20" coq.version then coq.version else null;
preConfigure = ''
patchShebangs dev/tools/
@@ -18,7 +18,7 @@ mkCoqDerivation {
[
{
cases = [
(range "8.17" "8.20")
(range "8.17" "9.0")
(isGe "2.0.0")
];
out = "0.2.1";
@@ -19,7 +19,7 @@
[
{
cases = [
(range "8.17" "8.20")
(range "8.17" "9.0")
(isGe "2.0.0")
];
out = "0.5.0";
@@ -26,7 +26,7 @@ mkCoqDerivation {
[
{
cases = [
(range "8.16" "8.20")
(range "8.16" "9.0")
(range "2.0" "2.3")
];
out = "2.2";
@@ -5,6 +5,7 @@ let hb = mkCoqDerivation {
owner = "math-comp";
inherit version;
defaultVersion = with lib.versions; lib.switch coq.coq-version [
{ case = range "9.0" "9.0"; out = "1.8.1"; }
{ case = range "8.19" "8.20"; out = "1.8.0"; }
{ case = range "8.18" "8.20"; out = "1.7.1"; }
{ case = range "8.16" "8.18"; out = "1.6.0"; }
@@ -14,6 +15,7 @@ let hb = mkCoqDerivation {
{ case = range "8.12" "8.13"; out = "1.1.0"; }
{ case = isEq "8.11"; out = "0.10.0"; }
] null;
release."1.8.1".sha256 = "sha256-Z0WAHDyycqgL+Le/zNfEAoLWzFb7WIL+3G3vEBExlb4=";
release."1.8.0".sha256 = "sha256-4s/4ZZKj5tiTtSHGIM8Op/Pak4Vp52WVOpd4l9m19fY=";
release."1.7.1".sha256 = "sha256-MCmOzMh/SBTFAoPbbIQ7aqd3hMcSMpAKpiZI7dbRaGs=";
release."1.7.0".sha256 = "sha256-WqSeuJhmqicJgXw/xGjGvbRzfyOK7rmkVRb6tPDTAZg=";
@@ -15,7 +15,7 @@ mkCoqDerivation rec {
with lib.versions;
lib.switch coq.coq-version [
{
case = range "8.19" "8.20";
case = range "8.19" "9.0";
out = "4.3.0";
}
{
@@ -19,7 +19,7 @@
in
lib.switch coq.coq-version [
{
case = range "8.14" "8.20";
case = range "8.14" "9.0";
out = "0.2.0";
}
{
@@ -24,10 +24,10 @@ mkCoqDerivation {
[
{
cases = [
(range "8.16" "8.20")
(range "8.16" "9.0")
(isGe "2.0")
];
out = "1.2.3";
out = "1.2.4";
}
{
cases = [
@@ -57,6 +57,7 @@ mkCoqDerivation {
release."1.1.1".sha256 = "sha256-5wItMeeTRoJlRBH3zBNc2VUZn6pkDde60YAvXTx+J3U=";
release."1.2.2".sha256 = "sha256-EU9RJGV3BvnmsX+mGH+6+MDXiGHgDI7aP5sIYiMUXTs=";
release."1.2.3".sha256 = "sha256-6uc1VEfDv+fExEfBR2c0/Q/KjrkX0TbEMCLgeYcpkls=";
release."1.2.4".sha256 = "sha256-BRxt0LGPz2u3kJRjcderaZqCfs8M8qKAAwNSWmIck7Q=";
propagatedBuildInputs = [
mathcomp-algebra
@@ -18,14 +18,15 @@ mkCoqDerivation {
release = {
"1.0.0".sha256 = "10g0gp3hk7wri7lijkrqna263346wwf6a3hbd4qr9gn8hmsx70wg";
"1.0.1".sha256 = "sha256:02f4dv4rz72liciwxb2k7acwx6lgqz4381mqyq5854p3nbyn06aw";
"1.0.2".sha256 = "sha256-fJ/5xr91VtvpIoaFwb3PlnKl6UHG6GEeBRVGZrVLMU0=";
};
inherit version;
defaultVersion =
with lib.versions;
lib.switch coq.version [
{
case = range "8.10" "8.20";
out = "1.0.1";
case = range "8.10" "9.0";
out = "1.0.2";
}
{
case = range "8.5" "8.14";

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