Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot] 2025-06-09 00:18:38 +00:00 committed by GitHub
commit 37e4b858c8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
44 changed files with 1759 additions and 710 deletions

View file

@ -3,17 +3,16 @@
let let
inherit (lib) inherit (lib)
attrNames attrNames
concatMapAttrs concatMap
concatMapStrings concatMapStrings
flip
forEach forEach
head head
listToAttrs listToAttrs
mkDefault mkDefault
mkOption mkOption
nameValuePair nameValuePair
optionalAttrs
optionalString optionalString
optionals
range range
toLower toLower
types types
@ -92,24 +91,23 @@ let
# interfaces, use the IP address corresponding to # interfaces, use the IP address corresponding to
# the first interface (i.e. the first network in its # the first interface (i.e. the first network in its
# virtualisation.vlans option). # virtualisation.vlans option).
networking.hosts = concatMapAttrs ( networking.extraHosts = flip concatMapStrings (attrNames nodes) (
name: config: m':
let let
config = nodes.${m'};
hostnames = hostnames =
[ optionalString (
"${config.networking.hostName}" config.networking.domain != null
] ) "${config.networking.hostName}.${config.networking.domain} "
++ optionals (config.networking.domain != null) [ + "${config.networking.hostName}\n";
"${config.networking.hostName}.${config.networking.domain}"
];
in in
optionalAttrs (config.networking.primaryIPAddress != "") { optionalString (
"${config.networking.primaryIPAddress}" = hostnames; config.networking.primaryIPAddress != ""
} ) "${config.networking.primaryIPAddress} ${hostnames}"
// optionalAttrs (config.networking.primaryIPv6Address != "") { + optionalString (config.networking.primaryIPv6Address != "") (
"${config.networking.primaryIPv6Address}" = hostnames; "${config.networking.primaryIPv6Address} ${hostnames}"
} )
) nodes; );
virtualisation.qemu.options = qemuOptions; virtualisation.qemu.options = qemuOptions;
boot.initrd.services.udev.rules = concatMapStrings (x: x + "\n") udevRules; boot.initrd.services.udev.rules = concatMapStrings (x: x + "\n") udevRules;

View file

@ -365,12 +365,9 @@ in
keyFile = mkDefault key; keyFile = mkDefault key;
trustedCaFile = mkDefault caCert; trustedCaFile = mkDefault caCert;
}; };
networking.hosts = mkIf (config.services.etcd.enable) { networking.extraHosts = mkIf (config.services.etcd.enable) ''
"127.0.0.1" = [ 127.0.0.1 etcd.${top.addons.dns.clusterDomain} etcd.local
"etcd.${top.addons.dns.clusterDomain}" '';
"etcd.local"
];
};
services.flannel = with cfg.certs.flannelClient; { services.flannel = with cfg.certs.flannelClient; {
kubeconfig = top.lib.mkKubeConfig "flannel" { kubeconfig = top.lib.mkKubeConfig "flannel" {

View file

@ -102,30 +102,16 @@ in
inherit (cfg) path; inherit (cfg) path;
preStart = '' preStart = ''
tmp="$(mktemp -d)" shopt -s nullglob
trap 'rm -rf "$tmp"' EXIT
cd "$tmp"
cp ${settingsFormat.generate "olivetin-config.yaml" cfg.settings} config.yaml tmp="$(mktemp)"
chmod +w config.yaml ${lib.getExe pkgs.yq-go} eval-all '. as $item ireduce ({}; . *+ $item)' \
for ((i=0; i < ${toString (lib.length cfg.extraConfigFiles)}; i++)); do ${settingsFormat.generate "olivetin-config.yaml" cfg.settings} \
${lib.getExe pkgs.yq} -yi ' $CREDENTIALS_DIRECTORY/config-*.yaml > "$tmp"
def merge($y): chmod -w "$tmp"
. as $x |
if ($x | type == "object") and ($y | type == "object") then
$x + $y + with_entries(select(.key | in($y)) | .key as $key | .value |= merge($y[$key]))
elif ($x | type == "array") and ($y | type == "array") then
$x + $y
else
$y
end;
merge($f | fromjson)
' config.yaml --rawfile f <(${lib.getExe pkgs.yq} -c . "$CREDENTIALS_DIRECTORY/config-$i.yaml")
done
chmod -w config.yaml
mkdir -p /run/olivetin/config mkdir -p /run/olivetin/config
mv config.yaml /run/olivetin/config/config.yaml mv "$tmp" /run/olivetin/config/config.yaml
''; '';
serviceConfig = { serviceConfig = {

View file

@ -70,12 +70,10 @@ in
# Rely on GCP's firewall instead # Rely on GCP's firewall instead
networking.firewall.enable = mkDefault false; networking.firewall.enable = mkDefault false;
networking.hosts = { # Configure default metadata hostnames
"169.254.169.254" = [ networking.extraHosts = ''
"metadata.google.internal" 169.254.169.254 metadata.google.internal metadata
"metadata" '';
];
};
networking.timeServers = [ "metadata.google.internal" ]; networking.timeServers = [ "metadata.google.internal" ];

View file

@ -1084,10 +1084,14 @@ in
) config.containers; ) config.containers;
# Generate /etc/hosts entries for the containers. # Generate /etc/hosts entries for the containers.
networking.hosts = lib.mapAttrs' (name: cfg: { networking.extraHosts = concatStrings (
name = head (splitString "/" cfg.localAddress); mapAttrsToList (
value = lib.optionals (cfg.localAddress != null) [ "${name}.containers" ]; name: cfg:
}) config.containers; optionalString (cfg.localAddress != null) ''
${head (splitString "/" cfg.localAddress)} ${name}.containers
''
) config.containers
);
networking.dhcpcd.denyInterfaces = [ networking.dhcpcd.denyInterfaces = [
"ve-*" "ve-*"

View file

@ -15315,6 +15315,19 @@ final: prev: {
meta.hydraPlatforms = [ ]; meta.hydraPlatforms = [ ];
}; };
unified-nvim = buildVimPlugin {
pname = "unified.nvim";
version = "2025-06-08";
src = fetchFromGitHub {
owner = "axkirillov";
repo = "unified.nvim";
rev = "0d8eebd3909b86ca30407d79b547a245185082c2";
sha256 = "1r3pdh3rhlkrp9ykzxwaqrfww87dpa6b72kfvxf3j24firl0m9nv";
};
meta.homepage = "https://github.com/axkirillov/unified.nvim/";
meta.hydraPlatforms = [ ];
};
unimpaired-nvim = buildVimPlugin { unimpaired-nvim = buildVimPlugin {
pname = "unimpaired.nvim"; pname = "unimpaired.nvim";
version = "2025-03-29"; version = "2025-03-29";

View file

@ -1175,6 +1175,7 @@ https://github.com/altermo/ultimate-autopair.nvim/,HEAD,
https://github.com/SirVer/ultisnips/,, https://github.com/SirVer/ultisnips/,,
https://github.com/mbbill/undotree/,, https://github.com/mbbill/undotree/,,
https://github.com/chrisbra/unicode.vim/,, https://github.com/chrisbra/unicode.vim/,,
https://github.com/axkirillov/unified.nvim/,HEAD,
https://github.com/afreakk/unimpaired-which-key.nvim/,HEAD, https://github.com/afreakk/unimpaired-which-key.nvim/,HEAD,
https://github.com/tummetott/unimpaired.nvim/,HEAD, https://github.com/tummetott/unimpaired.nvim/,HEAD,
https://github.com/unisonweb/unison/,, https://github.com/unisonweb/unison/,,

View file

@ -1,6 +1,6 @@
{ {
stdenv,
lib, lib,
stdenv,
fetchFromGitHub, fetchFromGitHub,
cmake, cmake,
pkg-config, pkg-config,
@ -8,7 +8,6 @@
qtbase, qtbase,
qtcharts, qtcharts,
qtmultimedia, qtmultimedia,
qtdeclarative,
qt5compat, qt5compat,
faad2, faad2,
rtl-sdr, rtl-sdr,
@ -17,25 +16,27 @@
fftwSinglePrec, fftwSinglePrec,
lame, lame,
mpg123, mpg123,
unixtools,
withFlac ? true, withFlac ? true,
flac, flac,
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "welle-io"; pname = "welle-io";
version = "2.5"; version = "2.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "AlbrechtL"; owner = "AlbrechtL";
repo = "welle.io"; repo = "welle.io";
rev = "v${version}"; tag = "v${finalAttrs.version}";
hash = "sha256-sSknzZiD9/MLyO+gAYopogOQu5HRcqaRcfqwq4Rld7A="; hash = "sha256-+xjwvxFrv++XF6Uhm/ZwkseuToz3LtqCfTD18GiwNyw=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
pkg-config pkg-config
wrapQtAppsHook wrapQtAppsHook
unixtools.xxd
]; ];
buildInputs = [ buildInputs = [
@ -70,4 +71,4 @@ stdenv.mkDerivation rec {
"i686-linux" "i686-linux"
] ++ lib.platforms.darwin; ] ++ lib.platforms.darwin;
}; };
} })

View file

@ -4,10 +4,8 @@
fetchFromGitHub, fetchFromGitHub,
installShellFiles, installShellFiles,
stdenv, stdenv,
buildPackages,
nix-update-script, nix-update-script,
testers, testers,
az-pim-cli,
}: }:
buildGoModule (finalAttrs: { buildGoModule (finalAttrs: {
pname = "az-pim-cli"; pname = "az-pim-cli";
@ -20,29 +18,37 @@ buildGoModule (finalAttrs: {
hash = "sha256-gf4VscHaUr3JtsJO5PAq1nyPeJxIwGPaiH/QdXKpvQ0="; hash = "sha256-gf4VscHaUr3JtsJO5PAq1nyPeJxIwGPaiH/QdXKpvQ0=";
}; };
patches = [
# removes info we don't have from version command
./version-build-info.patch
];
vendorHash = "sha256-PHrpUlAG/PBe3NKUGBQ1U7dCcqkSlErWX2dp9ZPB3+8="; vendorHash = "sha256-PHrpUlAG/PBe3NKUGBQ1U7dCcqkSlErWX2dp9ZPB3+8=";
nativeBuildInputs = [ nativeBuildInputs = [
installShellFiles installShellFiles
]; ];
postInstall = lib.optionalString (stdenv.hostPlatform.emulatorAvailable buildPackages) ( env.CGO_ENABLED = 0;
let
emulator = stdenv.hostPlatform.emulator buildPackages; ldflags = [
in "-s"
'' "-X github.com/netr0m/az-pim-cli/cmd.version=v${finalAttrs.version}"
installShellCompletion --cmd az-pim-cli \ ];
--bash <(${emulator} $out/bin/az-pim-cli completion bash) \
--fish <(${emulator} $out/bin/az-pim-cli completion fish) \ postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
--zsh <(${emulator} $out/bin/az-pim-cli completion zsh) installShellCompletion --cmd az-pim-cli \
'' --bash <($out/bin/az-pim-cli completion bash) \
); --fish <($out/bin/az-pim-cli completion fish) \
--zsh <($out/bin/az-pim-cli completion zsh)
'';
passthru = { passthru = {
updateScript = nix-update-script { }; updateScript = nix-update-script { };
tests.version = testers.testVersion { tests.version = testers.testVersion {
command = "HOME=$TMPDIR az-pim-cli --version"; command = "HOME=$TMPDIR az-pim-cli version";
package = az-pim-cli; package = finalAttrs.finalPackage;
version = "v${finalAttrs.version}";
}; };
}; };

View file

@ -0,0 +1,24 @@
diff --git a/cmd/version.go b/cmd/version.go
index 816f044..ef107be 100644
--- a/cmd/version.go
+++ b/cmd/version.go
@@ -31,8 +31,7 @@ type BuildInfo struct {
}
func (b BuildInfo) String() string {
- return fmt.Sprintf("az-pim-cli version %s (built with %s from %s on %s)",
- b.Version, b.GoVersion, b.Commit, b.Date)
+ return fmt.Sprintf("az-pim-cli version %s", b.Version)
}
func printVersion(w io.Writer, info BuildInfo) {
@@ -47,8 +46,8 @@ func createBuildInfo() BuildInfo {
Date: date,
}
- buildInfo, available := debug.ReadBuildInfo()
- if !available {
+ buildInfo, _ := debug.ReadBuildInfo()
+ if true {
return info
}

View file

@ -1,23 +1,28 @@
{ {
lib, lib,
stdenv, stdenv,
fetchurl, fetchFromGitLab,
bison, bison,
flex, flex,
makeWrapper, makeWrapper,
texinfo4,
getopt, getopt,
readline, readline,
texinfo,
texlive, texlive,
versionCheckHook,
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "eukleides"; pname = "eukleides";
version = "1.5.4"; version = "1.5.4";
src = fetchurl { src = fetchFromGitLab {
url = "http://www.eukleides.org/files/eukleides-${finalAttrs.version}.tar.bz2"; # official upstream www.eukleides.org is down
sha256 = "0s8cyh75hdj89v6kpm3z24i48yzpkr8qf0cwxbs9ijxj1i38ki0q"; domain = "salsa.debian.org";
owner = "georgesk";
repo = "eukleides";
rev = "upstream/${finalAttrs.version}";
hash = "sha256-keX7k14X/97zHh87A/7vUsfGc/S6fByd+rewW+LkJeM=";
}; };
patches = [ patches = [
@ -25,12 +30,14 @@ stdenv.mkDerivation (finalAttrs: {
./use-CC.patch ./use-CC.patch
# allow PostScript transparency in epstopdf call # allow PostScript transparency in epstopdf call
./gs-allowpstransparency.patch ./gs-allowpstransparency.patch
# fix curly brace escaping in eukleides.texi for newer texinfo compatiblity
./texinfo-escape.patch
]; ];
nativeBuildInputs = [ nativeBuildInputs = [
bison bison
flex flex
texinfo4 texinfo
makeWrapper makeWrapper
]; ];
@ -41,14 +48,14 @@ stdenv.mkDerivation (finalAttrs: {
preConfigure = '' preConfigure = ''
substituteInPlace Makefile \ substituteInPlace Makefile \
--replace mktexlsr true --replace-fail mktexlsr true
substituteInPlace doc/Makefile \ substituteInPlace doc/Makefile \
--replace ginstall-info install-info --replace-fail ginstall-info install-info
substituteInPlace Config \ substituteInPlace Config \
--replace '/usr/local' "$out" \ --replace-fail '/usr/local' "$out" \
--replace '$(SHARE_DIR)/texmf' "$tex" --replace-fail '$(SHARE_DIR)/texmf' "$tex"
''; '';
# Workaround build failure on -fno-common toolchains like upstream # Workaround build failure on -fno-common toolchains like upstream
@ -57,6 +64,13 @@ stdenv.mkDerivation (finalAttrs: {
# eukleides_build/quadrilateral.o:(.bss+0x18): first defined here # eukleides_build/quadrilateral.o:(.bss+0x18): first defined here
env.NIX_CFLAGS_COMPILE = "-fcommon"; env.NIX_CFLAGS_COMPILE = "-fcommon";
preBuild = ''
mkdir build/eukleides_build
mkdir build/euktopst_build
'';
enableParallelBuilding = true;
preInstall = '' preInstall = ''
mkdir -p $out/bin mkdir -p $out/bin
''; '';
@ -84,6 +98,10 @@ stdenv.mkDerivation (finalAttrs: {
pkgs = [ finalAttrs.finalPackage.tex ]; pkgs = [ finalAttrs.finalPackage.tex ];
}; };
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
meta = { meta = {
description = "Geometry Drawing Language"; description = "Geometry Drawing Language";
homepage = "http://www.eukleides.org/"; homepage = "http://www.eukleides.org/";

View file

@ -0,0 +1,19 @@
--- a/doc/eukleides.texi
+++ b/doc/eukleides.texi
@@ -6,12 +6,12 @@
% ------------------------------------------------------------------------------
-\def\LaTeX{L\kern-.34em\raise.49ex\hbox{\sevenrm A}\kern-.18em\TeX}
-\def\mdeg{$^\circ$}
+\def\LaTeX@{L\kern-.34em\raise.49ex\hbox@{\sevenrm A@}\kern-.18em\TeX@}
+\def\mdeg@{$^\circ$@}
\font\degfont=cmtt8
-\def\deg{\raise.7ex\hbox{\degfont o}}
-\def\exm#1{\noindent{\textit Example:}\quad{\texttt #1}}
-\def\exmp{\noindent{\textit Example:}}
+\def\deg@{\raise.7ex\hbox@{\degfont o@}@}
+\def\exm#1@{\noindent@{\textit Example:@}\quad@{\texttt #1@}@}
+\def\exmp@{\noindent@{\textit Example:@}@}
% ------------------------------------------------------------------------------

View file

@ -14,7 +14,7 @@
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
version = "1.36"; version = "1.37.1.2";
pname = "fakeroot"; pname = "fakeroot";
src = fetchFromGitLab { src = fetchFromGitLab {
@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
repo = "fakeroot"; repo = "fakeroot";
rev = "upstream/${finalAttrs.version}"; rev = "upstream/${finalAttrs.version}";
domain = "salsa.debian.org"; domain = "salsa.debian.org";
hash = "sha256-QNScrkX2Vffsj/I5EJO8qs5AHQ9b5s6nHLHQKUdRzLE="; hash = "sha256-2ihdvYRnv2wpZrEikP4hCdshY8Eqarqnw3s9HPb+xKU=";
}; };
patches = lib.optionals stdenv.hostPlatform.isLinux [ patches = lib.optionals stdenv.hostPlatform.isLinux [

View file

@ -0,0 +1,250 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://dl.google.com": {
"dl/android/maven2/com/android/tools#r8/8.2.33": {
"jar": "sha256-gMOaKLtmtk78Iy1orlVNWf44OICHOLT+WEiEaRyx5aM=",
"pom": "sha256-LgVrRdWEZxSbQSHxnpZpKdnMgFFpkrDKJKa/Y24aW+U="
}
},
"https://plugins.gradle.org/m2": {
"com/google/code/gson#gson-parent/2.9.1": {
"pom": "sha256-fKCEXnNoVhjePka9NDTQOko3PVIPq5OmgDGK1sjLKnk="
},
"com/google/code/gson#gson/2.9.1": {
"jar": "sha256-N4U04znm5tULFzb7Ort28cFdG+P0wTzsbVNkEuI9pgM=",
"pom": "sha256-5ZZjI9cUJXCzekvpeeIbwtroSBB+TcQW2PRNmqPwKQM="
},
"org/gradle/toolchains#foojay-resolver/0.7.0": {
"jar": "sha256-k2crR0Cg/b+7W68INT24rpqbsl9rEKk8B4EmxxfbOsA=",
"module": "sha256-7WdGoJ8yv63bkLApECrmIybiSBKaaLdGYqSkM9VTFLg=",
"pom": "sha256-iCa8+5Iq8MIR5BPTmwgWWRPAgwZkE+BzDNgrLgsKie4="
},
"org/gradle/toolchains/foojay-resolver-convention#org.gradle.toolchains.foojay-resolver-convention.gradle.plugin/0.7.0": {
"pom": "sha256-yKRD4vrvh28zijkSM8IKka1bg/acHGuiDTmns5EGJAo="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
},
"https://repo.maven.apache.org/maven2": {
"com/google/auto/value#auto-value-annotations/1.10.4": {
"jar": "sha256-4cRea+ra75eXyw2a/VpFYhrQYc2GMgEvhVgoU6OIeCU=",
"pom": "sha256-c6W4UV+F+IxAiff/SkPNF5Wkgf2rk/qQULE8+hqNJfc="
},
"com/google/auto/value#auto-value-parent/1.10.4": {
"pom": "sha256-vsOhnk3ci2QGZyMzzFBbngy2s1WLskIxSGm7bh1ojTA="
},
"com/google/code/findbugs#jsr305/3.0.2": {
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
},
"com/google/errorprone#error_prone_annotations/2.23.0": {
"jar": "sha256-7G858Gi2/5rDI8aOKLkpn4wKgMpRLcyx1KcPQKw+wFQ=",
"pom": "sha256-1auxfyMbY78Ak1j6ZAKBt0SBDLlYflmUl3g0lZwH29g="
},
"com/google/errorprone#error_prone_parent/2.23.0": {
"pom": "sha256-9UcKSzEE/jCfvpSoDRbDxU0g90j0xd5PaKQoaI8wy9Q="
},
"com/google/guava#failureaccess/1.0.2": {
"jar": "sha256-io+Bz5s1nj9t+mkaHndphcBh7y8iPJssgHU+G0WOgGQ=",
"pom": "sha256-GevG9L207bs9B7bumU+Ea1TvKVWCqbVjRxn/qfMdA7I="
},
"com/google/guava#guava-parent/26.0-android": {
"pom": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ="
},
"com/google/guava#guava-parent/33.0.0-android": {
"pom": "sha256-WvSDt4xJ3njEn67dKlh1J4SkTINj9eJeUuKXgUwJF3o="
},
"com/google/guava#guava/33.0.0-android": {
"module": "sha256-FVcraAtd/L75ZtASDmUEEpqMf79gCEXfNp2Tkxe4IDY=",
"pom": "sha256-0R72awjIAS/3aC4LC8tykykyRwpQnXJSgD/GIeLJZfY="
},
"com/google/guava#guava/33.0.0-jre": {
"jar": "sha256-9NhcPk1BFpQzfLhzq+oJskK2ZLsBMyC+YQUyfEWZFTc="
},
"com/google/guava#listenablefuture/9999.0-empty-to-avoid-conflict-with-guava": {
"jar": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=",
"pom": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s="
},
"com/google/j2objc#j2objc-annotations/2.8": {
"jar": "sha256-8CqV+hpele2z7YWf0Pt99wnRIaNSkO/4t03OKrf01u0=",
"pom": "sha256-N/h3mLGDhRE8kYv6nhJ2/lBzXvj6hJtYAMUZ1U2/Efg="
},
"com/google/truth#truth-parent/1.2.0": {
"pom": "sha256-Q8/2l2yxZ5ETlTWluYDpwTW8Fgxk7hGc/6qNHv9aquI="
},
"com/google/truth#truth/1.2.0": {
"jar": "sha256-tGEIQNXjffFOZqqwuEDA7j+l6Vl9o6KQIGQYcXHCM5o=",
"pom": "sha256-4snQPEXLKYR49KPOM37mXXsk+nVA/PSEy/OkvuQCuVo="
},
"junit#junit/4.13.2": {
"jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=",
"pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ="
},
"org/checkerframework#checker-qual/3.42.0": {
"jar": "sha256-zK7dM68LeJTZ8vO2RPTRnkOSjjKQLmGsTRB3eDD1qsc=",
"module": "sha256-4PpiK33mPq4RBH726RtMKtDx8OE8uQP/UggKR/V6V0Y=",
"pom": "sha256-v1/KqycvVMvPG753w72WPIIcmrrSBYcIvwvtPIdUlMo="
},
"org/hamcrest#hamcrest-core/1.3": {
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
},
"org/hamcrest#hamcrest-parent/1.3": {
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
},
"org/jetbrains#annotations/13.0": {
"jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=",
"pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
},
"org/jetbrains/intellij/deps#trove4j/1.0.20200330": {
"jar": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=",
"pom": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k="
},
"org/jetbrains/kotlin#kotlin-android-extensions/1.9.22": {
"jar": "sha256-Hl6IFkKpnduPbRPmmVoIwZK8OEGHOWZj2ER8CB2H4k8=",
"pom": "sha256-lEt8+zPgpvtoRVkEjwKMuWMmyTKiRdXLAhQ7zSwDEVk="
},
"org/jetbrains/kotlin#kotlin-build-common/1.9.22": {
"jar": "sha256-U8PcxTA/WQPmJgrqc+zMaTD5o276KhHNO9On5V32OWY=",
"pom": "sha256-KXxfSYoHdIPvic06cQzSt/LlrjgPOjrt+5xBvGI7E0A="
},
"org/jetbrains/kotlin#kotlin-build-tools-api/1.9.22": {
"jar": "sha256-3UnLfij08zgvUlDPsFyGT9XwqW0yZbspPHezCtzJP/Y=",
"pom": "sha256-DFZLu4fcXs32Q005buob886Xar8IgYCN0Wb6SbBGSfs="
},
"org/jetbrains/kotlin#kotlin-build-tools-impl/1.9.22": {
"jar": "sha256-G0jW3gQqUl9jtVdROuEmbWmTSCJbAT+UDjLGPeJolCg=",
"pom": "sha256-tWM/E0m+lcdHRuHimiqm51LoneGrmmUjSS85j6aVWN0="
},
"org/jetbrains/kotlin#kotlin-compiler-embeddable/1.9.22": {
"jar": "sha256-K/6t7lmrGYjDNtvW5l2ZH3Zq4d2Gg/Km3tX6oCefDKA=",
"pom": "sha256-s9o0u29ClqzzoPRDRm8FBsbJnaXNliTW4LdFsiKHhOs="
},
"org/jetbrains/kotlin#kotlin-compiler-runner/1.9.22": {
"jar": "sha256-c+x1u5nr/6iySiSjuFPz9mCWvEapNRrw2sk967acFes=",
"pom": "sha256-pO6KZ8HW8lODjAAnKAvLgFCsDc3MrZdIlhOKaaAX6wE="
},
"org/jetbrains/kotlin#kotlin-daemon-client/1.9.22": {
"jar": "sha256-XXPhgVsRZ+Sv4gjwCyp1wIC8WoEHhsqtuOFHh1k6k7k=",
"pom": "sha256-YsRKZZ2lXbb7El4pKbmNUEow4fSvgU4I5JIUJqpST4o="
},
"org/jetbrains/kotlin#kotlin-daemon-embeddable/1.9.22": {
"jar": "sha256-kqV4ExcUR9U0Rh+hP+N9yM07f4bYPpsfe7GwvjBUH4s=",
"pom": "sha256-9uo9z2v7Og0GmER8SKa88I2Oqs+D/JX+nUGBpeXjwrE="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-annotations/1.9.22": {
"jar": "sha256-lnaDy5jZkQFFYH+/W0VilbQ/Cq+Tsbunv2mS5zHLJOw=",
"pom": "sha256-Y7por+B4/3D3CPnpecaTxFv+iQQfeWQbC4H2tKEm7rs="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/1.9.22": {
"jar": "sha256-7P9nVGBlxg4JX7k7P4i5uS7R7cN+P+u8b57TVCL6QSs=",
"module": "sha256-H0SJxTBPmlEqVof/zAqvCTCvydcgUdOpBfrAcANi+3s=",
"pom": "sha256-ZAFewaGutVCqGCjCQuIoODDFD2g2TkCDH+FYj9wEEfU="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea-proto/1.9.22": {
"jar": "sha256-9dgu5hlmotmK364Z8k1hcwIsFUBIls3yNjQANe5owPU=",
"pom": "sha256-huMsqCkn2ogKHPNDpA7MIJgHXm/XInOzTVDfpUTzRjs="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea/1.9.22": {
"jar": "sha256-jRr4djLZUUjxIqn6CuKQPBnub6t9AeAX924NLJoCLCA=",
"module": "sha256-z+LCbjMPaAMsAD+lJMAx5aYPzo2Jn/8uQjFBKL60QCs=",
"pom": "sha256-3BSjKHVDun5QRs1OCVAtJ4hMqYfshwb1+xid54luOsw="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-model/1.9.22": {
"jar": "sha256-UQj61b4UmCXs46ABA8PCHPGv6VS7ZLhweJVyk511OMs=",
"module": "sha256-L/MBPfK6epteiwBOhIF1DI0PqVOtAHoZbYXSY2cdvq4=",
"pom": "sha256-gfUmlHml2X7oeSpITIMr495DgggSZxlhUAHKyI5C9qg="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin/1.9.22": {
"module": "sha256-pPRqwMq9jVzbaJ0tN9GdWFhPcIv59k/+TpgKL/dTS7U=",
"pom": "sha256-A3750tSupA9JKdglE1g+STwOBRVuDaix1/Ujurhobyc="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin/1.9.22/gradle82": {
"jar": "sha256-1OcY3V8wxrqTLZPM/FswFendPkQUOgUrh3Ao8frlQtw="
},
"org/jetbrains/kotlin#kotlin-gradle-plugins-bom/1.9.22": {
"module": "sha256-Qj401h0iCxoN3BgUCGqM6rTa2ed5ArDOjLRyG789xu0=",
"pom": "sha256-da2/XHjOJHwiuvNijQs/8c9+19N9YB66cwTXerdb3Z8="
},
"org/jetbrains/kotlin#kotlin-klib-commonizer-api/1.9.22": {
"jar": "sha256-jC9lQpwYLi5KLgnLkQ5iuW227tKFWUuPga+CO35ZROI=",
"pom": "sha256-EMrJcNMAo0icM/CzBBVv8DLZWVm+WqrDuIAoKtWGIv4="
},
"org/jetbrains/kotlin#kotlin-klib-commonizer-embeddable/1.9.22": {
"jar": "sha256-c/50PnTSEoPTg9C6voX9CMRCr8GnvYgIL42gUQ0FPUs=",
"pom": "sha256-dxghItppe2YqSRPX3Z/mu68ATOhH/YZ9oj6v8MTIJEs="
},
"org/jetbrains/kotlin#kotlin-native-utils/1.9.22": {
"jar": "sha256-eGwSfdVTXbLDmuWXzQsMrZ6RS4PiNvHbAlEjXMnGUqw=",
"pom": "sha256-EcUUwF7qOuno4Wq0l5bxEd9DxzSCMeNfr0xCjMT3Q+o="
},
"org/jetbrains/kotlin#kotlin-project-model/1.9.22": {
"jar": "sha256-zBHVwLGQnFsKCP0l7w51T/0r9Wyu9mX7eFEiI15UKhg=",
"pom": "sha256-659KFngb/ADM7IAw++XuIo5vKydxxQwmezIY/rAGW0A="
},
"org/jetbrains/kotlin#kotlin-reflect/1.6.10": {
"jar": "sha256-MnesECrheq0QpVq+x1/1aWyNEJeQOWQ0tJbnUIeFQgM=",
"pom": "sha256-V5BVJCdKAK4CiqzMJyg/a8WSWpNKBGwcxdBsjuTW1ak="
},
"org/jetbrains/kotlin#kotlin-script-runtime/1.9.22": {
"jar": "sha256-uAZwV59/ktRz2NWDTwsST3dVxFmP6UskQYOwKDSDRXQ=",
"pom": "sha256-/ra0ns9pEG1MEoXnH5ob2noSfO9oMC4+n9yCmKTjR5U="
},
"org/jetbrains/kotlin#kotlin-scripting-common/1.9.22": {
"jar": "sha256-+lAMvwNJQ++BJvPT3GWvCf+Z3//kTFCZtPwu1b8vXcc=",
"pom": "sha256-ROURI7DCfm/ZM/wma00Nrw8GhKYq7Z/mhC6Noz8qKz8="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/1.9.22": {
"jar": "sha256-Ij/shIMCNEmc1MeiPqHJLroSfEGzXZux1LYdJBVa6zU=",
"pom": "sha256-wWCPP7yyqfdSPq0zWZwurc5MgSFhqeBmufSwBa97Qxw="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/1.9.22": {
"jar": "sha256-OJkYFqKH/3YkHxp35/ERZIHU6To9tjJZplfd4g5tD2U=",
"pom": "sha256-gmccM6lXsuKoINZqaSwvzmPjvwR/HLJeb7A5HF3c8uc="
},
"org/jetbrains/kotlin#kotlin-scripting-jvm/1.9.22": {
"jar": "sha256-jRJ9dvz6BRfDbB6g4ijs4D1aRoJkKgH2R5prvccxKik=",
"pom": "sha256-cBJS6huo/4f8M0dqYePVxtnS3aQbqpiZTdaYDuE/vG0="
},
"org/jetbrains/kotlin#kotlin-stdlib/1.9.22": {
"jar": "sha256-ar4UbCeGQTi4dMzM/l9TTj65I8maG3tdRUlO5WlPPgo=",
"module": "sha256-9IIxS1B5wUVfb7DUJXp0XRAcYSTOlhUiuob53JCQHkc=",
"pom": "sha256-zOLxUoXsgHijd0a1cwigVAQt1cwlQgxD9zt4V8JGjwM="
},
"org/jetbrains/kotlin#kotlin-stdlib/1.9.22/all": {
"jar": "sha256-zsOLwzAucqiq+c3kNrWpBx7gMx4q0F6E2LuJczTX6dQ="
},
"org/jetbrains/kotlin#kotlin-tooling-core/1.9.22": {
"jar": "sha256-iTjrl+NjINqj5vsqYP0qBbIy/0pVcXPFAZ8EW4gy2fQ=",
"pom": "sha256-FPx/NcY15fzRvqU3q0+kQxLoQyUtUzNRnjaxJeoImyE="
},
"org/jetbrains/kotlin#kotlin-util-io/1.9.22": {
"jar": "sha256-9telhJGjeLCDrRvq1IikheEdFgsx52wYwa1SDx0o9Gs=",
"pom": "sha256-ZP1qINbsBAE7ttdWJ/ZYC7c2QdlIkJ1cFmTi53MQbe4="
},
"org/jetbrains/kotlin#kotlin-util-klib/1.9.22": {
"jar": "sha256-pnnuL1EPOrkmkYGN5etbCQLobYjJdnTn20TcTyJSxfk=",
"pom": "sha256-Dep9//Cit0CIrJlwQ8vCQINdK/9Zs5/MiwysbqPrNpc="
},
"org/jetbrains/kotlinx#kotlinx-coroutines-core-jvm/1.5.0": {
"jar": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=",
"module": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=",
"pom": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs="
},
"org/ow2#ow2/1.5.1": {
"pom": "sha256-Mh3bt+5v5PU96mtM1tt0FU1r+kI5HB92OzYbn0hazwU="
},
"org/ow2/asm#asm/9.6": {
"jar": "sha256-PG+sJCTbPUqFO2afTj0dnDxVIjXhmjGWc/iHCDwjA6E=",
"pom": "sha256-ku7iS8PIQ+SIHUbB3WUFRx7jFC+s+0ZrQoz+paVsa2A="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
}
}

View file

@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchFromGitHub,
gradle,
makeBinaryWrapper,
jre_headless,
zulu11,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gradle-dependency-tree-diff";
version = "1.2.1";
src = fetchFromGitHub {
owner = "JakeWharton";
repo = "dependency-tree-diff";
tag = finalAttrs.version;
hash = "sha256-7ObmZygzSp7aAnqsJuMcPk+I3z993kjHCJMug3JkONg=";
};
nativeBuildInputs = [
gradle
makeBinaryWrapper
];
mitmCache = gradle.fetchDeps {
inherit (finalAttrs) pname;
data = ./deps.json;
};
__darwinAllowLocalNetworking = true;
# There is a requirement on the specific Java toolchain.
gradleFlags = [ "-Dorg.gradle.java.home=${zulu11}" ];
gradleBuildTask = "build";
doCheck = true;
installPhase = ''
runHook preInstall
install -Dm644 build/dependency-tree-diff.jar \
$out/share/dependency-tree-diff/dependency-tree-diff.jar
makeWrapper ${lib.getExe jre_headless} $out/bin/dependency-tree-diff \
--add-flags "-jar $out/share/dependency-tree-diff/dependency-tree-diff.jar"
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Intelligent diff tool for the output of Gradle's dependencies task";
mainProgram = "dependency-tree-diff";
homepage = "https://github.com/JakeWharton/dependency-tree-diff";
changelog = "https://github.com/JakeWharton/dependency-tree-diff/releases/tag/${finalAttrs.version}";
sourceProvenance = with lib.sourceTypes; [
fromSource
binaryBytecode
];
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.progrm_jarvis ];
inherit (jre_headless.meta) platforms;
badPlatforms = [
# Currently fails to build on Darwin due to `Could not connect to the Gradle daemon.` error
lib.systems.inspect.patterns.isDarwin
];
};
})

View file

@ -8,16 +8,16 @@
buildGoModule rec { buildGoModule rec {
pname = "kubectl-gadget"; pname = "kubectl-gadget";
version = "0.40.0"; version = "0.41.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "inspektor-gadget"; owner = "inspektor-gadget";
repo = "inspektor-gadget"; repo = "inspektor-gadget";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-fizq0S2pvhrMwGR/l6yqzq3IXDuD01Abi3VRiNJqs48="; hash = "sha256-q88+PTZqhJwkl5jmP9AwH/nRToU/jdOFd/Z+5RcyUYE=";
}; };
vendorHash = "sha256-zBEb61gxjCRXjdANIHWKVNu5Do+iEmxttKvyiYp8FYQ="; vendorHash = "sha256-+z9DGplQZ77knVxYUUuUHwfE9ZtnZjMKuU6nMm8sAU0=";
env.CGO_ENABLED = 0; env.CGO_ENABLED = 0;

View file

@ -23,7 +23,7 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "libgit2"; pname = "libgit2";
version = "1.9.0"; version = "1.9.1";
# also check the following packages for updates: python3Packages.pygit2 and libgit2-glib # also check the following packages for updates: python3Packages.pygit2 and libgit2-glib
outputs = [ outputs = [
@ -36,17 +36,9 @@ stdenv.mkDerivation (finalAttrs: {
owner = "libgit2"; owner = "libgit2";
repo = "libgit2"; repo = "libgit2";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-v32yGMo5oFEl6HUdg8czCsCLDL+sy9PPT0AEWmKxUhk="; hash = "sha256-/xI3v7LNhpgfjv/m+sZwYDhhYvS6kQYxiiiG3+EF8Mw=";
}; };
patches = [
(fetchpatch {
name = "libgit2-darwin-case-sensitive-build.patch";
url = "https://github.com/libgit2/libgit2/commit/1b348a31349e847b1d8548281aa92f26b9783f2f.patch";
hash = "sha256-CBaUuEr3nPdUuOdyJtmPgyqR0MNnVyOFYbYXF3ncupU=";
})
];
cmakeFlags = cmakeFlags =
[ [
"-DREGEX_BACKEND=pcre2" "-DREGEX_BACKEND=pcre2"

View file

@ -1,10 +1,10 @@
{ {
lib, lib,
stdenv, stdenv,
fetchpatch,
fetchFromGitHub, fetchFromGitHub,
pcre2, pcre2,
sqlite, sqlite,
ncurses,
readline, readline,
zlib, zlib,
bzip2, bzip2,
@ -34,6 +34,16 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-XS3/km2sJwRnWloLKu9X9z07+qBFRfUsaRpZVYjoclI="; hash = "sha256-XS3/km2sJwRnWloLKu9X9z07+qBFRfUsaRpZVYjoclI=";
}; };
patches = [
# fixes lnav in tmux by patching vendored dependency notcurses
# https://github.com/tstack/lnav/issues/1390
# remove on next release
(fetchpatch {
url = "https://github.com/tstack/lnav/commit/5e0bfa483714f05397265a690960d23ae22e1838.patch";
hash = "sha256-dArPJik9KVI0KQjGw8W11oqGrbsBCNOr93gaH3yDPpo=";
})
];
enableParallelBuilding = true; enableParallelBuilding = true;
separateDebugInfo = true; separateDebugInfo = true;
@ -59,7 +69,6 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = buildInputs =
[ [
bzip2 bzip2
ncurses
pcre2 pcre2
readline readline
sqlite sqlite

View file

@ -1,15 +1,15 @@
{ {
stdenv,
lib, lib,
fetchFromGitea, fetchFromGitea,
rustPlatform, rustPlatform,
nix-update-script,
# native check inputs # native check inputs
git, git,
versionCheckHook, versionCheckHook,
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage (finalAttrs: {
pname = "mergiraf"; pname = "mergiraf";
version = "0.10.0"; version = "0.10.0";
@ -17,33 +17,33 @@ rustPlatform.buildRustPackage rec {
domain = "codeberg.org"; domain = "codeberg.org";
owner = "mergiraf"; owner = "mergiraf";
repo = "mergiraf"; repo = "mergiraf";
rev = "refs/tags/v${version}"; tag = "v${finalAttrs.version}";
hash = "sha256-wnXOl7KzSvvxQP4CebOJ+fEIn7fQDKTmO2PkGMRA4t4="; hash = "sha256-wnXOl7KzSvvxQP4CebOJ+fEIn7fQDKTmO2PkGMRA4t4=";
}; };
useFetchCargoVendor = true; useFetchCargoVendor = true;
cargoHash = "sha256-jShWfd3m9g6YlUFLOzlMPFtuXAAfjh+sBujCJ9F2Uj0="; cargoHash = "sha256-jShWfd3m9g6YlUFLOzlMPFtuXAAfjh+sBujCJ9F2Uj0=";
nativeCheckInputs = [ nativeCheckInputs = [ git ];
git
];
doInstallCheck = true; doInstallCheck = true;
nativeInstallCheckInputs = [ nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckHook
];
versionCheckProgramArg = "--version"; versionCheckProgramArg = "--version";
passthru.updateScript = nix-update-script { };
meta = { meta = {
description = "Syntax-aware git merge driver for a growing collection of programming languages and file formats"; description = "Syntax-aware git merge driver for a growing collection of programming languages and file formats";
homepage = "https://mergiraf.org/"; homepage = "https://mergiraf.org/";
changelog = "https://codeberg.org/mergiraf/mergiraf/releases/tag/v${version}"; downloadPage = "https://codeberg.org/mergiraf/mergiraf";
changelog = "https://codeberg.org/mergiraf/mergiraf/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Only; license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ maintainers = with lib.maintainers; [
zimbatm zimbatm
genga898 genga898
defelo
]; ];
mainProgram = "mergiraf"; mainProgram = "mergiraf";
}; };
} })

View file

@ -6,21 +6,20 @@
curl, curl,
expat, expat,
gumbo, gumbo,
ncurses,
sqlite, sqlite,
nix-update-script, nix-update-script,
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "newsraft"; pname = "newsraft";
version = "0.30"; version = "0.31";
src = fetchFromGitea { src = fetchFromGitea {
domain = "codeberg.org"; domain = "codeberg.org";
owner = "newsraft"; owner = "newsraft";
repo = "newsraft"; repo = "newsraft";
rev = "newsraft-${finalAttrs.version}"; rev = "newsraft-${finalAttrs.version}";
hash = "sha256-h9gjw2EjWWNdyQT2p4wgWlz4TNitDBX5fPbNNH9/th4="; hash = "sha256-XnVGt9frUKeAjxYk2cr3q3a5HpqVH0CHnNiKdTTBnqA=";
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
@ -28,21 +27,20 @@ stdenv.mkDerivation (finalAttrs: {
curl curl
expat expat
gumbo gumbo
ncurses
sqlite sqlite
]; ];
makeFlags = [ "PREFIX=$(out)" ]; makeFlags = [ "PREFIX=$(out)" ];
installTargets = "install install-desktop";
postInstall = lib.optionalString (!stdenv.hostPlatform.isDarwin) '' env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-D_DARWIN_C_SOURCE";
install -Dm444 doc/newsraft.desktop -t $out/share/applications
'';
passthru.updateScript = nix-update-script { }; passthru.updateScript = nix-update-script { };
meta = { meta = {
description = "Feed reader for terminal"; description = "Feed reader for terminal";
homepage = "https://codeberg.org/grisha/newsraft"; homepage = "https://codeberg.org/newsraft/newsraft";
changelog = "https://codeberg.org/newsraft/newsraft/releases/tag/newsraft-${finalAttrs.version}";
license = lib.licenses.isc; license = lib.licenses.isc;
maintainers = with lib.maintainers; [ maintainers = with lib.maintainers; [
arthsmn arthsmn

View file

@ -0,0 +1,17 @@
{ lib, fetchFromGitHub }:
rec {
version = "4.5.0";
src = fetchFromGitHub {
owner = "evan-buss";
repo = "openbooks";
rev = "v${version}";
hash = "sha256-gznaMcj8/9xW8wvz/pQaw4tY/hDW8K6duFfJD74E47E=";
};
meta = with lib; {
homepage = "https://evan-buss.github.io/openbooks/";
license = licenses.mit;
maintainers = with maintainers; [ ambroisie ];
};
}

View file

@ -0,0 +1,27 @@
{
buildNpmPackage,
callPackage,
}:
let
common = callPackage ./common.nix { };
in
buildNpmPackage {
pname = "openbooks-frontend";
inherit (common) version;
src = "${common.src}/server/app";
npmDepsHash = "sha256-OtXPOFK18b6tzFIvXkThafLUw0GlioRmxjzcKYeTalU=";
installPhase = ''
runHook preInstall
cp -r dist $out
runHook postInstall
'';
meta = common.meta // {
description = "openbooks frontend";
};
}

View file

@ -0,0 +1,34 @@
{
lib,
buildGoModule,
callPackage,
fetchFromGitHub,
}:
let
common = callPackage ./common.nix { };
frontend = callPackage ./frontend.nix { };
in
buildGoModule (finalAttrs: {
pname = "openbooks";
inherit (common) version src;
vendorHash = "sha256-ETN5oZanDH7fOAVnfIHIoXyVof7CfEMkPSOHF2my5ys=";
postPatch = ''
cp -r ${finalAttrs.passthru.frontend} server/app/dist/
'';
subPackages = [ "cmd/openbooks" ];
passthru = {
inherit frontend;
updateScript = ./update.sh;
};
meta = common.meta // {
description = "Search and Download eBooks";
mainProgram = "openbooks";
};
})

View file

@ -0,0 +1,46 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p nix wget prefetch-npm-deps nix-prefetch-github nurl jq
# shellcheck shell=bash
if [ -n "${GITHUB_TOKEN:-}" ]; then
TOKEN_ARGS=(--header "Authorization: token $GITHUB_TOKEN")
fi
if [ "$#" -gt 1 ] || [[ $1 == -* ]]; then
echo "Regenerates packaging data for the openbooks package."
echo "Usage: $0 [git release tag]"
exit 1
fi
version="$1"
rev="v$version"
set -euo pipefail
NIXPKGS_ROOT="$(git rev-parse --show-toplevel)"
if [ -z "$version" ]; then
rev="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/evan-buss/openbooks/releases?per_page=1" | jq -r '.[0].tag_name')"
version="${rev#v}"
fi
package_src="https://raw.githubusercontent.com/evan-buss/openbooks/$rev"
src_hash=$(nix-prefetch-github evan-buss openbooks --rev "$rev" | jq -r .hash)
tmpdir=$(mktemp -d)
trap 'rm -rf "$tmpdir"' EXIT
pushd "$tmpdir"
wget "${TOKEN_ARGS[@]}" "$package_src/server/app/package-lock.json"
npm_hash=$(prefetch-npm-deps package-lock.json)
popd
cd "$(dirname "${BASH_SOURCE[0]}")"
sed -i -E -e "s#version = \".*\"#version = \"$version\"#" common.nix
sed -i -E -e "s#hash = \".*\"#hash = \"$src_hash\"#" common.nix
sed -i -E -e "s#npmDepsHash = \".*\"#npmDepsHash = \"$npm_hash\"#" frontend.nix
vendor_hash=$(nurl -e "(import $NIXPKGS_ROOT/. { }).openbooks.goModules")
sed -i -E -e "s#vendorHash = \".*\"#vendorHash = \"$vendor_hash\"#" package.nix

View file

@ -6,16 +6,16 @@
}: }:
buildNpmPackage (finalAttrs: { buildNpmPackage (finalAttrs: {
pname = "task-master-ai"; pname = "task-master-ai";
version = "0.15.0"; version = "0.16.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "eyaltoledano"; owner = "eyaltoledano";
repo = "claude-task-master"; repo = "claude-task-master";
tag = "v${finalAttrs.version}"; tag = "v${finalAttrs.version}";
hash = "sha256-cCfyQ9xU8axuZyTTVsrYVuic6DPHnAc4YX7aKj2MmSE="; hash = "sha256-u9gLwYGRNwkyIOS8zf0nSJfrUDs7ib3Vbm0awtskpSg=";
}; };
npmDepsHash = "sha256-UNGJ64E12ppo37gJBDNpyRFYfNEJMH5mRnK3HyWcy8E="; npmDepsHash = "sha256-PjnyCqYKj1alnm1gOMSnIeGtg3pJcZ5A8ThxOQZMSF4=";
dontNpmBuild = true; dontNpmBuild = true;

View file

@ -3,6 +3,7 @@
stdenv, stdenv,
fetchFromGitHub, fetchFromGitHub,
rustPlatform, rustPlatform,
fetchpatch2,
libiconv, libiconv,
zlib, zlib,
versionCheckHook, versionCheckHook,
@ -20,6 +21,14 @@ rustPlatform.buildRustPackage (finalAttrs: {
hash = "sha256-jCI9VM3y76RI65E5UGuAPuPkDRTMyi+ydx64JWHcGfE="; hash = "sha256-jCI9VM3y76RI65E5UGuAPuPkDRTMyi+ydx64JWHcGfE=";
}; };
patches = [
(fetchpatch2 {
# https://github.com/XAMPPRocky/tokei/pull/1209
url = "https://github.com/XAMPPRocky/tokei/commit/ce8d8535276a2e41878981a8199232986ab96c6b.patch";
hash = "sha256-1tb+WmjVsTxs8Awf1mbKOBIhJ3ddoOT8ZjBKA2BMocg=";
})
];
useFetchCargoVendor = true; useFetchCargoVendor = true;
cargoHash = "sha256-LzlyrKaRjUo6JnVLQnHidtI4OWa+GrhAc4D8RkL+nmQ="; cargoHash = "sha256-LzlyrKaRjUo6JnVLQnHidtI4OWa+GrhAc4D8RkL+nmQ=";

View file

@ -11,16 +11,16 @@
buildGoModule rec { buildGoModule rec {
pname = "updatecli"; pname = "updatecli";
version = "0.100.0"; version = "0.101.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "updatecli"; owner = "updatecli";
repo = "updatecli"; repo = "updatecli";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-gzHNUFhctfMSoXEVlnYJW4qD6MmV/NMMoTFSp550FTQ="; hash = "sha256-anuP3od1cuuB9Y5wUn8CldvMZZFfD9ISyIma97oksjo=";
}; };
vendorHash = "sha256-b4mIRfiFqOqRiyZJSrASCDpcE65j45SbgE7E8yFXrCE="; vendorHash = "sha256-J8D02rkh+NJJQvk9ORV6WwoWtTKfbLtiL1bAZRVhLnI=";
# tests require network access # tests require network access
doCheck = false; doCheck = false;

View file

@ -5,13 +5,13 @@
}: }:
mkYaziPlugin { mkYaziPlugin {
pname = "mediainfo.yazi"; pname = "mediainfo.yazi";
version = "25.5.28-unstable-2025-05-30"; version = "25.5.31-unstable-2025-06-05";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "boydaihungst"; owner = "boydaihungst";
repo = "mediainfo.yazi"; repo = "mediainfo.yazi";
rev = "c6d0de764f6e667c1a7a49f8acc9030c02a1a45c"; rev = "a7d1aa69a1a107e64540c17f19ac94be1366769f";
hash = "sha256-CVHY66AcOC0STi+uDwbKe+HI3WN7MPgszlFHB479V/E="; hash = "sha256-HUD8Sv1C4gzZRvSEIYqcmm+A0mBYDuwZHCNH26kipS0=";
}; };
meta = { meta = {

View file

@ -5,13 +5,13 @@
}: }:
mkYaziPlugin { mkYaziPlugin {
pname = "projects.yazi"; pname = "projects.yazi";
version = "0-unstable-2025-05-29"; version = "0-unstable-2025-06-03";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "MasouShizuka"; owner = "MasouShizuka";
repo = "projects.yazi"; repo = "projects.yazi";
rev = "96af237d2255d5dab5493c020f55561f63c28777"; rev = "7037dd5eee184ccb7725bdc9f7ea6faa188420d5";
hash = "sha256-N8XH6adXPk/iU173fXEViv0NPwFZ0WYiyEJGBs4c6ec="; hash = "sha256-Lc0MeiAuPgJTq4ojNw9hwxqPJ74S4ymn4uPTkxGeZGc=";
}; };
meta = { meta = {

View file

@ -5,13 +5,13 @@
}: }:
mkYaziPlugin { mkYaziPlugin {
pname = "relative-motions.yazi"; pname = "relative-motions.yazi";
version = "25.4.8-unstable-2025-04-16"; version = "25.5.28-unstable-2025-06-05";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dedukun"; owner = "dedukun";
repo = "relative-motions.yazi"; repo = "relative-motions.yazi";
rev = "ce2e890227269cc15cdc71d23b35a58fae6d2c27"; rev = "2e3b6172e6226e0db96aea12d09dea2d2e443fea";
hash = "sha256-Ijz1wYt+L+24Fb/rzHcDR8JBv84z2UxdCIPqTdzbD14="; hash = "sha256-v0e06ieBKNmt9DATdL7R4AyVFa9DlNBwpfME3LHozLA=";
}; };
meta = { meta = {

View file

@ -5,13 +5,13 @@
}: }:
mkYaziPlugin { mkYaziPlugin {
pname = "rich-preview.yazi"; pname = "rich-preview.yazi";
version = "0-unstable-2025-05-30"; version = "0-unstable-2025-05-31";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "AnirudhG07"; owner = "AnirudhG07";
repo = "rich-preview.yazi"; repo = "rich-preview.yazi";
rev = "de28f504f21ee78b9e4799f116df2aa177384229"; rev = "843c3faf0a99f5ce31d02372c868d8dae92ca29d";
hash = "sha256-pJ5aMAECK0M4v/8czGP5RZygfRAyS9IdQCeP3ZP1Gcs="; hash = "sha256-celObHo9Y3pFCd1mTx1Lz77Tc22SJTleRblAkbH/RqY=";
}; };
meta = { meta = {

View file

@ -5,12 +5,12 @@
}: }:
mkYaziPlugin { mkYaziPlugin {
pname = "rsync.yazi"; pname = "rsync.yazi";
version = "0-unstable-2025-04-24"; version = "0-unstable-2025-06-07";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "GianniBYoung"; owner = "GianniBYoung";
repo = "rsync.yazi"; repo = "rsync.yazi";
rev = "ed7b7f9de971ecd8376d7ccb7a6d0d6f979c1dcb"; rev = "782481e58316f4b422f5c259f07c63b940555246";
hash = "sha256-xAhkDTNi0MjHqESKk8j60WABYvaF7NElO2W/rsL2w2Y="; hash = "sha256-ZrvaJl3nf/CGavvk1QEyOMUbfKQ/JYSmZguvbXIIw9M=";
}; };
meta = { meta = {

View file

@ -5,13 +5,13 @@
}: }:
mkYaziPlugin { mkYaziPlugin {
pname = "starship.yazi"; pname = "starship.yazi";
version = "25.4.8-unstable-2025-05-30"; version = "25.4.8-unstable-2025-06-01";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Rolv-Apneseth"; owner = "Rolv-Apneseth";
repo = "starship.yazi"; repo = "starship.yazi";
rev = "428d43ac0846cb1885493a1f01c049a883b70155"; rev = "6a0f3f788971b155cbc7cec47f6f11aebbc148c9";
hash = "sha256-YkDkMC2SJIfpKrt93W/v5R3wOrYcat7QTbPrWqIKXG8="; hash = "sha256-q1G0Y4JAuAv8+zckImzbRvozVn489qiYVGFQbdCxC98=";
}; };
meta = { meta = {

View file

@ -1,12 +1,13 @@
#!/usr/bin/env nix-shell #!/usr/bin/env nix-shell
#!nix-shell -i python3 -p python3 python3Packages.requests python3Packages.packaging nix curl git #!nix-shell -i python3 -p python3 python3Packages.requests python3Packages.packaging nix curl git argparse
import argparse
import json
import os import os
import re import re
import subprocess import subprocess
import sys import sys
from pathlib import Path from pathlib import Path
from typing import Dict, Tuple
import requests import requests
from packaging import version from packaging import version
@ -17,13 +18,14 @@ def run_command(cmd: str, capture_output: bool = True) -> str:
result = subprocess.run(cmd, shell=True, text=True, capture_output=capture_output) result = subprocess.run(cmd, shell=True, text=True, capture_output=capture_output)
if result.returncode != 0: if result.returncode != 0:
if capture_output: if capture_output:
print(f"Error running command: {cmd}") error_msg = f"Error running command: {cmd}\nstderr: {result.stderr}"
print(f"stderr: {result.stderr}") raise RuntimeError(error_msg)
sys.exit(1) else:
raise RuntimeError(f"Command failed: {cmd}")
return result.stdout.strip() if capture_output else "" return result.stdout.strip() if capture_output else ""
def get_plugin_info(nixpkgs_dir: str, plugin_name: str) -> Dict[str, str]: def get_plugin_info(nixpkgs_dir: str, plugin_name: str) -> dict[str, str]:
"""Get plugin repository information from Nix""" """Get plugin repository information from Nix"""
owner = run_command(f"nix eval --raw -f {nixpkgs_dir} yaziPlugins.\"{plugin_name}\".src.owner") owner = run_command(f"nix eval --raw -f {nixpkgs_dir} yaziPlugins.\"{plugin_name}\".src.owner")
repo = run_command(f"nix eval --raw -f {nixpkgs_dir} yaziPlugins.\"{plugin_name}\".src.repo") repo = run_command(f"nix eval --raw -f {nixpkgs_dir} yaziPlugins.\"{plugin_name}\".src.repo")
@ -40,7 +42,7 @@ def get_yazi_version(nixpkgs_dir: str) -> str:
def get_github_headers() -> Dict[str, str]: def get_github_headers() -> dict[str, str]:
"""Create headers for GitHub API requests""" """Create headers for GitHub API requests"""
headers = {"Accept": "application/vnd.github.v3+json"} headers = {"Accept": "application/vnd.github.v3+json"}
github_token = os.environ.get("GITHUB_TOKEN") github_token = os.environ.get("GITHUB_TOKEN")
@ -49,7 +51,7 @@ def get_github_headers() -> Dict[str, str]:
return headers return headers
def get_default_branch(owner: str, repo: str, headers: Dict[str, str]) -> str: def get_default_branch(owner: str, repo: str, headers: dict[str, str]) -> str:
"""Get the default branch name for a GitHub repository""" """Get the default branch name for a GitHub repository"""
api_url = f"https://api.github.com/repos/{owner}/{repo}" api_url = f"https://api.github.com/repos/{owner}/{repo}"
@ -63,7 +65,7 @@ def get_default_branch(owner: str, repo: str, headers: Dict[str, str]) -> str:
print("Falling back to 'main' as default branch") print("Falling back to 'main' as default branch")
return "main" return "main"
def fetch_plugin_content(owner: str, repo: str, plugin_pname: str, headers: Dict[str, str]) -> str: def fetch_plugin_content(owner: str, repo: str, plugin_pname: str, headers: dict[str, str]) -> str:
"""Fetch the plugin's main.lua content from GitHub""" """Fetch the plugin's main.lua content from GitHub"""
default_branch = get_default_branch(owner, repo, headers) default_branch = get_default_branch(owner, repo, headers)
plugin_path = f"{plugin_pname}/" if owner == "yazi-rs" else "" plugin_path = f"{plugin_pname}/" if owner == "yazi-rs" else ""
@ -74,8 +76,7 @@ def fetch_plugin_content(owner: str, repo: str, plugin_pname: str, headers: Dict
response.raise_for_status() response.raise_for_status()
return response.text return response.text
except requests.RequestException as e: except requests.RequestException as e:
print(f"Error fetching plugin content: {e}") raise RuntimeError(f"Error fetching plugin content: {e}")
sys.exit(1)
def check_version_compatibility(plugin_content: str, plugin_name: str, yazi_version: str) -> str: def check_version_compatibility(plugin_content: str, plugin_name: str, yazi_version: str) -> str:
@ -86,15 +87,15 @@ def check_version_compatibility(plugin_content: str, plugin_name: str, yazi_vers
if required_version == "0": if required_version == "0":
print(f"No version requirement found for {plugin_name}, assuming compatible with any Yazi version") print(f"No version requirement found for {plugin_name}, assuming compatible with any Yazi version")
else: else:
# Check if the plugin is compatible with current Yazi version
if version.parse(required_version) > version.parse(yazi_version): if version.parse(required_version) > version.parse(yazi_version):
print(f"{plugin_name} plugin requires Yazi {required_version}, but we have {yazi_version}") message = f"{plugin_name} plugin requires Yazi {required_version}, but we have {yazi_version}"
sys.exit(0) print(message)
raise RuntimeError(message)
return required_version return required_version
def get_latest_commit(owner: str, repo: str, plugin_pname: str, headers: Dict[str, str]) -> Tuple[str, str]: def get_latest_commit(owner: str, repo: str, plugin_pname: str, headers: dict[str, str]) -> tuple[str, str]:
"""Get the latest commit hash and date for the plugin""" """Get the latest commit hash and date for the plugin"""
default_branch = get_default_branch(owner, repo, headers) default_branch = get_default_branch(owner, repo, headers)
@ -110,8 +111,7 @@ def get_latest_commit(owner: str, repo: str, plugin_pname: str, headers: Dict[st
response.raise_for_status() response.raise_for_status()
commit_data = response.json() commit_data = response.json()
except requests.RequestException as e: except requests.RequestException as e:
print(f"Error fetching commit data: {e}") raise RuntimeError(f"Error fetching commit data: {e}")
sys.exit(1)
if owner == "yazi-rs": if owner == "yazi-rs":
latest_commit = commit_data[0]["sha"] latest_commit = commit_data[0]["sha"]
@ -121,8 +121,7 @@ def get_latest_commit(owner: str, repo: str, plugin_pname: str, headers: Dict[st
commit_date = commit_data["commit"]["committer"]["date"].split("T")[0] commit_date = commit_data["commit"]["committer"]["date"].split("T")[0]
if not latest_commit: if not latest_commit:
print("Error: Could not get latest commit hash") raise RuntimeError("Could not get latest commit hash")
sys.exit(1)
return latest_commit, commit_date return latest_commit, commit_date
@ -134,24 +133,18 @@ def calculate_sri_hash(owner: str, repo: str, latest_commit: str) -> str:
try: try:
new_hash = run_command(f"nix-prefetch-url --unpack --type sha256 {prefetch_url} 2>/dev/null") new_hash = run_command(f"nix-prefetch-url --unpack --type sha256 {prefetch_url} 2>/dev/null")
# If the hash is not in SRI format, convert it
if not new_hash.startswith("sha256-"): if not new_hash.startswith("sha256-"):
# Try to convert the hash to SRI format
new_hash = run_command(f"nix hash to-sri --type sha256 {new_hash} 2>/dev/null") new_hash = run_command(f"nix hash to-sri --type sha256 {new_hash} 2>/dev/null")
# If that fails, try another approach
if not new_hash.startswith("sha256-"): if not new_hash.startswith("sha256-"):
print("Warning: Failed to get SRI hash directly, trying alternative method...") print("Warning: Failed to get SRI hash directly, trying alternative method...")
raw_hash = run_command(f"nix-prefetch-url --type sha256 {prefetch_url} 2>/dev/null") raw_hash = run_command(f"nix-prefetch-url --type sha256 {prefetch_url} 2>/dev/null")
new_hash = run_command(f"nix hash to-sri --type sha256 {raw_hash} 2>/dev/null") new_hash = run_command(f"nix hash to-sri --type sha256 {raw_hash} 2>/dev/null")
except Exception as e: except Exception as e:
print(f"Error calculating hash: {e}") raise RuntimeError(f"Error calculating hash: {e}")
sys.exit(1)
# Verify we got a valid SRI hash
if not new_hash.startswith("sha256-"): if not new_hash.startswith("sha256-"):
print(f"Error: Failed to generate valid SRI hash. Output was: {new_hash}") raise RuntimeError(f"Failed to generate valid SRI hash. Output was: {new_hash}")
sys.exit(1)
return new_hash return new_hash
@ -162,8 +155,7 @@ def read_nix_file(file_path: str) -> str:
with open(file_path, 'r') as f: with open(file_path, 'r') as f:
return f.read() return f.read()
except IOError as e: except IOError as e:
print(f"Error reading file {file_path}: {e}") raise RuntimeError(f"Error reading file {file_path}: {e}")
sys.exit(1)
def write_nix_file(file_path: str, content: str) -> None: def write_nix_file(file_path: str, content: str) -> None:
@ -172,101 +164,265 @@ def write_nix_file(file_path: str, content: str) -> None:
with open(file_path, 'w') as f: with open(file_path, 'w') as f:
f.write(content) f.write(content)
except IOError as e: except IOError as e:
print(f"Error writing to file {file_path}: {e}") raise RuntimeError(f"Error writing to file {file_path}: {e}")
sys.exit(1)
def update_nix_file(default_nix_path: str, latest_commit: str, new_version: str, new_hash: str) -> None: def update_nix_file(default_nix_path: str, latest_commit: str, new_version: str, new_hash: str) -> None:
"""Update the default.nix file with new version, revision and hash""" """Update the default.nix file with new version, revision and hash"""
default_nix_content = read_nix_file(default_nix_path) default_nix_content = read_nix_file(default_nix_path)
# Update the revision in default.nix
default_nix_content = re.sub(r'rev = "[^"]*"', f'rev = "{latest_commit}"', default_nix_content) default_nix_content = re.sub(r'rev = "[^"]*"', f'rev = "{latest_commit}"', default_nix_content)
# Update the version in default.nix
if 'version = "' in default_nix_content: if 'version = "' in default_nix_content:
default_nix_content = re.sub(r'version = "[^"]*"', f'version = "{new_version}"', default_nix_content) default_nix_content = re.sub(r'version = "[^"]*"', f'version = "{new_version}"', default_nix_content)
else: else:
# Add version attribute after pname if it doesn't exist
default_nix_content = re.sub(r'(pname = "[^"]*";)', f'\\1\n version = "{new_version}";', default_nix_content) default_nix_content = re.sub(r'(pname = "[^"]*";)', f'\\1\n version = "{new_version}";', default_nix_content)
# Update hash in default.nix
if 'hash = "' in default_nix_content: if 'hash = "' in default_nix_content:
default_nix_content = re.sub(r'hash = "[^"]*"', f'hash = "{new_hash}"', default_nix_content) default_nix_content = re.sub(r'hash = "[^"]*"', f'hash = "{new_hash}"', default_nix_content)
elif 'fetchFromGitHub' in default_nix_content: elif 'fetchFromGitHub' in default_nix_content:
default_nix_content = re.sub(r'sha256 = "[^"]*"', f'sha256 = "{new_hash}"', default_nix_content) default_nix_content = re.sub(r'sha256 = "[^"]*"', f'sha256 = "{new_hash}"', default_nix_content)
else: else:
print(f"Error: Could not find hash attribute in {default_nix_path}") raise RuntimeError(f"Could not find hash attribute in {default_nix_path}")
sys.exit(1)
# Write the updated content back to the file
write_nix_file(default_nix_path, default_nix_content) write_nix_file(default_nix_path, default_nix_content)
# Verify the hash was updated
updated_content = read_nix_file(default_nix_path) updated_content = read_nix_file(default_nix_path)
if f'hash = "{new_hash}"' in updated_content or f'sha256 = "{new_hash}"' in updated_content: if f'hash = "{new_hash}"' in updated_content or f'sha256 = "{new_hash}"' in updated_content:
print(f"Successfully updated hash to: {new_hash}") print(f"Successfully updated hash to: {new_hash}")
else: else:
print(f"Error: Failed to update hash in {default_nix_path}") raise RuntimeError(f"Failed to update hash in {default_nix_path}")
sys.exit(1)
def validate_environment() -> Tuple[str, str, str]: def get_all_plugins(nixpkgs_dir: str) -> list[dict[str, str]]:
"""Get all available Yazi plugins from the Nix expression"""
try:
plugin_names_json = run_command(f'nix eval --impure --json --expr "builtins.attrNames (import {nixpkgs_dir} {{}}).yaziPlugins"')
plugin_names = json.loads(plugin_names_json)
excluded_attrs = ["mkYaziPlugin", "override", "overrideDerivation", "overrideAttrs", "recurseForDerivations"]
plugin_names = [name for name in plugin_names if name not in excluded_attrs]
plugins = []
for name in plugin_names:
try:
pname = run_command(f'nix eval --raw -f {nixpkgs_dir} "yaziPlugins.{name}.pname"')
plugins.append({
"name": name, # Attribute name in yaziPlugins set
"pname": pname # Package name (used in repo paths)
})
except Exception as e:
print(f"Warning: Could not get pname for plugin {name}, skipping: {e}")
continue
return plugins
except Exception as e:
raise RuntimeError(f"Error getting plugin list: {e}")
def validate_environment(plugin_name: str | None = None, plugin_pname: str | None = None) -> tuple[str, str | None, str | None]:
"""Validate environment variables and paths""" """Validate environment variables and paths"""
nixpkgs_dir = os.getcwd() nixpkgs_dir = os.getcwd()
plugin_name = os.environ.get("PLUGIN_NAME") if plugin_name and not plugin_pname:
plugin_pname = os.environ.get("PLUGIN_PNAME") raise RuntimeError(f"pname not provided for plugin {plugin_name}")
if not plugin_name or not plugin_pname: if plugin_name:
print("Error: PLUGIN_NAME and PLUGIN_PNAME environment variables must be set") plugin_dir = f"{nixpkgs_dir}/pkgs/by-name/ya/yazi/plugins/{plugin_name}"
sys.exit(1) if not Path(f"{plugin_dir}/default.nix").exists():
raise RuntimeError(f"Could not find default.nix for plugin {plugin_name} at {plugin_dir}")
plugin_dir = f"{nixpkgs_dir}/pkgs/by-name/ya/yazi/plugins/{plugin_name}"
if not Path(f"{plugin_dir}/default.nix").exists():
print(f"Error: Could not find default.nix for plugin {plugin_name} at {plugin_dir}")
sys.exit(1)
return nixpkgs_dir, plugin_name, plugin_pname return nixpkgs_dir, plugin_name, plugin_pname
def main(): def update_single_plugin(nixpkgs_dir: str, plugin_name: str, plugin_pname: str) -> dict[str, str] | None:
"""Main function to update a Yazi plugin""" """Update a single Yazi plugin
# Basic setup and validation
nixpkgs_dir, plugin_name, plugin_pname = validate_environment() Returns:
dict with update info including old_version, new_version, etc. or None if no change
"""
plugin_dir = f"{nixpkgs_dir}/pkgs/by-name/ya/yazi/plugins/{plugin_name}" plugin_dir = f"{nixpkgs_dir}/pkgs/by-name/ya/yazi/plugins/{plugin_name}"
default_nix_path = f"{plugin_dir}/default.nix" default_nix_path = f"{plugin_dir}/default.nix"
# Get repository info nix_content = read_nix_file(default_nix_path)
old_version_match = re.search(r'version = "([^"]*)"', nix_content)
old_version = old_version_match.group(1) if old_version_match else "unknown"
old_commit_match = re.search(r'rev = "([^"]*)"', nix_content)
old_commit = old_commit_match.group(1) if old_commit_match else "unknown"
plugin_info = get_plugin_info(nixpkgs_dir, plugin_name) plugin_info = get_plugin_info(nixpkgs_dir, plugin_name)
owner = plugin_info["owner"] owner = plugin_info["owner"]
repo = plugin_info["repo"] repo = plugin_info["repo"]
# Get Yazi version separately
yazi_version = get_yazi_version(nixpkgs_dir) yazi_version = get_yazi_version(nixpkgs_dir)
# Setup GitHub API headers
headers = get_github_headers() headers = get_github_headers()
# Check plugin compatibility with current Yazi version
plugin_content = fetch_plugin_content(owner, repo, plugin_pname, headers) plugin_content = fetch_plugin_content(owner, repo, plugin_pname, headers)
required_version = check_version_compatibility(plugin_content, plugin_name, yazi_version) required_version = check_version_compatibility(plugin_content, plugin_name, yazi_version)
# Get latest commit info
latest_commit, commit_date = get_latest_commit(owner, repo, plugin_pname, headers) latest_commit, commit_date = get_latest_commit(owner, repo, plugin_pname, headers)
print(f"Updating {plugin_name} to commit {latest_commit} ({commit_date})") print(f"Checking {plugin_name} latest commit {latest_commit} ({commit_date})")
if latest_commit == old_commit:
print(f"No changes for {plugin_name}, already at latest commit {latest_commit}")
return None
print(f"Updating {plugin_name} from commit {old_commit} to {latest_commit}")
# Generate new version string
new_version = f"{required_version}-unstable-{commit_date}" new_version = f"{required_version}-unstable-{commit_date}"
# Calculate hash for the plugin
new_hash = calculate_sri_hash(owner, repo, latest_commit) new_hash = calculate_sri_hash(owner, repo, latest_commit)
print(f"Generated SRI hash: {new_hash}") print(f"Generated SRI hash: {new_hash}")
# Update the default.nix file
update_nix_file(default_nix_path, latest_commit, new_version, new_hash) update_nix_file(default_nix_path, latest_commit, new_version, new_hash)
print(f"Successfully updated {plugin_name} to version {new_version} (commit {latest_commit})") print(f"Successfully updated {plugin_name} from {old_version} to {new_version}")
return {
"name": plugin_name,
"old_version": old_version,
"new_version": new_version,
"old_commit": old_commit,
"new_commit": latest_commit
}
def update_all_plugins(nixpkgs_dir: str) -> list[dict[str, str]]:
"""Update all available Yazi plugins
Returns:
list[dict[str, str]]: List of successfully updated plugin info dicts
"""
plugins = get_all_plugins(nixpkgs_dir)
updated_plugins = []
if not plugins:
print("No plugins found to update")
return updated_plugins
print(f"Found {len(plugins)} plugins to update")
checked_count = 0
updated_count = 0
failed_plugins = []
for plugin in plugins:
plugin_name = plugin["name"]
plugin_pname = plugin["pname"]
try:
print(f"\n{'=' * 50}")
print(f"Checking plugin: {plugin_name}")
print(f"{'=' * 50}")
try:
update_info = update_single_plugin(nixpkgs_dir, plugin_name, plugin_pname)
checked_count += 1
if update_info:
updated_count += 1
updated_plugins.append(update_info)
except KeyboardInterrupt:
print("\nUpdate process interrupted by user")
sys.exit(1)
except Exception as e:
print(f"Error updating plugin {plugin_name}: {e}")
failed_plugins.append({"name": plugin_name, "error": str(e)})
continue
except Exception as e:
print(f"Unexpected error with plugin {plugin_name}: {e}")
failed_plugins.append({"name": plugin_name, "error": str(e)})
continue
print(f"\n{'=' * 50}")
print(f"Update summary: {updated_count} plugins updated out of {checked_count} checked")
if updated_count > 0:
print("\nUpdated plugins:")
for plugin in updated_plugins:
print(f" - {plugin['name']}: {plugin['old_version']}{plugin['new_version']}")
if failed_plugins:
print(f"\nFailed to update {len(failed_plugins)} plugins:")
for plugin in failed_plugins:
print(f" - {plugin['name']}: {plugin['error']}")
return updated_plugins
def commit_changes(updated_plugins: list[dict[str, str]]) -> None:
"""Commit all changes after updating plugins"""
if not updated_plugins:
print("No plugins were updated, skipping commit")
return
try:
status_output = run_command("git status --porcelain", capture_output=True)
if not status_output:
print("No changes to commit")
return
current_date = run_command("date +%Y-%m-%d", capture_output=True)
if len(updated_plugins) == 1:
plugin = updated_plugins[0]
commit_message = f"yaziPlugins.{plugin['name']}: update from {plugin['old_version']} to {plugin['new_version']}"
else:
commit_message = f"yaziPlugins: update on {current_date}\n\n"
for plugin in sorted(updated_plugins, key=lambda x: x['name']):
commit_message += f"- {plugin['name']}: {plugin['old_version']}{plugin['new_version']}\n"
run_command("git add pkgs/by-name/ya/yazi/plugins/", capture_output=False)
run_command(f'git commit -m "{commit_message}"', capture_output=False)
print(f"\nCommitted changes with message: {commit_message}")
except Exception as e:
print(f"Error committing changes: {e}")
def main():
"""Main function to update Yazi plugins"""
parser = argparse.ArgumentParser(description="Update Yazi plugins")
group = parser.add_mutually_exclusive_group()
group.add_argument("--all", action="store_true", help="Update all Yazi plugins")
group.add_argument("--plugin", type=str, help="Update a specific plugin by name")
parser.add_argument("--commit", action="store_true", help="Commit changes after updating")
args = parser.parse_args()
nixpkgs_dir = os.getcwd()
updated_plugins = []
if args.all:
print("Updating all Yazi plugins...")
updated_plugins = update_all_plugins(nixpkgs_dir)
elif args.plugin:
plugin_name = args.plugin
try:
plugin_pname = run_command(f'nix eval --raw -f {nixpkgs_dir} "yaziPlugins.{plugin_name}.pname"')
print(f"Updating Yazi plugin: {plugin_name}")
update_info = update_single_plugin(nixpkgs_dir, plugin_name, plugin_pname)
if update_info:
updated_plugins.append(update_info)
except Exception as e:
print(f"Error: {e}")
sys.exit(1)
else:
nixpkgs_dir, plugin_name, plugin_pname = validate_environment()
if plugin_name and plugin_pname:
print(f"Updating Yazi plugin: {plugin_name}")
update_info = update_single_plugin(nixpkgs_dir, plugin_name, plugin_pname)
if update_info:
updated_plugins.append(update_info)
else:
parser.print_help()
sys.exit(0)
if args.commit and updated_plugins:
commit_changes(updated_plugins)
if __name__ == "__main__": if __name__ == "__main__":

View file

@ -13,7 +13,7 @@
}: }:
let let
version = "2.2.0"; version = "2.3.0";
tag = "v${version}"; tag = "v${version}";
in in
buildPythonPackage { buildPythonPackage {
@ -25,7 +25,7 @@ buildPythonPackage {
owner = "elevenlabs"; owner = "elevenlabs";
repo = "elevenlabs-python"; repo = "elevenlabs-python";
inherit tag; inherit tag;
hash = "sha256-XZld32WJlZKnVQAUQV9FfJZgNOlW4JKVCqVdb8xCO7I="; hash = "sha256-vj4ZmtumLq7Jveq7ID/FoPjlIz7Dv8uqMN4Nq6tSW/E=";
}; };
build-system = [ poetry-core ]; build-system = [ poetry-core ];

View file

@ -17,7 +17,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "msgraph-core"; pname = "msgraph-core";
version = "1.3.3"; version = "1.3.4";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "microsoftgraph"; owner = "microsoftgraph";
repo = "msgraph-sdk-python-core"; repo = "msgraph-sdk-python-core";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-gYZWKv70lyuZIYXpchNnZ02J65hN45agDkxZVFed28s="; hash = "sha256-F3vZUglO0AvWZPwV8329Wrd5S4PHShBv8Gg3Jvsz6Kk=";
}; };
build-system = [ setuptools ]; build-system = [ setuptools ];

View file

@ -30,7 +30,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pyopencl"; pname = "pyopencl";
version = "2025.2"; version = "2025.2.1";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
@ -38,7 +38,7 @@ buildPythonPackage rec {
repo = "pyopencl"; repo = "pyopencl";
tag = "v${version}"; tag = "v${version}";
fetchSubmodules = true; fetchSubmodules = true;
hash = "sha256-cV4ff52qB7+zFC04swMt4s3Vrzrd+UZU3owEaJFFOms="; hash = "sha256-zkTeCSmPfWQBuX4EOyXQDtA7uU+GCJh5LgFNkbwyiCg=";
}; };
build-system = [ build-system = [

View file

@ -69,25 +69,6 @@ let
}; };
in in
{ {
texinfo413 = stdenv.mkDerivation (finalAttrs: {
pname = "texinfo";
version = "4.13a";
src = fetchurl {
url = "mirror://gnu/texinfo/texinfo-${finalAttrs.version}.tar.lzma";
hash = "sha256-bSiwzq6GbjU2FC/FUuejvJ+EyDAxGcJXMbJHju9kyeU=";
};
buildInputs = [ ncurses ];
nativeBuildInputs = [ xz ];
# Disabled because we don't have zdiff in the stdenv bootstrap.
#doCheck = true;
meta = meta // {
branch = finalAttrs.version;
};
});
texinfo6_5 = buildTexinfo { texinfo6_5 = buildTexinfo {
version = "6.5"; version = "6.5";
hash = "sha256-d3dLP0oGwgcFzC7xyASGRCLjz5UjXpZbHwCkbffaX2I="; hash = "sha256-d3dLP0oGwgcFzC7xyASGRCLjz5UjXpZbHwCkbffaX2I=";

View file

@ -1,65 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
gettext,
installShellFiles,
ncurses,
ui ? "terminal",
}:
assert lib.elem ui [
"terminal"
"curses"
];
stdenv.mkDerivation (finalAttrs: {
pname = "2048-cli";
version = "unstable-2019-12-10";
src = fetchFromGitHub {
owner = "tiehuis";
repo = "2048-cli";
rev = "67439255df7d4f70209ca628d65128cd41d33e8d";
hash = "sha256-U7g2wCZgR7Lp/69ktQIZZ1cScll2baCequemTl3Mc3I=";
};
postPatch = ''
substituteInPlace Makefile \
--replace "-lcurses" "-lncurses"
'';
nativeBuildInputs = [
installShellFiles
];
buildInputs = [
gettext
] ++ (lib.optional (ui == "curses") ncurses);
dontConfigure = true;
env.NIX_CFLAGS_COMPILE = "-I${lib.getDev gettext}/share/gettext/";
makeFlags = [
"CC=${stdenv.cc.targetPrefix}cc"
ui
];
installPhase = ''
runHook preInstall
install -Dm755 -t $out/bin 2048
installManPage man/2048.6
runHook postInstall
'';
meta = {
homepage = "https://github.com/tiehuis/2048-cli";
description = "Game 2048 for your Linux terminal";
license = lib.licenses.mit;
maintainers = [ ];
platforms = lib.platforms.unix;
mainProgram = "2048";
};
})

View file

@ -13,11 +13,11 @@
}: }:
let let
pname = "maptool"; pname = "maptool";
version = "1.14.3"; version = "1.17.0";
repoBase = "https://github.com/RPTools/maptool"; repoBase = "https://github.com/RPTools/maptool";
src = fetchurl { src = fetchurl {
url = "${repoBase}/releases/download/${version}/maptool-${version}-x86_64.pkg.tar.zst"; url = "${repoBase}/releases/download/${version}/maptool-${version}-x86_64.pkg.tar.zst";
hash = "sha256-KjP6zugQw9r1hvdxqOgTrt4hYMYg+lgjkgkj3tfb38s="; hash = "sha256-EyzHRc3k7mAh5C9AM4L5/ItrxeCUWuWeW1SuJrOh4Xo=";
}; };
meta = with lib; { meta = with lib; {

View file

@ -1,189 +1,247 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
addressable (2.8.4) activesupport (7.0.8.7)
public_suffix (>= 2.0.2, < 6.0) concurrent-ruby (~> 1.0, >= 1.0.2)
aws-eventstream (1.2.0) i18n (>= 1.6, < 2)
aws-partitions (1.749.0) minitest (>= 5.1)
aws-sdk-core (3.171.0) tzinfo (~> 2.0)
aws-eventstream (~> 1, >= 1.0.2) addressable (2.8.7)
aws-partitions (~> 1, >= 1.651.0) public_suffix (>= 2.0.2, < 7.0)
aws-sigv4 (~> 1.5) ast (2.4.3)
aws-eventstream (1.4.0)
aws-partitions (1.1110.0)
aws-sdk-core (3.225.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
base64
jmespath (~> 1, >= 1.6.1) jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.63.0) logger
aws-sdk-core (~> 3, >= 3.165.0) aws-sdk-kms (1.102.0)
aws-sigv4 (~> 1.1) aws-sdk-core (~> 3, >= 3.225.0)
aws-sdk-s3 (1.120.1) aws-sigv4 (~> 1.5)
aws-sdk-core (~> 3, >= 3.165.0) aws-sdk-s3 (1.189.0)
aws-sdk-core (~> 3, >= 3.225.0)
aws-sdk-kms (~> 1) aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4) aws-sigv4 (~> 1.5)
aws-sdk-secretsmanager (1.73.0) aws-sdk-secretsmanager (1.116.0)
aws-sdk-core (~> 3, >= 3.165.0) aws-sdk-core (~> 3, >= 3.225.0)
aws-sigv4 (~> 1.1) aws-sigv4 (~> 1.5)
aws-sigv4 (1.5.2) aws-sigv4 (1.12.0)
aws-eventstream (~> 1, >= 1.0.2) aws-eventstream (~> 1, >= 1.0.2)
builder (3.2.4) base64 (0.3.0)
chef (17.10.0) bigdecimal (3.2.1)
builder (3.3.0)
chef (18.7.10)
addressable addressable
aws-sdk-s3 (~> 1.91) aws-sdk-s3 (~> 1.91)
aws-sdk-secretsmanager (~> 1.46) aws-sdk-secretsmanager (~> 1.46)
chef-config (= 17.10.0) chef-config (= 18.7.10)
chef-utils (= 17.10.0) chef-utils (= 18.7.10)
chef-vault chef-vault
chef-zero (>= 14.0.11) chef-zero (>= 15.0.17)
corefoundation (~> 0.3.4) corefoundation (~> 0.3.4)
diff-lcs (>= 1.2.4, < 1.6.0, != 1.4.0) diff-lcs (>= 1.2.4, < 1.6.0, != 1.4.0)
erubis (~> 2.7) erubis (~> 2.7)
ffi (>= 1.5.0) ffi (>= 1.15.5, <= 1.16.3)
ffi-libarchive (~> 1.0, >= 1.0.3) ffi-libarchive (~> 1.0, >= 1.0.3)
ffi-yajl (~> 2.2) ffi-yajl (~> 2.2)
iniparse (~> 1.4) iniparse (~> 1.4)
inspec-core (~> 4.23) inspec-core (>= 5, < 6)
license-acceptance (>= 1.0.5, < 3) license-acceptance (>= 1.0.5, < 3)
mixlib-archive (>= 0.4, < 2.0) mixlib-archive (>= 0.4, < 2.0)
mixlib-authentication (>= 2.1, < 4) mixlib-authentication (>= 2.1, < 4)
mixlib-cli (>= 2.1.1, < 3.0) mixlib-cli (>= 2.1.1, < 3.0)
mixlib-log (>= 2.0.3, < 4.0) mixlib-log (>= 2.0.3, < 3.2)
mixlib-shellout (>= 3.1.1, < 4.0) mixlib-shellout (>= 3.1.1, < 4.0)
net-sftp (>= 2.1.2, < 4.0) net-ftp
ohai (~> 17.0) net-sftp (>= 2.1.2, < 5.0)
ohai (~> 18.0)
plist (~> 3.2) plist (~> 3.2)
proxifier (~> 1.0) proxifier2 (~> 1.1)
syslog-logger (~> 1.6) syslog-logger (~> 1.6)
train-core (~> 3.2, >= 3.2.28) train-core (~> 3.10, <= 3.12.13)
train-winrm (>= 0.2.5) train-rest (>= 0.4.1)
train-winrm (~> 0.2.17)
unf_ext (~> 0.0.8.2)
uuidtools (>= 2.1.5, < 3.0) uuidtools (>= 2.1.5, < 3.0)
vault (~> 0.16) vault (~> 0.18.2)
chef-cli (5.6.8) chef-cli (5.6.21)
addressable (>= 2.3.5, < 2.9) addressable (>= 2.3.5, < 2.9)
chef (>= 16.0) chef (~> 18.0)
cookbook-omnifetch (~> 0.5) cookbook-omnifetch (~> 0.5)
diff-lcs (>= 1.0, < 1.4) diff-lcs (>= 1.2.4, < 1.6.0, != 1.4.0)
ffi-yajl (>= 1.0, < 3.0) ffi-yajl (>= 1.0, < 3.0)
license-acceptance (>= 1.0.11, < 3) license-acceptance (>= 1.0.11, < 3)
minitar (~> 0.6) minitar (~> 1.0)
mixlib-cli (>= 1.7, < 3.0) mixlib-cli (>= 1.7, < 3.0)
mixlib-shellout (>= 2.0, < 4.0) mixlib-shellout (>= 2.0, < 4.0)
pastel (~> 0.7) pastel (~> 0.7)
solve (> 2.0, < 5.0) solve (> 2.0, < 5.0)
chef-config (17.10.0) chef-config (18.7.10)
addressable addressable
chef-utils (= 17.10.0) chef-utils (= 18.7.10)
fuzzyurl fuzzyurl
mixlib-config (>= 2.2.12, < 4.0) mixlib-config (>= 2.2.12, < 4.0)
mixlib-shellout (>= 2.0, < 4.0) mixlib-shellout (>= 2.0, < 4.0)
tomlrb (~> 1.2) tomlrb (~> 1.2)
chef-gyoku (1.4.5)
builder (>= 2.1.2)
rexml (~> 3.4)
chef-telemetry (1.1.1) chef-telemetry (1.1.1)
chef-config chef-config
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
chef-utils (17.10.0) chef-utils (18.7.10)
concurrent-ruby concurrent-ruby
chef-vault (4.1.11) chef-vault (4.1.23)
chef-zero (15.0.11) chef-winrm (2.3.12)
builder (>= 2.1.2)
chef-gyoku (~> 1.4.0, <= 1.4.5)
erubi (~> 1.8)
ffi (>= 1.15.5, < 1.17.0)
gssapi (~> 1.2)
httpclient (~> 2.2, >= 2.2.0.2)
logging (>= 1.6.1, < 3.0)
nori (= 2.7.0)
rexml (~> 3.3)
rubyntlm (~> 0.6.0, >= 0.6.3)
chef-winrm-elevated (1.2.5)
chef-winrm (>= 2.3.11)
chef-winrm-fs (>= 1.3.7)
erubi (~> 1.8)
chef-winrm-fs (1.3.7)
chef-winrm (>= 2.3.11)
erubi (>= 1.7)
logging (>= 1.6.1, < 3.0)
rubyzip (~> 2.0)
chef-zero (15.0.17)
activesupport (~> 7.0, < 7.1)
ffi-yajl (~> 2.2) ffi-yajl (~> 2.2)
hashie (>= 2.0, < 5.0) hashie (>= 2.0, < 5.0)
mixlib-log (>= 2.0, < 4.0) mixlib-log (>= 2.0, < 4.0)
rack (~> 2.0, >= 2.0.6) rack (~> 3.1, >= 3.1.10)
rackup (~> 2.2, >= 2.2.1)
uuidtools (~> 2.1) uuidtools (~> 2.1)
webrick webrick
coderay (1.1.3) coderay (1.1.3)
concurrent-ruby (1.2.2) concurrent-ruby (1.3.5)
cookbook-omnifetch (0.12.2) cookbook-omnifetch (0.12.2)
mixlib-archive (>= 0.4, < 2.0) mixlib-archive (>= 0.4, < 2.0)
cookstyle (8.1.4)
rubocop (= 1.75.8)
corefoundation (0.3.13) corefoundation (0.3.13)
ffi (>= 1.15.0) ffi (>= 1.15.0)
diff-lcs (1.3) date (3.4.1)
erubi (1.12.0) diff-lcs (1.5.1)
domain_name (0.6.20240107)
erubi (1.13.1)
erubis (2.7.0) erubis (2.7.0)
faraday (1.4.3) faraday (2.13.1)
faraday-em_http (~> 1.0) faraday-net_http (>= 2.0, < 3.5)
faraday-em_synchrony (~> 1.0) json
faraday-excon (~> 1.1) logger
faraday-net_http (~> 1.0) faraday-follow_redirects (0.3.0)
faraday-net_http_persistent (~> 1.1) faraday (>= 1, < 3)
multipart-post (>= 1.2, < 3) faraday-net_http (3.4.0)
ruby2_keywords (>= 0.0.4) net-http (>= 0.5.0)
faraday-em_http (1.0.0) ffi (1.16.3)
faraday-em_synchrony (1.0.0) ffi-libarchive (1.1.14)
faraday-excon (1.1.0)
faraday-net_http (1.0.1)
faraday-net_http_persistent (1.2.0)
faraday_middleware (1.2.0)
faraday (~> 1.0)
ffi (1.15.5)
ffi-libarchive (1.1.3)
ffi (~> 1.0) ffi (~> 1.0)
ffi-yajl (2.4.0) ffi-yajl (2.6.0)
libyajl2 (>= 1.2) libyajl2 (>= 1.2)
fuzzyurl (0.9.0) fuzzyurl (0.9.0)
gssapi (1.3.1) gssapi (1.3.1)
ffi (>= 1.0.1) ffi (>= 1.0.1)
gyoku (1.4.0)
builder (>= 2.1.2)
rexml (~> 3.0)
hashie (4.1.0) hashie (4.1.0)
httpclient (2.8.3) http-accept (1.7.0)
http-cookie (1.0.8)
domain_name (~> 0.5)
httpclient (2.9.0)
mutex_m
i18n (1.14.7)
concurrent-ruby (~> 1.0)
iniparse (1.5.0) iniparse (1.5.0)
inspec-core (4.56.20) inspec-core (5.22.80)
addressable (~> 2.4) addressable (~> 2.4)
chef-telemetry (~> 1.0, >= 1.0.8) chef-telemetry (~> 1.0, >= 1.0.8)
faraday (>= 0.9.0, < 1.5) cookstyle
faraday_middleware (~> 1.0) faraday (>= 1, < 3)
hashie (>= 3.4, < 5.0) faraday-follow_redirects (~> 0.3)
hashie (>= 3.4, < 6.0)
license-acceptance (>= 0.2.13, < 3.0) license-acceptance (>= 0.2.13, < 3.0)
method_source (>= 0.8, < 2.0) method_source (>= 0.8, < 2.0)
mixlib-log (~> 3.0) mixlib-log (~> 3.0, < 3.2)
multipart-post (~> 2.0) multipart-post (~> 2.0)
parallel (~> 1.9) parallel (~> 1.9)
parslet (>= 1.5, < 2.0) parslet (>= 1.5, < 3.0)
pry (~> 0.13) pry (~> 0.13)
rspec (>= 3.9, <= 3.11) rspec (>= 3.9, <= 3.12)
rspec-its (~> 1.2) rspec-its (~> 1.2)
rubyzip (>= 1.2.2, < 3.0) rubyzip (>= 1.2.2, < 3.0)
semverse (~> 3.0) semverse (~> 3.0)
sslshake (~> 1.2) sslshake (~> 1.2)
thor (>= 0.20, < 2.0) thor (>= 0.20, < 1.3.0)
tomlrb (>= 1.2, < 2.1) tomlrb (>= 1.2, < 2.1)
train-core (~> 3.0) train-core (~> 3.12.13)
tty-prompt (~> 0.17) tty-prompt (~> 0.17)
tty-table (~> 0.10) tty-table (~> 0.10)
ipaddress (0.8.3) ipaddress (0.8.3)
jmespath (1.6.2) jmespath (1.6.2)
json (2.6.3) json (2.12.2)
language_server-protocol (3.17.0.5)
libyajl2 (2.1.0) libyajl2 (2.1.0)
license-acceptance (2.1.13) license-acceptance (2.1.13)
pastel (~> 0.7) pastel (~> 0.7)
tomlrb (>= 1.2, < 3.0) tomlrb (>= 1.2, < 3.0)
tty-box (~> 0.6) tty-box (~> 0.6)
tty-prompt (~> 0.20) tty-prompt (~> 0.20)
lint_roller (1.1.0)
little-plugger (1.1.4) little-plugger (1.1.4)
logging (2.3.1) logger (1.7.0)
logging (2.4.0)
little-plugger (~> 1.1) little-plugger (~> 1.1)
multi_json (~> 1.14) multi_json (~> 1.14)
method_source (1.0.0) method_source (1.1.0)
minitar (0.9) mime-types (3.7.0)
logger
mime-types-data (~> 3.2025, >= 3.2025.0507)
mime-types-data (3.2025.0527)
minitar (1.0.2)
minitest (5.25.5)
mixlib-archive (1.1.7) mixlib-archive (1.1.7)
mixlib-log mixlib-log
mixlib-authentication (3.0.10) mixlib-authentication (3.0.10)
mixlib-cli (2.1.8) mixlib-cli (2.1.8)
mixlib-config (3.0.27) mixlib-config (3.0.27)
tomlrb tomlrb
mixlib-log (3.0.9) mixlib-log (3.1.2.1)
mixlib-shellout (3.2.7) ffi (< 1.17.0)
mixlib-shellout (3.3.9)
chef-utils chef-utils
molinillo (0.8.0) molinillo (0.8.0)
multi_json (1.15.0) multi_json (1.15.0)
multipart-post (2.3.0) multipart-post (2.4.1)
net-scp (4.0.0) mutex_m (0.3.0)
net-ftp (0.3.8)
net-protocol
time
net-http (0.6.0)
uri
net-protocol (0.2.2)
timeout
net-scp (4.1.0)
net-ssh (>= 2.6.5, < 8.0.0) net-ssh (>= 2.6.5, < 8.0.0)
net-sftp (2.1.2) net-sftp (4.0.0)
net-ssh (>= 2.6.5) net-ssh (>= 5.0.0, < 8.0.0)
net-ssh (7.1.0) net-ssh (7.3.0)
nori (2.6.0) netrc (0.11.0)
ohai (17.9.1) nori (2.7.0)
chef-config (>= 14.12, < 18) bigdecimal
chef-utils (>= 16.0, < 18) ohai (18.2.6)
ffi (~> 1.9) chef-config (>= 14.12, < 19)
chef-utils (>= 16.0, < 19)
ffi (~> 1.9, <= 1.17.0)
ffi-yajl (~> 2.2) ffi-yajl (~> 2.2)
ipaddress ipaddress
mixlib-cli (>= 1.7.0) mixlib-cli (>= 1.7.0)
@ -193,37 +251,66 @@ GEM
plist (~> 3.1) plist (~> 3.1)
train-core train-core
wmi-lite (~> 1.0) wmi-lite (~> 1.0)
parallel (1.23.0) parallel (1.27.0)
parslet (1.8.2) parser (3.3.8.0)
ast (~> 2.4.1)
racc
parslet (2.0.0)
pastel (0.8.0) pastel (0.8.0)
tty-color (~> 0.5) tty-color (~> 0.5)
plist (3.7.0) plist (3.7.2)
proxifier (1.0.3) prism (1.4.0)
pry (0.14.2) proxifier2 (1.1.0)
pry (0.15.2)
coderay (~> 1.1) coderay (~> 1.1)
method_source (~> 1.0) method_source (~> 1.0)
public_suffix (5.0.1) public_suffix (6.0.2)
rack (2.2.6.4) racc (1.8.1)
rexml (3.2.5) rack (3.1.15)
rspec (3.11.0) rackup (2.2.1)
rspec-core (~> 3.11.0) rack (>= 3)
rspec-expectations (~> 3.11.0) rainbow (3.1.1)
rspec-mocks (~> 3.11.0) regexp_parser (2.10.0)
rspec-core (3.11.0) rest-client (2.1.0)
rspec-support (~> 3.11.0) http-accept (>= 1.7.0, < 2.0)
rspec-expectations (3.11.1) http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 4.0)
netrc (~> 0.8)
rexml (3.4.1)
rspec (3.12.0)
rspec-core (~> 3.12.0)
rspec-expectations (~> 3.12.0)
rspec-mocks (~> 3.12.0)
rspec-core (3.12.3)
rspec-support (~> 3.12.0)
rspec-expectations (3.12.4)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.11.0) rspec-support (~> 3.12.0)
rspec-its (1.3.0) rspec-its (1.3.1)
rspec-core (>= 3.0.0) rspec-core (>= 3.0.0)
rspec-expectations (>= 3.0.0) rspec-expectations (>= 3.0.0)
rspec-mocks (3.11.2) rspec-mocks (3.12.7)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.11.0) rspec-support (~> 3.12.0)
rspec-support (3.11.1) rspec-support (3.12.2)
ruby2_keywords (0.0.5) rubocop (1.75.8)
rubyntlm (0.6.3) json (~> 2.3)
rubyzip (2.3.2) language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.44.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.45.0)
parser (>= 3.3.7.2)
prism (~> 1.4)
ruby-progressbar (1.13.0)
rubyntlm (0.6.5)
base64
rubyzip (2.4.1)
semverse (3.0.2) semverse (3.0.2)
solve (4.0.4) solve (4.0.4)
molinillo (~> 0.6) molinillo (~> 0.6)
@ -235,19 +322,26 @@ GEM
unicode_utils (~> 1.4) unicode_utils (~> 1.4)
strings-ansi (0.2.0) strings-ansi (0.2.0)
syslog-logger (1.6.8) syslog-logger (1.6.8)
thor (1.2.1) thor (1.2.2)
time (0.4.1)
date
timeout (0.4.3)
tomlrb (1.3.0) tomlrb (1.3.0)
train-core (3.10.7) train-core (3.12.13)
addressable (~> 2.5) addressable (~> 2.5)
ffi (!= 1.13.0) ffi (!= 1.13.0)
json (>= 1.8, < 3.0) json (>= 1.8, < 3.0)
mixlib-shellout (>= 2.0, < 4.0) mixlib-shellout (>= 2.0, < 4.0)
net-scp (>= 1.2, < 5.0) net-scp (>= 1.2, < 5.0)
net-ssh (>= 2.9, < 8.0) net-ssh (>= 2.9, < 8.0)
train-winrm (0.2.13) train-rest (0.5.0)
winrm (>= 2.3.6, < 3.0) aws-sigv4 (~> 1.5)
winrm-elevated (~> 1.2.2) rest-client (~> 2.1)
winrm-fs (~> 1.0) train-core (~> 3.0)
train-winrm (0.2.19)
chef-winrm (~> 2.3.12)
chef-winrm-elevated (~> 1.2.5)
chef-winrm-fs (~> 1.3.7)
tty-box (0.7.0) tty-box (0.7.0)
pastel (~> 0.8) pastel (~> 0.8)
strings (~> 0.2.0) strings (~> 0.2.0)
@ -261,35 +355,21 @@ GEM
tty-cursor (~> 0.7) tty-cursor (~> 0.7)
tty-screen (~> 0.8) tty-screen (~> 0.8)
wisper (~> 2.0) wisper (~> 2.0)
tty-screen (0.8.1) tty-screen (0.8.2)
tty-table (0.12.0) tty-table (0.12.0)
pastel (~> 0.8) pastel (~> 0.8)
strings (~> 0.2.0) strings (~> 0.2.0)
tty-screen (~> 0.8) tty-screen (~> 0.8)
unicode-display_width (2.4.2) tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
unf_ext (0.0.8.2)
unicode-display_width (2.6.0)
unicode_utils (1.4.0) unicode_utils (1.4.0)
uri (1.0.3)
uuidtools (2.2.0) uuidtools (2.2.0)
vault (0.17.0) vault (0.18.2)
aws-sigv4 aws-sigv4
webrick (1.8.1) webrick (1.9.1)
winrm (2.3.6)
builder (>= 2.1.2)
erubi (~> 1.8)
gssapi (~> 1.2)
gyoku (~> 1.0)
httpclient (~> 2.2, >= 2.2.0.2)
logging (>= 1.6.1, < 3.0)
nori (~> 2.0)
rubyntlm (~> 0.6.0, >= 0.6.3)
winrm-elevated (1.2.3)
erubi (~> 1.8)
winrm (~> 2.0)
winrm-fs (~> 1.0)
winrm-fs (1.3.5)
erubi (~> 1.8)
logging (>= 1.6.1, < 3.0)
rubyzip (~> 2.0)
winrm (~> 2.0)
wisper (2.0.1) wisper (2.0.1)
wmi-lite (1.0.7) wmi-lite (1.0.7)
@ -297,7 +377,7 @@ PLATFORMS
ruby ruby
DEPENDENCIES DEPENDENCIES
chef-cli! chef-cli
BUNDLED WITH BUNDLED WITH
2.1.4 2.6.6

File diff suppressed because it is too large Load diff

View file

@ -224,6 +224,9 @@ mapAliases {
### _ ### ### _ ###
_1password = lib.warnOnInstantiate "_1password has been renamed to _1password-cli to better follow upstream name usage" _1password-cli; # Added 2024-10-24 _1password = lib.warnOnInstantiate "_1password has been renamed to _1password-cli to better follow upstream name usage" _1password-cli; # Added 2024-10-24
_2048-cli = throw "'_2048-cli' has been removed due to archived upstream. Consider using '_2048-in-terminal' instead."; # Added 2025-06-07
_2048-cli-curses = throw "'_2048-cli-curses' has been removed due to archived upstream. Consider using '_2048-in-terminal' instead."; # Added 2025-06-07
_2048-cli-terminal = throw "'_2048-cli-curses' has been removed due to archived upstream. Consider using '_2048-in-terminal' instead."; # Added 2025-06-07
_5etools = throw "'_5etools' has been removed, as upstream is in a questionable legal position and the build was broken."; _5etools = throw "'_5etools' has been removed, as upstream is in a questionable legal position and the build was broken.";
"7z2hashcat" = "7z2hashcat" =
throw "'7z2hashcat' has been renamed to '_7z2hashcat' as the former isn't a valid variable name."; # Added 2024-11-27 throw "'7z2hashcat' has been renamed to '_7z2hashcat' as the former isn't a valid variable name."; # Added 2024-11-27
@ -1896,6 +1899,7 @@ mapAliases {
tepl = libgedit-tepl; # Added 2024-04-29 tepl = libgedit-tepl; # Added 2024-04-29
termplay = throw "'termplay' has been removed due to lack of maintenance upstream"; # Added 2025-01-25 termplay = throw "'termplay' has been removed due to lack of maintenance upstream"; # Added 2025-01-25
testVersion = testers.testVersion; # Added 2022-04-20 testVersion = testers.testVersion; # Added 2022-04-20
texinfo4 = throw "'texinfo4' has been removed in favor of the latest version"; # Added 2025-06-08
tezos-rust-libs = ligo; # Added 2025-06-03 tezos-rust-libs = ligo; # Added 2025-06-03
tfplugindocs = terraform-plugin-docs; # Added 2023-11-01 tfplugindocs = terraform-plugin-docs; # Added 2023-11-01
thiefmd = throw "'thiefmd' has been removed due to lack of maintenance upstream and incompatible with newer Pandoc. Please use 'apostrophe' or 'folio' instead"; # Added 2025-02-20 thiefmd = throw "'thiefmd' has been removed due to lack of maintenance upstream and incompatible with newer Pandoc. Please use 'apostrophe' or 'folio' instead"; # Added 2025-02-20

View file

@ -7689,13 +7689,11 @@ with pkgs;
texinfoPackages = callPackages ../development/tools/misc/texinfo/packages.nix { }; texinfoPackages = callPackages ../development/tools/misc/texinfo/packages.nix { };
inherit (texinfoPackages) inherit (texinfoPackages)
texinfo413
texinfo6_5 # needed for allegro texinfo6_5 # needed for allegro
texinfo6_7 # needed for gpm, iksemel and fwknop texinfo6_7 # needed for gpm, iksemel and fwknop
texinfo6 texinfo6
texinfo7 texinfo7
; ;
texinfo4 = texinfo413; # needed for eukleides and singular
texinfo = texinfo7; texinfo = texinfo7;
texinfoInteractive = texinfo.override { interactive = true; }; texinfoInteractive = texinfo.override { interactive = true; };
@ -14786,10 +14784,6 @@ with pkgs;
### GAMES ### GAMES
_2048-cli = _2048-cli-terminal;
_2048-cli-curses = callPackage ../games/2048-cli { ui = "curses"; };
_2048-cli-terminal = callPackage ../games/2048-cli { ui = "terminal"; };
_90secondportraits = callPackage ../games/90secondportraits { love = love_0_10; }; _90secondportraits = callPackage ../games/90secondportraits { love = love_0_10; };
inherit (callPackages ../games/fteqw { }) inherit (callPackages ../games/fteqw { })