Merge master into staging-next

This commit is contained in:
github-actions[bot] 2023-11-01 18:01:01 +00:00 committed by GitHub
commit cd7af6170b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
90 changed files with 5638 additions and 4228 deletions

View File

@ -38,6 +38,24 @@ Since release 15.09 there is a new TeX Live packaging that lives entirely under
- Note that the wrapper assumes that the result has a chance to be useful. For example, the core executables should be present, as well as some core data files. The supported way of ensuring this is by including some scheme, for example `scheme-basic`, into the combination. - Note that the wrapper assumes that the result has a chance to be useful. For example, the core executables should be present, as well as some core data files. The supported way of ensuring this is by including some scheme, for example `scheme-basic`, into the combination.
- TeX Live packages are also available under `texlive.pkgs` as derivations with outputs `out`, `tex`, `texdoc`, `texsource`, `tlpkg`, `man`, `info`. They cannot be installed outside of `texlive.combine` but are available for other uses. To repackage a font, for instance, use
```nix
stdenvNoCC.mkDerivation rec {
src = texlive.pkgs.iwona;
inherit (src) pname version;
installPhase = ''
runHook preInstall
install -Dm644 fonts/opentype/nowacki/iwona/*.otf -t $out/share/fonts/opentype
runHook postInstall
'';
}
```
See `biber`, `iwona` for complete examples.
## Custom packages {#sec-language-texlive-custom-packages} ## Custom packages {#sec-language-texlive-custom-packages}
You may find that you need to use an external TeX package. A derivation for such package has to provide the contents of the "texmf" directory in its output and provide the appropriate `tlType` attribute (one of `"run"`, `"bin"`, `"doc"`, `"source"`). Dependencies on other TeX packages can be listed in the attribute `tlDeps`. You may find that you need to use an external TeX package. A derivation for such package has to provide the contents of the "texmf" directory in its output and provide the appropriate `tlType` attribute (one of `"run"`, `"bin"`, `"doc"`, `"source"`). Dependencies on other TeX packages can be listed in the attribute `tlDeps`.

View File

@ -3055,6 +3055,9 @@
email = "chayleaf-nix@pavluk.org"; email = "chayleaf-nix@pavluk.org";
github = "chayleaf"; github = "chayleaf";
githubId = 9590981; githubId = 9590981;
keys = [{
fingerprint = "4314 3701 154D 9E5F 7051 7ECF 7817 1AD4 6227 E68E";
}];
matrix = "@chayleaf:matrix.pavluk.org"; matrix = "@chayleaf:matrix.pavluk.org";
name = "Anna Pavlyuk"; name = "Anna Pavlyuk";
}; };
@ -12123,6 +12126,14 @@
github = "MrTarantoga"; github = "MrTarantoga";
githubId = 53876219; githubId = 53876219;
}; };
mrtnvgr = {
name = "Egor Martynov";
github = "mrtnvgr";
githubId = 48406064;
keys = [{
fingerprint = "6FAD DB43 D5A5 FE52 6835 0943 5B33 79E9 81EF 48B1";
}];
};
mrVanDalo = { mrVanDalo = {
email = "contact@ingolf-wagner.de"; email = "contact@ingolf-wagner.de";
github = "mrVanDalo"; github = "mrVanDalo";

View File

@ -98,8 +98,7 @@ in
nix.settings.nix-path = mkIf (! cfg.channel.enable) (mkDefault ""); nix.settings.nix-path = mkIf (! cfg.channel.enable) (mkDefault "");
systemd.tmpfiles.rules = lib.mkIf cfg.channel.enable [ systemd.tmpfiles.rules = lib.mkIf cfg.channel.enable [
"f /root/.nix-channels -" ''f /root/.nix-channels - - - - ${config.system.defaultChannel} nixos\n''
''w+ "/root/.nix-channels" - - - - ${config.system.defaultChannel} nixos\n''
]; ];
}; };
} }

View File

@ -11,7 +11,16 @@
}; };
testScript = { nodes, ... }: '' testScript = { nodes, ... }: ''
machine.start(allow_reboot=True)
assert machine.succeed("cat /root/.nix-channels") == "${nodes.machine.system.defaultChannel} nixos\n" assert machine.succeed("cat /root/.nix-channels") == "${nodes.machine.system.defaultChannel} nixos\n"
nixpkgs_unstable_channel = "https://nixos.org/channels/nixpkgs-unstable nixpkgs"
machine.succeed(f"echo '{nixpkgs_unstable_channel}' > /root/.nix-channels")
machine.reboot()
assert machine.succeed("cat /root/.nix-channels") == f"{nixpkgs_unstable_channel}\n"
''; '';
} }

View File

@ -14,27 +14,13 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
testScript = { nodes, ... }: testScript = { nodes, ... }:
let let
user = nodes.machine.users.users.alice; user = nodes.machine.users.users.alice;
uid = toString user.uid; env = "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${toString user.uid}/bus DISPLAY=:0";
bus = "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${uid}/bus";
display = "DISPLAY=:0.0";
env = "${bus} ${display}";
gdbus = "${env} gdbus";
su = command: "su - ${user.name} -c '${env} ${command}'"; su = command: "su - ${user.name} -c '${env} ${command}'";
# Call javascript in cinnamon (the shell), returns a tuple (success, output), # Call javascript in cinnamon (the shell), returns a tuple (success, output),
# where `success` is true if the dbus call was successful and `output` is what # where `success` is true if the dbus call was successful and `output` is what
# the javascript evaluates to. # the javascript evaluates to.
eval = "call --session -d org.Cinnamon -o /org/Cinnamon -m org.Cinnamon.Eval"; eval = name: su "gdbus call --session -d org.Cinnamon -o /org/Cinnamon -m org.Cinnamon.Eval ${name}";
# Should be 2 (RunState.RUNNING) when startup is done.
# https://github.com/linuxmint/cinnamon/blob/5.4.0/js/ui/main.js#L183-L187
getRunState = su "${gdbus} ${eval} Main.runState";
# Start gnome-terminal.
gnomeTerminalCommand = su "gnome-terminal";
# Hopefully gnome-terminal's wm class.
wmClass = su "${gdbus} ${eval} global.display.focus_window.wm_class";
in in
'' ''
machine.wait_for_unit("display-manager.service") machine.wait_for_unit("display-manager.service")
@ -54,13 +40,43 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
with subtest("Wait for the Cinnamon shell"): with subtest("Wait for the Cinnamon shell"):
# Correct output should be (true, '2') # Correct output should be (true, '2')
machine.wait_until_succeeds("${getRunState} | grep -q 'true,..2'") # https://github.com/linuxmint/cinnamon/blob/5.4.0/js/ui/main.js#L183-L187
machine.wait_until_succeeds("${eval "Main.runState"} | grep -q 'true,..2'")
with subtest("Check if Cinnamon components actually start"):
for i in ["csd-media-keys", "cinnamon-killer-daemon", "xapp-sn-watcher", "nemo-desktop"]:
machine.wait_until_succeeds(f"pgrep -f {i}")
machine.wait_until_succeeds("journalctl -b --grep 'Loaded applet menu@cinnamon.org'")
machine.wait_until_succeeds("journalctl -b --grep 'calendar@cinnamon.org: Calendar events supported'")
with subtest("Open Cinnamon Settings"):
machine.succeed("${su "cinnamon-settings themes >&2 &"}")
machine.wait_until_succeeds("${eval "global.display.focus_window.wm_class"} | grep -i 'cinnamon-settings'")
machine.wait_for_text('(Style|Appearance|Color)')
machine.sleep(2)
machine.screenshot("cinnamon_settings")
with subtest("Lock the screen"):
machine.succeed("${su "cinnamon-screensaver-command -l >&2 &"}")
machine.wait_until_succeeds("${su "cinnamon-screensaver-command -q"} | grep 'The screensaver is active'")
machine.sleep(2)
machine.screenshot("cinnamon_screensaver")
machine.send_chars("${user.password}\n", delay=0.2)
machine.wait_until_succeeds("${su "cinnamon-screensaver-command -q"} | grep 'The screensaver is inactive'")
machine.sleep(2)
with subtest("Open GNOME Terminal"): with subtest("Open GNOME Terminal"):
machine.succeed("${gnomeTerminalCommand}") machine.succeed("${su "gnome-terminal"}")
# Correct output should be (true, '"Gnome-terminal"') machine.wait_until_succeeds("${eval "global.display.focus_window.wm_class"} | grep -i 'gnome-terminal'")
machine.wait_until_succeeds("${wmClass} | grep -q 'true,...Gnome-terminal'") machine.sleep(2)
machine.sleep(20)
machine.screenshot("screen") with subtest("Open virtual keyboard"):
machine.succeed("${su "dbus-send --print-reply --dest=org.Cinnamon /org/Cinnamon org.Cinnamon.ToggleKeyboard"}")
machine.wait_for_text('(Ctrl|Alt)')
machine.sleep(2)
machine.screenshot("cinnamon_virtual_keyboard")
with subtest("Check if Cinnamon has ever coredumped"):
machine.fail("coredumpctl --json=short | grep -E 'cinnamon|nemo'")
''; '';
}) })

View File

@ -27,11 +27,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "cardinal"; pname = "cardinal";
version = "23.09"; version = "23.10";
src = fetchurl { src = fetchurl {
url = "https://github.com/DISTRHO/Cardinal/releases/download/${version}/cardinal+deps-${version}.tar.xz"; url = "https://github.com/DISTRHO/Cardinal/releases/download/${version}/cardinal+deps-${version}.tar.xz";
hash = "sha256-q42ry47y4tTkUbejv6iN5jXcadXSSTPQ3omhMUevfqU="; hash = "sha256-6Wt2sC7vdrz2Fkl08bNLfnGu+pAV7b5lZUmsx1wtJRE=";
}; };
prePatch = '' prePatch = ''

View File

@ -1,9 +1,17 @@
{ lib, mkDerivation, fetchFromGitLab { lib
, cmake, pkg-config , stdenv
, alsa-lib, pipewire , fetchFromGitLab
, cmake
, pkg-config
, wrapQtAppsHook
, qtbase
, qtsvg
, qtwayland
, alsa-lib
, pipewire
}: }:
mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "qpwgraph"; pname = "qpwgraph";
version = "0.5.3"; version = "0.5.3";
@ -11,13 +19,13 @@ mkDerivation rec {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org";
owner = "rncbc"; owner = "rncbc";
repo = "qpwgraph"; repo = "qpwgraph";
rev = "v${version}"; rev = "v${finalAttrs.version}";
sha256 = "sha256-50KaVpNB5/CTLs2bRbXEinYM23AZxZO/ForrVPFDN8U="; sha256 = "sha256-50KaVpNB5/CTLs2bRbXEinYM23AZxZO/ForrVPFDN8U=";
}; };
nativeBuildInputs = [ cmake pkg-config ]; nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
buildInputs = [ alsa-lib pipewire ]; buildInputs = [ qtbase qtsvg qtwayland alsa-lib pipewire ];
cmakeFlags = [ "-DCONFIG_WAYLAND=ON" ]; cmakeFlags = [ "-DCONFIG_WAYLAND=ON" ];
@ -32,5 +40,6 @@ mkDerivation rec {
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ kanashimia exi Scrumplex ]; maintainers = with maintainers; [ kanashimia exi Scrumplex ];
mainProgram = "qpwgraph";
}; };
} })

View File

@ -5,11 +5,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "tetraproc"; pname = "tetraproc";
version = "0.8.6"; version = "0.9.2";
src = fetchurl { src = fetchurl {
url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2"; url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
sha256 = "02155ljfwgvfgq9z258fb4z7jrz7qx022d054fj5gr0v007cv0r7"; sha256 = "sha256-kRak33RuYusG6U5FOf9b9vOJUjNK3zqoLL0V/bWBJqs=";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View File

@ -1229,8 +1229,8 @@ let
mktplcRef = { mktplcRef = {
name = "elixir-ls"; name = "elixir-ls";
publisher = "JakeBecker"; publisher = "JakeBecker";
version = "0.17.1"; version = "0.17.5";
sha256 = "sha256-WBtIdz+8zsyTl43ovU3Dz+8p154ZGvHp6BA3AQtXN/U="; sha256 = "sha256-2iOyLNLMQ6Snm0gvv7Yl6von/A9UTfLYrH5l1PoJwUc=";
}; };
meta = { meta = {
changelog = "https://marketplace.visualstudio.com/items/JakeBecker.elixir-ls/changelog"; changelog = "https://marketplace.visualstudio.com/items/JakeBecker.elixir-ls/changelog";

View File

@ -1,23 +1,24 @@
{ {
"name": "rust-analyzer", "name": "rust-analyzer",
"version": "0.3.1607", "version": "0.3.1697",
"dependencies": { "dependencies": {
"@hpcc-js/wasm": "^2.13.0",
"anser": "^2.1.1", "anser": "^2.1.1",
"d3": "^7.6.1", "d3": "^7.8.5",
"d3-graphviz": "^5.0.2", "d3-graphviz": "^5.0.2",
"vscode-languageclient": "^8.0.2", "vscode-languageclient": "^8.1.0",
"@tsconfig/strictest": "^2.0.1",
"@types/node": "~16.11.7", "@types/node": "~16.11.7",
"@types/vscode": "~1.66.0", "@types/vscode": "~1.75",
"@typescript-eslint/eslint-plugin": "^5.30.5", "@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^5.30.5", "@typescript-eslint/parser": "^6.0.0",
"@vscode/test-electron": "^2.1.5", "@vscode/test-electron": "^2.3.3",
"cross-env": "^7.0.3", "@vscode/vsce": "^2.19.0",
"eslint": "^8.19.0", "eslint": "^8.44.0",
"eslint-config-prettier": "^8.5.0", "eslint-config-prettier": "^8.8.0",
"ovsx": "^0.5.2", "ovsx": "^0.8.2",
"prettier": "^2.7.1", "prettier": "^3.0.0",
"tslib": "^2.4.0", "tslib": "^2.6.0",
"typescript": "^4.7.4", "typescript": "^5.1.6"
"vsce": "^2.9.2"
} }
} }

View File

@ -20,7 +20,7 @@ let
# Use the plugin version as in vscode marketplace, updated by update script. # Use the plugin version as in vscode marketplace, updated by update script.
inherit (vsix) version; inherit (vsix) version;
releaseTag = "2023-07-31"; releaseTag = "2023-10-16";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rust-lang"; owner = "rust-lang";

View File

@ -1,29 +1,39 @@
{ lib { lib
, stdenv , stdenv
, fetchFromGitHub , fetchFromGitHub
, fetchpatch
, gitUpdater , gitUpdater
, cmake , cmake
, python3 , python3
, withDynarec ? stdenv.hostPlatform.isAarch64 , withDynarec ? (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isRiscV64)
, runCommand , runCommand
, hello-x86_64 , hello-x86_64
, box64
}: }:
# Currently only supported on ARM # Currently only supported on ARM & RISC-V
assert withDynarec -> stdenv.hostPlatform.isAarch64; assert withDynarec -> (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isRiscV64);
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "box64"; pname = "box64";
version = "0.2.4"; version = "0.2.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ptitSeb"; owner = "ptitSeb";
repo = pname; repo = "box64";
rev = "v${version}"; rev = "v${finalAttrs.version}";
hash = "sha256-iCZv/WvqZkH6i23fSLA/p0nG5/CgzjyU5glVgje4c3w="; hash = "sha256-iCZv/WvqZkH6i23fSLA/p0nG5/CgzjyU5glVgje4c3w=";
}; };
patches = [
# Fix crash due to regression in SDL1 AudioCallback signature in 0.2.4
# Remove when version > 0.2.4
(fetchpatch {
name = "0001-box64-Fixed_signature_of_SDL1_AudioCallback.patch";
url = "https://github.com/ptitSeb/box64/commit/5fabd602aea1937e3c5ce58843504c2492b8c0ec.patch";
hash = "sha256-dBdKijTljCFtSJ2smHrbjH/ok0puGw4YEy/kluLl4AQ=";
})
];
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
python3 python3
@ -31,12 +41,20 @@ stdenv.mkDerivation rec {
cmakeFlags = [ cmakeFlags = [
"-DNOGIT=ON" "-DNOGIT=ON"
"-DARM_DYNAREC=${if withDynarec then "ON" else "OFF"}"
"-DRV64=${if stdenv.hostPlatform.isRiscV64 then "ON" else "OFF"}" # Arch mega-option
"-DPPC64LE=${if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then "ON" else "OFF"}" "-DARM64=${lib.boolToString stdenv.hostPlatform.isAarch64}"
"-DRV64=${lib.boolToString stdenv.hostPlatform.isRiscV64}"
"-DPPC64LE=${lib.boolToString (stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian)}"
"-DLARCH64=${lib.boolToString stdenv.hostPlatform.isLoongArch64}"
] ++ lib.optionals stdenv.hostPlatform.isx86_64 [ ] ++ lib.optionals stdenv.hostPlatform.isx86_64 [
# x86_64 has no arch-specific mega-option, manually enable the options that apply to it
"-DLD80BITS=ON" "-DLD80BITS=ON"
"-DNOALIGN=ON" "-DNOALIGN=ON"
] ++ [
# Arch dynarec
"-DARM_DYNAREC=${lib.boolToString (withDynarec && stdenv.hostPlatform.isAarch64)}"
"-DRV64_DYNAREC=${lib.boolToString (withDynarec && stdenv.hostPlatform.isRiscV64)}"
]; ];
installPhase = '' installPhase = ''
@ -47,9 +65,9 @@ stdenv.mkDerivation rec {
runHook postInstall runHook postInstall
''; '';
doCheck = true; doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
doInstallCheck = true; doInstallCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
installCheckPhase = '' installCheckPhase = ''
runHook preInstallCheck runHook preInstallCheck
@ -68,7 +86,7 @@ stdenv.mkDerivation rec {
rev-prefix = "v"; rev-prefix = "v";
}; };
tests.hello = runCommand "box64-test-hello" { tests.hello = runCommand "box64-test-hello" {
nativeBuildInputs = [ box64 hello-x86_64 ]; nativeBuildInputs = [ finalAttrs.finalPackage ];
} '' } ''
# There is no actual "Hello, world!" with any of the logging enabled, and with all logging disabled it's hard to # There is no actual "Hello, world!" with any of the logging enabled, and with all logging disabled it's hard to
# tell what problems the emulator has run into. # tell what problems the emulator has run into.
@ -81,6 +99,7 @@ stdenv.mkDerivation rec {
description = "Lets you run x86_64 Linux programs on non-x86_64 Linux systems"; description = "Lets you run x86_64 Linux programs on non-x86_64 Linux systems";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ gador OPNA2608 ]; maintainers = with maintainers; [ gador OPNA2608 ];
platforms = [ "x86_64-linux" "aarch64-linux" "riscv64-linux" "powerpc64le-linux" ]; mainProgram = "box64";
platforms = [ "x86_64-linux" "aarch64-linux" "riscv64-linux" "powerpc64le-linux" "loongarch64-linux" "mips64el-linux" ];
}; };
} })

View File

@ -2,38 +2,41 @@
, rustPlatform , rustPlatform
, fetchFromGitHub , fetchFromGitHub
, installShellFiles , installShellFiles
, nix-update-script
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "hyprnome"; pname = "hyprnome";
version = "0.1.0"; version = "0.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "donovanglover"; owner = "donovanglover";
repo = "hyprnome"; repo = "hyprnome";
rev = version; rev = version;
hash = "sha256-jb21hnPSzrCTuW7Yhs6jFzS2WUVQjkn6nCCi6LvoTGA="; hash = "sha256-zlXiT2EOIdgIDI4NQuU3C903SSq5bylBAFJXyv7mdJ4=";
}; };
cargoHash = "sha256-QM5v2hKP3E9W3Aek6kFyFFNAp9s0oTFb4CEtxEHyny0="; cargoHash = "sha256-DpbRs97sr5wpJSrYF99ZiQ0SZOZdoQjfaLhKIAU95HA=";
nativeBuildInputs = [ nativeBuildInputs = [
installShellFiles installShellFiles
]; ];
postInstall = '' postInstall = ''
installManPage man/hyprnome.1 installManPage target/man/hyprnome.1
installShellCompletion --cmd hyprnome \ installShellCompletion --cmd hyprnome \
--bash <(cat completions/hyprnome.bash) \ --bash <(cat target/completions/hyprnome.bash) \
--fish <(cat completions/hyprnome.fish) \ --fish <(cat target/completions/hyprnome.fish) \
--zsh <(cat completions/_hyprnome) --zsh <(cat target/completions/_hyprnome)
''; '';
passthru.updateScript = nix-update-script { };
meta = with lib; { meta = with lib; {
description = "GNOME-like workspace switching in Hyprland"; description = "GNOME-like workspace switching in Hyprland";
homepage = "https://github.com/donovanglover/hyprnome"; homepage = "https://github.com/donovanglover/hyprnome";
license = licenses.mit; license = licenses.gpl3Plus;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ donovanglover ]; maintainers = with maintainers; [ donovanglover ];
mainProgram = "hyprnome"; mainProgram = "hyprnome";

View File

@ -4,7 +4,7 @@
, appimageTools , appimageTools
, makeWrapper , makeWrapper
# graphs will not sync without matching upstream's major electron version # graphs will not sync without matching upstream's major electron version
, electron_24 , electron_25
, git , git
, nix-update-script , nix-update-script
}: }:
@ -14,11 +14,11 @@ stdenv.mkDerivation (finalAttrs: let
in { in {
pname = "logseq"; pname = "logseq";
version = "0.9.19"; version = "0.9.20";
src = fetchurl { src = fetchurl {
url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage"; url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
hash = "sha256-Y3AeeJc+PYJdckpOma5ZDbVtBbjBTfNNDqTip4l02/E="; hash = "sha256-iT0Gc/ePx1tUNTPoE2Ol+dHUmbS4CkneZbyraRBx5Ak=";
name = "${pname}-${version}.AppImage"; name = "${pname}-${version}.AppImage";
}; };
@ -57,7 +57,7 @@ in {
postFixup = '' postFixup = ''
# set the env "LOCAL_GIT_DIRECTORY" for dugite so that we can use the git in nixpkgs # set the env "LOCAL_GIT_DIRECTORY" for dugite so that we can use the git in nixpkgs
makeWrapper ${electron_24}/bin/electron $out/bin/${pname} \ makeWrapper ${electron_25}/bin/electron $out/bin/${pname} \
--set "LOCAL_GIT_DIRECTORY" ${git} \ --set "LOCAL_GIT_DIRECTORY" ${git} \
--add-flags $out/share/${pname}/resources/app \ --add-flags $out/share/${pname}/resources/app \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \ --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \

View File

@ -2,20 +2,21 @@
buildNpmPackage rec { buildNpmPackage rec {
pname = "vieb"; pname = "vieb";
version = "10.3.0"; version = "10.4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Jelmerro"; owner = "Jelmerro";
repo = pname; repo = pname;
rev = version; rev = version;
hash = "sha256-eopsDwgyWshZOppkODGKT8UGnj4vvc7ssEzVAhZeDTA="; hash = "sha256-SQQDlOSP1MZeN6BHdahpxpZ0e60lgA4ph0r2jkmTdP8=";
}; };
postPatch = '' postPatch = ''
sed -i '/"electron"/d' package.json sed -i '/"electron"/d' package.json
''; '';
npmDepsHash = "sha256-9tnLlKzOy8ze4m2beS/pI34IiEa5TdNNr+Rmm2TFgfk="; npmDepsHash = "sha256-yCWSEuhiP6DfcFns6uyUrLBJeQbOK7yJ9QfGhHkTlHI=";
makeCacheWritable = true;
dontNpmBuild = true; dontNpmBuild = true;
nativeBuildInputs = [ makeWrapper ] ++ lib.optional stdenv.isAarch64 python3; nativeBuildInputs = [ makeWrapper ] ++ lib.optional stdenv.isAarch64 python3;

View File

@ -14,11 +14,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "clash-verge"; pname = "clash-verge";
version = "1.3.7"; version = "1.3.8";
src = fetchurl { src = fetchurl {
url = "https://github.com/zzzgydi/clash-verge/releases/download/v${version}/clash-verge_${version}_amd64.deb"; url = "https://github.com/zzzgydi/clash-verge/releases/download/v${version}/clash-verge_${version}_amd64.deb";
hash = "sha256-+RYfGLa4d5JkLWnlYfhjCOSREVJ4ad/R36eSiNj3GIA="; hash = "sha256-kOju4yaa+EKzFWDrk0iSJVoWkQMBjQG3hKLfAsqlsy8=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -13,16 +13,16 @@
buildGoModule rec { buildGoModule rec {
pname = "chart-testing"; pname = "chart-testing";
version = "3.9.0"; version = "3.10.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "helm"; owner = "helm";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-H9Pw4HPffFmRJXGh+e2hcddYfhgmvnUOxezQ6Zc8NwY="; hash = "sha256-2h1Pc313JZ/2NkFOOQnIrhe1Pm8FJ/BvxjAQhs/eSK0=";
}; };
vendorHash = "sha256-9XdLSTr9FKuatJzpWM8AwrPtYDS+LC14bpz6evvJRuQ="; vendorHash = "sha256-E+7ndvXWzsU896/eWyupbvqkLed2ly91osptZKT79fk=";
postPatch = '' postPatch = ''
substituteInPlace pkg/config/config.go \ substituteInPlace pkg/config/config.go \

View File

@ -1,9 +1,9 @@
{ {
"version" = "1.11.46"; "version" = "1.11.47";
"hashes" = { "hashes" = {
"desktopSrcHash" = "sha256-sgdvdTi3fi/vZohh/JPW3I24cQS0i84eM1dUgmEafWs="; "desktopSrcHash" = "sha256-Ea3LJt+3HAOX2PTREMojtuPVTeA6u7VJtysd8bbTbwU=";
"desktopYarnHash" = "1nssv92yk1a53v7mvijkrb3gzif5xrz2j6lxvg7p340z42rm7f9v"; "desktopYarnHash" = "1nssv92yk1a53v7mvijkrb3gzif5xrz2j6lxvg7p340z42rm7f9v";
"webSrcHash" = "sha256-3ucitVtYnOc5UUn4y3u+L0sKWJLt+NNrd5T6mn0wNBg="; "webSrcHash" = "sha256-DPBMZMjDnwjdNsePcUBBU0KRGOpOmNHgQZn9/ad/Qss=";
"webYarnHash" = "19396p654zzzh6d18rpyckjd67lncch3r9a0zmjb7znsi7d78k63"; "webYarnHash" = "0rzipmaq0jarzdawl7lmxnapwzl52kklxadm859hgx9b1hd5vwj7";
}; };
} }

View File

@ -13,16 +13,16 @@
buildNpmPackage rec { buildNpmPackage rec {
pname = "webcord"; pname = "webcord";
version = "4.5.0"; version = "4.5.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "SpacingBat3"; owner = "SpacingBat3";
repo = "WebCord"; repo = "WebCord";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-SIGV/Hl5O+xs1DbA25TGasXJVYgCzAP/GCtsDmxKDvI="; hash = "sha256-isrExJeONhIxJUXOsMMq8l9xF9amInBGnb5D+DKuzHw=";
}; };
npmDepsHash = "sha256-ClPcLHO4+CzOswQaItbFYHVlb0W6Y5NZF140jGpoSJ8="; npmDepsHash = "sha256-RTYPxS6uLLCIu4JfQqMQP8y8+S5uwe3KXWNlbe7/A7Q=";
nativeBuildInputs = [ nativeBuildInputs = [
copyDesktopItems copyDesktopItems

View File

@ -7,13 +7,12 @@
, pkg-config , pkg-config
, wrapGAppsHook4 , wrapGAppsHook4
, cairo , cairo
, dbus
, gdk-pixbuf , gdk-pixbuf
, glib , glib
, graphene , graphene
, gtk3
, gtk4 , gtk4
, libadwaita , libadwaita
, libappindicator-gtk3
, librclone , librclone
, pango , pango
, rclone , rclone
@ -21,16 +20,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "celeste"; pname = "celeste";
version = "0.7.0"; version = "0.8.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hwittenborn"; owner = "hwittenborn";
repo = "celeste"; repo = "celeste";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-fqPAQCbuPnFyn3wioWDETmcXu53808nvnlEzcdUevI4="; hash = "sha256-U+2imF4hUDJAwwf/RFZXfOgTxA+O8c6C+CzQoEQreJw=";
}; };
cargoHash = "sha256-mVl7CsCX7HMlGC2EIKEfHnPNjmrexjsrpDK/Uq/GwpY="; cargoHash = "sha256-9DrJoXT/uD8y7y2r58DMuURSaic+TtlnPPbw/gq9jPA=";
postPatch = '' postPatch = ''
pushd $cargoDepsCopy/librclone-sys pushd $cargoDepsCopy/librclone-sys
@ -64,10 +63,10 @@ rustPlatform.buildRustPackage rec {
buildInputs = [ buildInputs = [
cairo cairo
dbus
gdk-pixbuf gdk-pixbuf
glib glib
graphene graphene
gtk3
gtk4 gtk4
libadwaita libadwaita
librclone librclone
@ -76,7 +75,6 @@ rustPlatform.buildRustPackage rec {
preFixup = '' preFixup = ''
gappsWrapperArgs+=( gappsWrapperArgs+=(
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libappindicator-gtk3 ]}"
--prefix PATH : "${lib.makeBinPath [ rclone ]}" --prefix PATH : "${lib.makeBinPath [ rclone ]}"
) )
''; '';

View File

@ -6,13 +6,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "roxterm"; pname = "roxterm";
version = "3.14.1"; version = "3.14.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "realh"; owner = "realh";
repo = "roxterm"; repo = "roxterm";
rev = version; rev = version;
sha256 = "sha256-IHJ30qXNVv9tUdePskHl1hd5kPivBb2kH1oOstBr/9s="; sha256 = "sha256-LBxVZ5Az0vGalbQd437of5a3aoZH51v6OKTfndHkkiM=";
}; };
nativeBuildInputs = [ cmake pkg-config wrapGAppsHook libxslt ]; nativeBuildInputs = [ cmake pkg-config wrapGAppsHook libxslt ];

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "docker-compose"; pname = "docker-compose";
version = "2.21.0"; version = "2.23.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "docker"; owner = "docker";
repo = "compose"; repo = "compose";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-JekWw5YI6O+CLXc7oNIxPJsRzYimGFDGL6ACyM4D04k="; hash = "sha256-17TlUQNv/L+LZYF8vub2nI5TVF66OqTA8PrjEYjkz5o=";
}; };
postPatch = '' postPatch = ''
@ -16,7 +16,7 @@ buildGoModule rec {
rm -rf e2e/ rm -rf e2e/
''; '';
vendorHash = "sha256-vVnaZLvPbhJNFn/ACuYDbXCKPKNlYoGCm+liTlPMcjs="; vendorHash = "sha256-zBogjMaVkLum1rQVEd+Rw8lRCNC/Dhi7cuz4YH3eCcg=";
ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ]; ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ];

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "imgcrypt"; pname = "imgcrypt";
version = "1.1.8"; version = "1.1.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "containerd"; owner = "containerd";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-FLqFzEEfgsKcjAevhF6+8mR3zOUjfXyfWwWsxVOcdJU="; hash = "sha256-EStyi6RDK1G6kuaDGumZaHB4OrSrhhx/F5GsLe0amyA=";
}; };
vendorHash = null; vendorHash = null;

View File

@ -12,6 +12,7 @@
, libselinux , libselinux
, libsepol , libsepol
, libthai , libthai
, libxkbcommon
, pango , pango
, pcre , pcre
, util-linux , util-linux
@ -24,13 +25,13 @@
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "hyprpicker" + lib.optionalString debug "-debug"; pname = "hyprpicker" + lib.optionalString debug "-debug";
version = "0.1.1"; version = "0.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hyprwm"; owner = "hyprwm";
repo = finalAttrs.pname; repo = finalAttrs.pname;
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-k+rG5AZjz47Q6bpVcTK7r4s7Avg3O+1iw+skK+cn0rk="; hash = "sha256-bys8S7wuY9FJRLD5WriktWED5Hi7nCKSiNbs1Rvfk4s=";
}; };
cmakeBuildType = if debug then "Debug" else "Release"; cmakeBuildType = if debug then "Debug" else "Release";
@ -50,6 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
libselinux libselinux
libsepol libsepol
libthai libthai
libxkbcommon
pango pango
pcre pcre
wayland wayland

View File

@ -7,11 +7,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "i3"; pname = "i3";
version = "4.22"; version = "4.23";
src = fetchurl { src = fetchurl {
url = "https://i3wm.org/downloads/${pname}-${version}.tar.xz"; url = "https://i3wm.org/downloads/${pname}-${version}.tar.xz";
sha256 = "sha256-KGOZEeWdlWOfCSZCqYL14d6lkiUMK1zpjtoQCDNRPks="; sha256 = "sha256-YQJqcZbJE50POq3ScZfosyDFduOkUOAddMGspIQETEY=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -0,0 +1,39 @@
{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, openssl
}:
let
pname = "asm-lsp";
version = "0.4.2";
in
rustPlatform.buildRustPackage {
inherit pname version;
src = fetchFromGitHub {
owner = "bergercookie";
repo = "asm-lsp";
rev = "v${version}";
hash = "sha256-EGgYOU6y23ULjnMGNjYhgF0JMPgvRuQ4UOWqwJxhBpU=";
};
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
];
cargoHash = "sha256-x8Cj39Wki+pdoNIO8QPGK29KFJrHtDMoZJIXFEldno0=";
meta = {
description = "Language server for NASM/GAS/GO Assembly";
homepage = "https://github.com/bergercookie/asm-lsp";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ NotAShelf ];
mainProgram = pname;
platforms = lib.platforms.linux;
};
}

View File

@ -0,0 +1,49 @@
{ lib
, stdenvNoCC
, fetchzip
, autoPatchelfHook
, SDL2
, practiceMod ? false
}:
let
directory = if practiceMod then "CELESTE*Practice*" else "CELESTE";
srcbin = if practiceMod then "celeste_practice_mod" else "celeste";
outbin = if practiceMod then "celeste-classic-pm" else "celeste-classic";
in
stdenvNoCC.mkDerivation {
pname = outbin;
version = "unstable-2020-12-08";
# From https://www.speedrun.com/celestep8/resources
src = fetchzip {
url = "https://www.speedrun.com/static/resource/174ye.zip?v=f3dc98f";
hash = "sha256-GANHqKB0N905QJOLaePKWkUuPl9UlL1iqvkMMvw/CC8=";
extension = "zip";
};
nativeBuildInputs = [
autoPatchelfHook
];
buildInputs = [ SDL2 ];
installPhase = ''
runHook preInstall
install -Dsm755 ${directory}/${srcbin} $out/lib/${outbin}/${outbin}
install -Dm444 ${directory}/data.pod $out/lib/${outbin}/data.pod
mkdir -p $out/bin
ln -s $out/lib/${outbin}/${outbin} $out/bin/
runHook postInstall
'';
meta = with lib; {
description = "A PICO-8 platformer about climbing a mountain, made in four days${lib.optionalString practiceMod " (Practice Mod)"}";
homepage = "https://celesteclassic.github.io/";
license = licenses.unfree;
platforms = platforms.linux;
mainProgram = outbin;
maintainers = with maintainers; [ mrtnvgr ];
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
};
}

View File

@ -5,17 +5,22 @@
php.buildComposerProject (finalAttrs: { php.buildComposerProject (finalAttrs: {
pname = "phel"; pname = "phel";
version = "0.11.0-dev"; version = "0.12.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "phel-lang"; owner = "phel-lang";
repo = "phel-lang"; repo = "phel-lang";
rev = "83d9d81b6c7daae361c0f1f68462083027b81581"; rev = "v${finalAttrs.version}";
hash = "sha256-B2IozL/nJE4C1Gq54/64TJEySC1STroG1poCBzd3j3I="; hash = "sha256-5PMd87Xp7i3Q1ryKQWJBmNbU5TGo2LQ6uvIFP3T36vk=";
}; };
vendorHash = "sha256-83GX/dxHa6w1E34wnJshg7yxlVyRkDT5jmAPCCqPdtA="; vendorHash = "sha256-83GX/dxHa6w1E34wnJshg7yxlVyRkDT5jmAPCCqPdtA=";
doInstallCheck = true;
postCheckInstall = ''
$out/bin/phel --version
'';
meta = { meta = {
changelog = "https://github.com/phel-lang/phel-lang/releases/tag/v${finalAttrs.version}"; changelog = "https://github.com/phel-lang/phel-lang/releases/tag/v${finalAttrs.version}";
description = "Phel is a functional programming language that compiles to PHP. A Lisp dialect inspired by Clojure and Janet."; description = "Phel is a functional programming language that compiles to PHP. A Lisp dialect inspired by Clojure and Janet.";

View File

@ -0,0 +1,61 @@
{ lib
, buildGoModule
, fetchFromGitHub
, makeWrapper
, go
, testers
, terraform-plugin-docs
, nix-update-script
}:
buildGoModule rec {
pname = "terraform-plugin-docs";
version = "0.16.0";
src = fetchFromGitHub {
owner = "hashicorp";
repo = "terraform-plugin-docs";
rev = "refs/tags/v${version}";
sha256 = "sha256-5vbi69GMgkzvN3aEQbNTbk99rg+kfvAvUrdDsuyIm9s=";
};
vendorHash = "sha256-AjW6BokLVDkIWXToJ7wNq/g19xKTAfpQ/gVlKCV5qw0=";
nativeBuildInputs = [ makeWrapper ];
subPackages = [
"cmd/tfplugindocs"
];
allowGoReference = true;
CGO_ENABLED = 0;
ldflags = [
"-s"
"-w"
"-X main.version=${version}"
"-X main.commit=${src.rev}"
];
postInstall = ''
wrapProgram $out/bin/tfplugindocs --prefix PATH : ${lib.makeBinPath [ go ]}
'';
passthru = {
tests.version = testers.testVersion {
command = "tfplugindocs --version";
package = terraform-plugin-docs;
};
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Generate and validate Terraform plugin/provider documentation";
homepage = "https://github.com/hashicorp/terraform-plugin-docs";
changelog = "https://github.com/hashicorp/terraform-plugin-docs/releases/tag/v${version}";
license = licenses.mpl20;
mainProgram = "tfplugindocs";
maintainers = with maintainers; [ lewo ];
};
}

View File

@ -1,10 +1,9 @@
{ lib, stdenvNoCC, texlive }: { lib, stdenvNoCC, texlive }:
stdenvNoCC.mkDerivation { stdenvNoCC.mkDerivation rec {
pname = "iwona"; inherit (src) pname version;
version = "0.995b";
src = lib.head (builtins.filter (p: p.tlType == "run") texlive.iwona.pkgs); src = texlive.pkgs.iwona;
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
@ -20,7 +19,7 @@ stdenvNoCC.mkDerivation {
# "[...] GUST Font License (GFL), which is a free license, legally # "[...] GUST Font License (GFL), which is a free license, legally
# equivalent to the LaTeX Project Public # License (LPPL), version 1.3c or # equivalent to the LaTeX Project Public # License (LPPL), version 1.3c or
# later." - GUST website # later." - GUST website
license = licenses.lppl13c; license = src.meta.license;
maintainers = with maintainers; [ siddharthist ]; maintainers = with maintainers; [ siddharthist ];
platforms = platforms.all; platforms = platforms.all;
}; };

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fstar"; pname = "fstar";
version = "2023.04.25"; version = "2023.09.03";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "FStarLang"; owner = "FStarLang";
repo = "FStar"; repo = "FStar";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-LF8eXi/es337QJ2fs5u9pLqegJkh1kDLjK8p4CcSGGc="; hash = "sha256-ymoP5DvaLdrdwJcnhZnLEvwNxUFzhkICajPyK4lvacc=";
}; };
strictDeps = true; strictDeps = true;
@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
stdint stdint
yojson yojson
fileutils fileutils
memtrace
menhirLib menhirLib
pprint pprint
sedlex sedlex

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "parson"; pname = "parson";
version = "1.5.2"; version = "1.5.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kgabis"; owner = "kgabis";
repo = "parson"; repo = "parson";
rev = "60c37844d7a1c97547812cac3423d458c73e60f9"; # upstream doesn't use tags rev = "ba29f4eda9ea7703a9f6a9cf2b0532a2605723c3"; # upstream doesn't use tags
hash = "sha256-SbM0kqRtdcz1s+pUTW7VPMY1O6zdql3bao19Rk4t470="; hash = "sha256-IEmCa0nauUzG+zcLpr++ySD7i21zVJh/35r9RaQkok0=";
}; };
nativeBuildInputs = [ meson ninja ]; nativeBuildInputs = [ meson ninja ];

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "maestro"; pname = "maestro";
version = "1.33.1"; version = "1.34.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/mobile-dev-inc/maestro/releases/download/cli-${version}/maestro.zip"; url = "https://github.com/mobile-dev-inc/maestro/releases/download/cli-${version}/maestro.zip";
sha256 = "142h53qwmibi9bpdwla9ard771vcri8yibnynvgj5nvfgapj2p4z"; sha256 = "1qbva38lcy1rm5k6r207hk3nqrr07h7x9sdppz4w5f37q0ll986r";
}; };
dontUnpack = true; dontUnpack = true;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,50 @@
{ lib
, fetchFromGitHub
, buildPythonPackage
, pytestCheckHook
, pythonOlder
, setuptools
, base58
, coincurve
}:
buildPythonPackage rec {
pname = "bip32";
version = "3.4";
pyproject = true;
disabled = pythonOlder "3.9";
# the PyPi source distribution ships a broken setup.py, so use github instead
src = fetchFromGitHub {
owner = "darosior";
repo = "python-bip32";
rev = version;
hash = "sha256-o8UKR17XDWp1wTWYeDL0DJY+D11YI4mg0UuGEAPkHxE=";
};
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
base58
coincurve
];
nativeCheckInputs = [
pytestCheckHook
];
pythonImportsCheck = [
"bip32"
];
meta = with lib; {
description = "Minimalistic implementation of the BIP32 key derivation scheme";
homepage = "https://github.com/darosior/python-bip32";
changelog = "https://github.com/darosior/python-bip32/blob/${version}/CHANGELOG.md";
license = with licenses; [ bsd3 ];
maintainers = with maintainers; [ arcnmx ];
};
}

View File

@ -62,7 +62,7 @@ buildPythonPackage rec {
owner = "iterative"; owner = "iterative";
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-0XuljGj+gvYGhYD4CqGgZlESNuXG0V896mztEbJErb8="; hash = "sha256-oCNszhLGNXNGiQtp91wT4GfuNzDhbZrVR55K41Ykhdg=";
}; };
pythonRelaxDeps = [ pythonRelaxDeps = [

View File

@ -10,14 +10,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "enlighten"; pname = "enlighten";
version = "1.12.0"; version = "1.12.2";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-a4r20HG13gUBOjjoDhaHJtxv+yhY3oF/d+QV+Fss6Bk="; hash = "sha256-jAn2VxEZdGzuZ3bL9OfASkjoiPTMrm2zd6WHZ0HwiZ8=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -15,14 +15,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "gtts"; pname = "gtts";
version = "2.3.2"; version = "2.4.0";
format = "pyproject"; format = "pyproject";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pndurette"; owner = "pndurette";
repo = "gTTS"; repo = "gTTS";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-Z5dM/PzIA8qtw0RepTKmHpqBwYMRwNLhWuEC0aBGL3U="; hash = "sha256-M/RbNw5SJb1R78MDTqBHNWE0I/9PlqikrrJAy1r02f8=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -4,6 +4,8 @@
, setuptools , setuptools
, ledgercomm , ledgercomm
, packaging , packaging
, bip32
, coincurve
, typing-extensions , typing-extensions
}: }:
@ -25,6 +27,8 @@ buildPythonPackage rec {
propagatedBuildInputs = [ propagatedBuildInputs = [
ledgercomm ledgercomm
packaging packaging
bip32
coincurve
typing-extensions typing-extensions
]; ];

View File

@ -14,25 +14,24 @@
, pytest-mock , pytest-mock
, pytest-vcr , pytest-vcr
, requests-mock , requests-mock
, setuptools
, pytest-cov
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "mastodon-py"; pname = "mastodon-py";
version = "1.8.1"; # tests are broken on last release, check after next release (> 1.8.1)
version = "unstable-2023-06-24";
format = "setuptools"; format = "pyproject";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "halcy"; owner = "halcy";
repo = "Mastodon.py"; repo = "Mastodon.py";
rev = "refs/tags/${version}"; rev = "cd86887d88bbc07de462d1e00a8fbc3d956c0151";
hash = "sha256-r0AAUjd2MBfZANEpyztMNyaQTlGWvWoUVjJNO1eL218="; hash = "sha256-rJocFvtBPrSSny3lwENuRsQdAzi3u8b+SfDNGloniWI=";
}; };
postPatch = ''
sed -i '/^addopts/d' setup.cfg
'';
propagatedBuildInputs = [ propagatedBuildInputs = [
blurhash blurhash
cryptography cryptography
@ -49,7 +48,9 @@ buildPythonPackage rec {
pytestCheckHook pytestCheckHook
pytest-mock pytest-mock
pytest-vcr pytest-vcr
pytest-cov
requests-mock requests-mock
setuptools
]; ];
pythonImportsCheck = [ "mastodon" ]; pythonImportsCheck = [ "mastodon" ];

View File

@ -11,14 +11,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "opencensus-ext-azure"; pname = "opencensus-ext-azure";
version = "1.1.9"; version = "1.1.11";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.4"; disabled = pythonOlder "3.4";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-UHYIt36djqq2/9X/EbfOuH9U5KapQMS4FDMbTRsDQVE="; hash = "sha256-IdTU0FGdSCOdBBQskLalH17MBDaE64DPoKcBqiM0YHM=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -7,13 +7,13 @@
, pyyaml , pyyaml
, requests , requests
, responses , responses
, setuptools-scm , poetry-core
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pysolcast"; pname = "pysolcast";
version = "1.0.15"; version = "2.0.0";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -21,13 +21,11 @@ buildPythonPackage rec {
owner = "mcaulifn"; owner = "mcaulifn";
repo = "solcast"; repo = "solcast";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-CvijYl6zSwQ6BrGZPJWp75jAApc2y/7cPdZxMq5AjmI="; hash = "sha256-jLhM47o6LvkPux0kusOrRk4TDS6VLWE0QMEiQxlBCwo=";
}; };
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [ nativeBuildInputs = [
setuptools-scm poetry-core
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -41,11 +39,6 @@ buildPythonPackage rec {
responses responses
]; ];
postPatch = ''
substituteInPlace setup.cfg \
--replace "pytest-runner" ""
'';
pythonImportsCheck = [ pythonImportsCheck = [
"pysolcast" "pysolcast"
]; ];

View File

@ -1,11 +1,11 @@
{ {
cp39 = { cp39 = {
sha256 = "7708cedbeed8e37e468740b75aa941b2a3c80d2cb8791081e0b0ea159617a912"; sha256 = "0e0f7dbeb4444940c72b64fdecd6f331593466914b2dffeed03ce97225acec14";
}; };
cp310 = { cp310 = {
sha256 = "c9b5aabf5f41fe05028e4f3a271dc89ca7cd9c210f48a4ed815b852210ebb5a8"; sha256 = "b83621f5d2d4079e6ae624c3bf30046a4fefa0ea7ea5e4a4dfe4b50c580b3768";
}; };
cp311 = { cp311 = {
sha256 = "7b0286cd05d9107a2d978c716a7447c09ffd382971e5b2b388602d56f6b1c662"; sha256 = "8384b3f30bc1446ef810e9e894afa03238c5ac40d3c40c0740d82f347112015d";
}; };
} }

View File

@ -52,7 +52,7 @@
let let
pname = "ray"; pname = "ray";
version = "2.6.1"; version = "2.7.0";
in in
buildPythonPackage rec { buildPythonPackage rec {
inherit pname version; inherit pname version;

View File

@ -7,7 +7,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "types-awscrt"; pname = "types-awscrt";
version = "0.19.6"; version = "0.19.7";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -15,7 +15,7 @@ buildPythonPackage rec {
src = fetchPypi { src = fetchPypi {
pname = "types_awscrt"; pname = "types_awscrt";
inherit version; inherit version;
hash = "sha256-GdSGfysTK7NPLdruHz/rp8xCqGivXgVcxqWAtC+heTM="; hash = "sha256-OkqKWCnwpNgGR2vZTEp+IxpWGHn6xP4ERwWsxEshKmQ=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -11,16 +11,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "biome"; pname = "biome";
version = "1.2.2"; version = "1.3.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "biomejs"; owner = "biomejs";
repo = "biome"; repo = "biome";
rev = "cli/v${version}"; rev = "cli/v${version}";
hash = "sha256-WiyORFXS1kpOaMCbnPdr5ewa6D4ozFTIRSArVlA2FvY="; hash = "sha256-1yVXzPbLqLiqn3RN3mZNULOabydYtjXam+BB3aKwhTs=";
}; };
cargoHash = "sha256-s2CVEGYRzJgsg4soETStpaJ7GDNdJCBJ+Qbn88sFlDQ="; cargoHash = "sha256-3EkYxq80fkRJ1U4nLtp7dYEEFaqDhgptnNsNghFQAZI=";
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config

View File

@ -1,14 +1,19 @@
{ buildGoModule, fetchFromGitHub, lib }: { lib
, buildGoModule
, fetchFromGitHub
, testers
, pgweb
}:
buildGoModule rec { buildGoModule rec {
pname = "pgweb"; pname = "pgweb";
version = "0.14.1"; version = "0.14.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "sosedoff"; owner = "sosedoff";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-0wwDye7Iku9+brYoVqlCpnm+A3xsr8tL2dyWaBVvres="; hash = "sha256-gM7hqFriXkcwNO+I3d138kfp1F4YsO/Qbq0NzMszkwM=";
}; };
postPatch = '' postPatch = ''
@ -29,7 +34,14 @@ buildGoModule rec {
in in
[ "-skip" "${builtins.concatStringsSep "|" skippedTests}" ]; [ "-skip" "${builtins.concatStringsSep "|" skippedTests}" ];
passthru.tests.version = testers.testVersion {
version = "v${version}";
package = pgweb;
command = "pgweb --version";
};
meta = with lib; { meta = with lib; {
changelog = "https://github.com/sosedoff/pgweb/releases/tag/v${version}";
description = "A web-based database browser for PostgreSQL"; description = "A web-based database browser for PostgreSQL";
longDescription = '' longDescription = ''
A simple postgres browser that runs as a web server. You can view data, A simple postgres browser that runs as a web server. You can view data,
@ -37,6 +49,7 @@ buildGoModule rec {
''; '';
homepage = "https://sosedoff.github.io/pgweb/"; homepage = "https://sosedoff.github.io/pgweb/";
license = licenses.mit; license = licenses.mit;
mainProgram = "pgweb";
maintainers = with maintainers; [ zupo luisnquin ]; maintainers = with maintainers; [ zupo luisnquin ];
}; };
} }

View File

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "jaq"; pname = "jaq";
version = "1.0.0"; version = "1.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "01mf02"; owner = "01mf02";
repo = "jaq"; repo = "jaq";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-Snn34Jl6GXtGUwOXBwo0icmuNfesLHUwA7sIvdv0xlY="; hash = "sha256-W+xUc9B6tTbpPc9xyVnQuAtwiw4RICWKl9C5dF0BMN8=";
}; };
cargoHash = "sha256-sL884chxQntagj5/h4yWLtDS8T7hbRFjHIqNbbzcsmI="; cargoHash = "sha256-pxoi9yS6Oc10epSMC3BVAC2WeV0brOMaK1upNiAZbxI=";
buildInputs = lib.optionals stdenv.isDarwin [ buildInputs = lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security darwin.apple_sdk.frameworks.Security

View File

@ -8,13 +8,13 @@
buildGoModule rec { buildGoModule rec {
pname = "helm-ls"; pname = "helm-ls";
version = "0.0.6"; version = "0.0.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mrjosh"; owner = "mrjosh";
repo = "helm-ls"; repo = "helm-ls";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-dNF0Q/jat2YE/3ZEKqJVX+4+iizJIV25U9U3e+2bfUM="; hash = "sha256-XTY32B0RkLcZxTuKWUtZlrrUARkoT2+qYkL8Amai2cE=";
}; };
vendorHash = "sha256-wMYrgAgAEgwfjMLP81H0cKWm/kh63ppDkSiymfsaj7U="; vendorHash = "sha256-wMYrgAgAEgwfjMLP81H0cKWm/kh63ppDkSiymfsaj7U=";

View File

@ -5,16 +5,16 @@
buildGoModule rec { buildGoModule rec {
pname = "act"; pname = "act";
version = "0.2.52"; version = "0.2.53";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nektos"; owner = "nektos";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-mw0Ul6m8mgx2I3ExoDs5luN4PQXAI0NADTSYt+DFCs8="; hash = "sha256-p2ujmHWIBUcH5UpHHO72ddqSb1C0gWAyKUIT9E6Oyxk=";
}; };
vendorHash = "sha256-WoeJ4yB3bTx6I+Ga5X7ZhPfjw3NERp1v/ot5pPsYYLw="; vendorHash = "sha256-W50NodoaKY7s4x7Goyvydxd5Q2lz9m9pFwgcQ9wRGVM=";
doCheck = false; doCheck = false;

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "strace"; pname = "strace";
version = "6.5"; version = "6.6";
src = fetchurl { src = fetchurl {
url = "https://strace.io/files/${version}/${pname}-${version}.tar.xz"; url = "https://strace.io/files/${version}/${pname}-${version}.tar.xz";
sha256 = "sha256-37BRcCOJ4ZeaFRiStZAa/J6Tu8HHDYTJBq3jIkypGYA="; sha256 = "sha256-QhtBhsBrcFFj5k3IXycevc9nZgr4ZnKDFH1ehZ/IqWw=";
}; };
depsBuildBuild = [ buildPackages.stdenv.cc ]; depsBuildBuild = [ buildPackages.stdenv.cc ];

View File

@ -6,13 +6,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "pyenv"; pname = "pyenv";
version = "2.3.28"; version = "2.3.31";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pyenv"; owner = "pyenv";
repo = "pyenv"; repo = "pyenv";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-KxYxHNoXk4RVA5+mpE3hjrl1c+7Ei/km/zrMIvvV+1M="; hash = "sha256-liDm8lcHSdn9f/tNISRlnqEIcBtmusMplH0N4tW5Lgo=";
}; };
postPatch = '' postPatch = ''

View File

@ -1,22 +0,0 @@
{ buildGoModule, fetchFromGitHub, lib }:
buildGoModule rec {
pname = "tfplugindocs";
version = "0.14.1";
src = fetchFromGitHub {
owner = "hashicorp";
repo = "terraform-plugin-docs";
rev = "v${version}";
sha256 = "sha256-GiMjm7XG/gFGOQXYeXsKbU7WQdrkQ0+J/SvfbLu24bo=";
};
vendorHash = "sha256-qUlyOAiLzLgrtaAfs/aGpAikGmGcQ9PI7QRyp9+Qn4w=";
meta = with lib; {
description = "Generate and validate Terraform plugin/provider documentation";
homepage = "https://github.com/hashicorp/terraform-plugin-docs";
license = licenses.mpl20;
maintainers = with maintainers; [ lewo ];
};
}

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "vendir"; pname = "vendir";
version = "0.35.0"; version = "0.35.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vmware-tanzu"; owner = "vmware-tanzu";
repo = "carvel-vendir"; repo = "carvel-vendir";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-aN8O+5zzGGLWAPk/oNFOnBBv2rsljWaxTKlC19XTt58="; sha256 = "sha256-zoZPAJTEmKHL78wfAHqayBxw8tRANIsMckj+wXtbLTw=";
}; };
vendorHash = null; vendorHash = null;

View File

@ -1,10 +1,11 @@
{ lib { lib
, stdenv , stdenv
, fetchFromGitHub , fetchFromGitHub
, writeShellScript
, texlive , texlive
}: }:
stdenv.mkDerivation (finalAttrs: rec { stdenv.mkDerivation rec {
pname = "sagetex"; pname = "sagetex";
version = "3.6.1"; version = "3.6.1";
@ -15,8 +16,14 @@ stdenv.mkDerivation (finalAttrs: rec {
sha256 = "sha256-OfhbXHbGI+DaDHqZCOGiSHJPHjGuT7ZqSEjKweloW38="; sha256 = "sha256-OfhbXHbGI+DaDHqZCOGiSHJPHjGuT7ZqSEjKweloW38=";
}; };
buildInputs = [ outputs = [ "tex" ];
nativeBuildInputs = [
texlive.combined.scheme-basic texlive.combined.scheme-basic
# multiple-outputs.sh fails if $out is not defined
(writeShellScript "force-tex-output.sh" ''
out="''${tex-}"
'')
]; ];
buildPhase = '' buildPhase = ''
@ -29,11 +36,6 @@ stdenv.mkDerivation (finalAttrs: rec {
cp -va *.sty *.cfg *.def "$path/" cp -va *.sty *.cfg *.def "$path/"
''; '';
passthru = {
tlType = "run";
pkgs = [ finalAttrs.finalPackage ];
};
meta = with lib; { meta = with lib; {
description = "Embed code, results of computations, and plots from Sage into LaTeX documents"; description = "Embed code, results of computations, and plots from Sage into LaTeX documents";
homepage = "https://github.com/sagemath/sagetex"; homepage = "https://github.com/sagemath/sagetex";
@ -41,4 +43,4 @@ stdenv.mkDerivation (finalAttrs: rec {
maintainers = with maintainers; [ alexnortung ]; maintainers = with maintainers; [ alexnortung ];
platforms = platforms.all; platforms = platforms.all;
}; };
}) }

View File

@ -5,8 +5,8 @@
, buildWebExtension ? false , buildWebExtension ? false
}: }:
let let
version = "1.6.1"; version = "1.6.2";
gitHash = "a9e67e2"; gitHash = "dd61b0c";
in in
buildNpmPackage rec { buildNpmPackage rec {
pname = "vencord"; pname = "vencord";
@ -16,7 +16,7 @@ buildNpmPackage rec {
owner = "Vendicated"; owner = "Vendicated";
repo = "Vencord"; repo = "Vencord";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-t4+8ybPzqcCtTSukBBgvbD7HiKG4K51WPVnJg0RQbs8="; hash = "sha256-AqyUnDMIASJ/kUTeICdN94W5U0E52RFs6hM2/E8AjXI=";
}; };
ESBUILD_BINARY_PATH = lib.getExe (esbuild.overrideAttrs (final: _: { ESBUILD_BINARY_PATH = lib.getExe (esbuild.overrideAttrs (final: _: {
@ -34,7 +34,7 @@ buildNpmPackage rec {
npmRebuildFlags = [ "|| true" ]; npmRebuildFlags = [ "|| true" ];
makeCacheWritable = true; makeCacheWritable = true;
npmDepsHash = "sha256-PWasfMX75emOwOtHd4FrVA6TDfFcOowXsAxgZqMsgP8="; npmDepsHash = "sha256-RzOv8LekJqX0C/AjC5ONkfkMK36bAGWFxyM9Akn1CIg=";
npmFlags = [ "--legacy-peer-deps" ]; npmFlags = [ "--legacy-peer-deps" ];
npmBuildScript = if buildWebExtension then "buildWeb" else "build"; npmBuildScript = if buildWebExtension then "buildWeb" else "build";
npmBuildFlags = [ "--" "--standalone" "--disable-updater" ]; npmBuildFlags = [ "--" "--standalone" "--disable-updater" ];

View File

@ -1,12 +1,12 @@
{ {
"name": "vencord", "name": "vencord",
"version": "1.6.1", "version": "1.6.2",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "vencord", "name": "vencord",
"version": "1.6.1", "version": "1.6.2",
"license": "GPL-3.0-or-later", "license": "GPL-3.0-or-later",
"dependencies": { "dependencies": {
"@sapphi-red/web-noise-suppressor": "0.3.3", "@sapphi-red/web-noise-suppressor": "0.3.3",
@ -893,9 +893,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "18.18.7", "version": "18.18.8",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.7.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz",
"integrity": "sha512-bw+lEsxis6eqJYW8Ql6+yTqkE6RuFtsQPSe5JxXbqYRFQEER5aJA9a5UH9igqDWm3X4iLHIKOHlnAXLM4mi7uQ==", "integrity": "sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"undici-types": "~5.26.4" "undici-types": "~5.26.4"
@ -4169,9 +4169,9 @@
} }
}, },
"node_modules/punycode": { "node_modules/punycode": {
"version": "2.3.0", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"

View File

@ -36,21 +36,15 @@ rec {
}; };
latest = selectHighestVersion production (generic { latest = selectHighestVersion production (generic {
version = "530.41.03"; version = "545.29.02";
sha256_64bit = "sha256-riehapaMhVA/XRYd2jQ8FgJhKwJfSu4V+S4uoKy3hLE="; sha256_64bit = "sha256-RncPlaSjhvBFUCOzWdXSE3PAfRPCIrWAXyJMdLPKuIU=";
sha256_aarch64 = "sha256-uM5zMEO/AO32VmqUOzmc05FFm/lz76jPSSaQmeZUlFo="; sha256_aarch64 = "sha256-Y2RDOuDtiIclr06gmLrPDfE5VFmFamXxiIIKtKAewro=";
openSha256 = "sha256-etbtw6LMRUcFoZC9EDDRrTDekV8JFRYmkp3idLaMk5g="; openSha256 = "sha256-PukpOBtG5KvZKWYfJHVQO6SuToJUd/rkjpOlEi8pSmk=";
settingsSha256 = "sha256-8KB6T9f+gWl8Ni+uOyrJKiiH5mNx9eyfCcW/RjPTQQA="; settingsSha256 = "sha256-zj173HCZJaxAbVV/A2sbJ9IPdT1+3yrwyxD+AQdkSD8=";
persistencedSha256 = "sha256-zrstlt/0YVGnsPGUuBbR9ULutywi2wNDVxh7OhJM7tM="; persistencedSha256 = "sha256-mmMi2pfwzI1WYOffMVdD0N1HfbswTGg7o57x9/IiyVU=";
patchFlags = [ "-p1" "-d" "kernel" ]; patchFlags = [ "-p1" "-d" "kernel" ];
patches = [ patches = [];
# source: https://gist.github.com/joanbm/77f0650d45747b9a4dc8e330ade2bf5c
(fetchpatch {
url = "https://gist.github.com/joanbm/77f0650d45747b9a4dc8e330ade2bf5c/raw/688b612624945926676de28059fe749203b4b549/nvidia-470xx-fix-linux-6.4.patch";
hash = "sha256-OyRmezyzqAi7mSJHDjsWQVocSsgJPTW5DvHDFVNX7Dk=";
})
];
}); });
beta = selectHighestVersion latest (generic { beta = selectHighestVersion latest (generic {

View File

@ -69,7 +69,9 @@ stdenv.mkDerivation {
url = "https://github.com/NVIDIA/nvidia-settings/commit/a7c1f5fce6303a643fadff7d85d59934bd0cf6b6.patch"; url = "https://github.com/NVIDIA/nvidia-settings/commit/a7c1f5fce6303a643fadff7d85d59934bd0cf6b6.patch";
hash = "sha256-ZwF3dRTYt/hO8ELg9weoz1U/XcU93qiJL2d1aq1Jlak="; hash = "sha256-ZwF3dRTYt/hO8ELg9weoz1U/XcU93qiJL2d1aq1Jlak=";
}) })
++ lib.optional (lib.versionAtLeast nvidia_x11.settingsVersion "515.43.04") ++ lib.optional
((lib.versionAtLeast nvidia_x11.settingsVersion "515.43.04")
&& (lib.versionOlder nvidia_x11.settingsVersion "545.29"))
(fetchpatch { (fetchpatch {
# fix wayland support for compositors that use wl_output version 4 # fix wayland support for compositors that use wl_output version 4
url = "https://github.com/NVIDIA/nvidia-settings/pull/99/commits/2e0575197e2b3247deafd2a48f45afc038939a06.patch"; url = "https://github.com/NVIDIA/nvidia-settings/pull/99/commits/2e0575197e2b3247deafd2a48f45afc038939a06.patch";

View File

@ -6,12 +6,9 @@ let
val = 1; val = 1;
}; };
include_file = (writeText "libconfig-test-include" '' include_file = writeText "libconfig-test-include" ''
val=1; val=1;
'').overrideAttrs { '';
outputHashAlgo = "sha256";
outputHashMode = "flat";
};
expression = { expression = {
simple_top_level_attr = "1.0"; simple_top_level_attr = "1.0";
@ -63,12 +60,15 @@ in
doCheck = true; doCheck = true;
checkPhase = '' checkPhase = ''
diff -U3 ${./expected.txt} ${libconfig-test-cfg} cp ${./expected.txt} expected.txt
substituteInPlace expected.txt \
--subst-var-by include_file "${include_file}"
diff -U3 ./expected.txt ${libconfig-test-cfg}
''; '';
installPhase = '' installPhase = ''
mkdir $out mkdir $out
cp ${./expected.txt} $out/expected.txt cp expected.txt $out
cp ${libconfig-test-cfg} $out/libconfig-test.cfg cp ${libconfig-test-cfg} $out/libconfig-test.cfg
cp ${libconfig-test-cfg.passthru.json} $out/libconfig-test.json cp ${libconfig-test-cfg.passthru.json} $out/libconfig-test.json
''; '';

View File

@ -1,6 +1,6 @@
array1d=[1, 5, 2];array2d=([1, 2], [2, 1]);list1d=(1, "mixed!", 5, 2);list2d=(1, (1, 1.2, "foo"), ("bar", 1.2, 1));nasty_string="\"@ array1d=[1, 5, 2];array2d=([1, 2], [2, 1]);list1d=(1, "mixed!", 5, 2);list2d=(1, (1, 1.2, "foo"), ("bar", 1.2, 1));nasty_string="\"@
\\ ^*bf \\ ^*bf
0\";'''$";nested={attrset={has={a={integer={value=100;};};};};};simple_top_level_attr="1.0";some_floaty=29.95;weirderTypes={ 0\";'''$";nested={attrset={has={a={integer={value=100;};};};};};simple_top_level_attr="1.0";some_floaty=29.95;weirderTypes={
@include "/nix/store/jdz5yhzbbj4j77yrr7l20x1cs4kbwkj2-libconfig-test-include" @include "@include_file@"
array_of_ints=[0732, 0xa3, 1234];bigint=9223372036854775807;float=0.0012;hex=0x1fc3;list_of_weird_types=(3.141592654, 9223372036854775807, 0x1fc3, 027, 1.2e-32, 1.0);octal=027;pi=3.141592654;}; array_of_ints=[0732, 0xa3, 1234];bigint=9223372036854775807;float=0.0012;hex=0x1fc3;list_of_weird_types=(3.141592654, 9223372036854775807, 0x1fc3, 027, 1.2e-32, 1.0);octal=027;pi=3.141592654;};

View File

@ -3,15 +3,15 @@
, fetchFromGitHub , fetchFromGitHub
, ,
}: }:
buildFishPlugin rec { buildFishPlugin {
pname = "bobthefish"; pname = "bobthefish";
version = "unstable-2022-08-02"; version = "unstable-2023-06-16";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "oh-my-fish"; owner = "oh-my-fish";
repo = "theme-bobthefish"; repo = "theme-bobthefish";
rev = "2dcfcab653ae69ae95ab57217fe64c97ae05d8de"; rev = "c2c47dc964a257131b3df2a127c2631b4760f3ec";
sha256 = "sha256-jBbm0wTNZ7jSoGFxRkTz96QHpc5ViAw9RGsRBkCQEIU="; sha256 = "sha256-LB4g+EA3C7OxTuHfcxfgl8IVBe5NufFc+5z9VcS0Bt0=";
}; };
meta = with lib; { meta = with lib; {

View File

@ -454,8 +454,7 @@ rec {
''; '';
# link all binaries in single derivation # link all binaries in single derivation
allPackages = with lib; concatLists (catAttrs "pkgs" (filter isAttrs (attrValues texlive))); binPackages = lib.catAttrs "out" (lib.attrValues texlive.pkgs);
binPackages = lib.filter (p: p.tlType == "bin") allPackages;
binaries = buildEnv { name = "texlive-binaries"; paths = binPackages; }; binaries = buildEnv { name = "texlive-binaries"; paths = binPackages; };
in in
runCommand "texlive-test-binaries" runCommand "texlive-test-binaries"
@ -565,8 +564,7 @@ rec {
# check that all scripts have a Nix shebang # check that all scripts have a Nix shebang
shebangs = let shebangs = let
allPackages = with lib; concatLists (catAttrs "pkgs" (filter isAttrs (attrValues texlive))); binPackages = lib.catAttrs "out" (lib.attrValues texlive.pkgs);
binPackages = lib.filter (p: p.tlType == "bin") allPackages;
in in
runCommand "texlive-test-shebangs" { } runCommand "texlive-test-shebangs" { }
('' (''
@ -615,7 +613,7 @@ rec {
correctLicenses = scheme: builtins.foldl' correctLicenses = scheme: builtins.foldl'
(acc: pkg: concatLicenses acc (lib.toList (pkg.meta.license or []))) (acc: pkg: concatLicenses acc (lib.toList (pkg.meta.license or [])))
[] []
scheme.passthru.packages; scheme.passthru.requiredTeXPackages;
correctLicensesAttrNames = scheme: correctLicensesAttrNames = scheme:
lib.sort lt lib.sort lt
(map licenseToAttrName (correctLicenses scheme)); (map licenseToAttrName (correctLicenses scheme));
@ -648,10 +646,13 @@ rec {
# this is effectively an eval-time assertion, converted into a derivation for # this is effectively an eval-time assertion, converted into a derivation for
# ease of testing # ease of testing
fixedHashes = with lib; let fixedHashes = with lib; let
combine = findFirst (p: (head p.pkgs).pname == "combine") { pkgs = []; } (head texlive.collection-latexextra.pkgs).tlDeps; fods = lib.concatMap
all = concatLists (map (p: p.pkgs or []) (attrValues (removeAttrs texlive [ "bin" "combine" "combined" "tlpdb" ]))) ++ combine.pkgs; (p: lib.optional (p ? tex) p.tex
fods = filter (p: isDerivation p && p.tlType != "bin") all; ++ lib.optional (p ? texdoc) p.texdoc
errorText = concatMapStrings (p: optionalString (! p ? outputHash) "${p.pname + optionalString (p.tlType != "run") ("." + p.tlType)} does not have a fixed output hash\n") fods; ++ lib.optional (p ? texsource) p.texsource
++ lib.optional (p ? tlpkg) p.tlpkg)
(attrValues texlive.pkgs);
errorText = concatMapStrings (p: optionalString (! p ? outputHash) "${p.pname}-${p.tlOutputName} does not have a fixed output hash\n") fods;
in runCommand "texlive-test-fixed-hashes" { in runCommand "texlive-test-fixed-hashes" {
inherit errorText; inherit errorText;
passAsFile = [ "errorText" ]; passAsFile = [ "errorText" ];

View File

@ -1149,9 +1149,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]] [[package]]
name = "rustix" name = "rustix"
version = "0.37.20" version = "0.37.25"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0" checksum = "d4eb579851244c2c03e7c24f501c3432bed80b8f720af1d6e5b0e0f01555a035"
dependencies = [ dependencies = [
"bitflags 1.3.2", "bitflags 1.3.2",
"errno 0.3.1", "errno 0.3.1",
@ -1269,7 +1269,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]] [[package]]
name = "stratisd" name = "stratisd"
version = "3.6.0" version = "3.6.1"
dependencies = [ dependencies = [
"assert_cmd", "assert_cmd",
"assert_matches", "assert_matches",

View File

@ -28,13 +28,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "stratisd"; pname = "stratisd";
version = "3.6.0"; version = "3.6.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "stratis-storage"; owner = "stratis-storage";
repo = pname; repo = pname;
rev = "refs/tags/stratisd-v${version}"; rev = "refs/tags/stratisd-v${version}";
hash = "sha256-IDCAhAioFFN4FqgdB6Bp38RG1G3n3NWQTIxK4/1TTFs="; hash = "sha256-qpuJzsN6AXqvKtKBDZZEmviWBpPR0qNuq+3tIHGSWLs=";
}; };
cargoDeps = rustPlatform.importCargoLock { cargoDeps = rustPlatform.importCargoLock {

View File

@ -6,16 +6,16 @@
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "heygpt"; pname = "heygpt";
version = "0.4.0"; version = "0.4.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "fuyufjh"; owner = "fuyufjh";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-Gtbb0G7tV+cjbq/74dnZKIwWZgNfSJl0My6F4OmAdhU="; hash = "sha256-gTyjj7NND5IYtnXhc454cWSzhAE+DwfPRGEWrHH+GNM=";
}; };
cargoSha256 = "sha256-ON6+gU+KsI2QFQjwxPRcbMClaAGrjVJ33mVuf0jSro8="; cargoHash = "sha256-yKHAZpELuUD7wlM3Mi7XvxbKgdU1QxD9hsvIFcj3twE=";
nativeBuildInputs = [openssl]; nativeBuildInputs = [openssl];

View File

@ -42,13 +42,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "fastfetch"; pname = "fastfetch";
version = "2.1.2"; version = "2.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "fastfetch-cli"; owner = "fastfetch-cli";
repo = "fastfetch"; repo = "fastfetch";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-v/dFynTESqRWAxu5Wz0/EroXuwmNj3EEPJxzpfTGKtk="; hash = "sha256-H2iIL41h3o8184S/XMYAuIDPVJPm+zSI/YX8FT8vLio=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -11,16 +11,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "fw"; pname = "fw";
version = "2.17.1"; version = "2.18.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "brocode"; owner = "brocode";
repo = "fw"; repo = "fw";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-8Jq7VjTKwq8n9lrwTzazkkrq8/mNacFTwz/M+eAwBWM="; hash = "sha256-8PcIaSXmk6/p5N6L2/nLrFS6JUZRRJsN2mKQYtevS6s=";
}; };
cargoHash = "sha256-tIrACx4KRjfxLyxTiP32PpdN8NegaHBIkINsPGgygVQ="; cargoHash = "sha256-l6mRjVk3qNAxfNqcKGo2dceD2Xb+hk+xMvdh/U1jZXw=";
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config

View File

@ -5,13 +5,13 @@
buildGoModule rec { buildGoModule rec {
pname = "mapcidr"; pname = "mapcidr";
version = "1.1.13"; version = "1.1.14";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "projectdiscovery"; owner = "projectdiscovery";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-ggfk9ceogvTP0Q1RzA6tZgEj+iVVuGa+MU0zSZfO2ZI="; hash = "sha256-Vhh/OS61dfArsowXMogr/bu/gg354nte9PuobD9lCaU=";
}; };
vendorHash = "sha256-wqbAOoRQEE7CDmaH5MRzsSKOdyrxwBY/1wDz3MCfsBc="; vendorHash = "sha256-wqbAOoRQEE7CDmaH5MRzsSKOdyrxwBY/1wDz3MCfsBc=";

View File

@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "twm"; pname = "twm";
version = "0.7.0"; version = "0.8.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vinnymeller"; owner = "vinnymeller";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Q8WdNmO5uSm4PvitBXQ7YEkjJhlCz4qfJO/F6+XckXY="; sha256 = "sha256-icJQSPt3733H5pIdnpC/Vx+u6LgwokCdbvE3wvDkIlw=";
}; };
cargoHash = "sha256-fxDUUfC7mBgVHN+M6pb5leRp28wzO69ZdStdYmQFxQE="; cargoHash = "sha256-DxT3Wsiy4zVlTSJwHqV/McSi/pc9pB0wyWY54fj1zVE=";
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ]; buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "wakapi"; pname = "wakapi";
version = "2.9.1"; version = "2.9.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "muety"; owner = "muety";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-uTDvipz08hrdFB/gAoxVp4Eesh57HOFUG4AD/5T33H8="; sha256 = "sha256-BRIcStqRzwoFG9HkWBpfumeCzbrSI0Hg//a0iDQtNw8=";
}; };
vendorHash = "sha256-SqkE4vTT+QoLhKrQcGa2L5WmD+fCX7vli4FjgwLnqjg="; vendorHash = "sha256-SqkE4vTT+QoLhKrQcGa2L5WmD+fCX7vli4FjgwLnqjg=";
@ -16,6 +16,9 @@ buildGoModule rec {
# Not a go module required by the project, contains development utilities # Not a go module required by the project, contains development utilities
excludedPackages = [ "scripts" ]; excludedPackages = [ "scripts" ];
# Fix up reported version
postPatch = ''echo ${version} > version.txt'';
ldflags = [ ldflags = [
"-s" "-s"
"-w" "-w"

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "grpc_cli"; pname = "grpc_cli";
version = "1.59.1"; version = "1.59.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "grpc"; owner = "grpc";
repo = "grpc"; repo = "grpc";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-4bou7oFQOgyxjFqJdmiFT8xEMCsOap9v34W6SPrT4WQ="; hash = "sha256-ZWVXoup+gpELOsdCg36swiJFeDdioR/cHkDV68OWsso=";
fetchSubmodules = true; fetchSubmodules = true;
}; };
nativeBuildInputs = [ automake cmake autoconf ]; nativeBuildInputs = [ automake cmake autoconf ];

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "kapp"; pname = "kapp";
version = "0.59.0"; version = "0.59.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "carvel-dev"; owner = "carvel-dev";
repo = "kapp"; repo = "kapp";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-I+BXKJvilrYvSi2xevZKFE49emghg19dCpW/bbIcZ8o="; sha256 = "sha256-0fvcBJzJB3o9gQiFfm9+qGTWcoJY2X4AR2XR8RRjerg=";
}; };
vendorHash = null; vendorHash = null;

View File

@ -8,13 +8,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "wavemon"; pname = "wavemon";
version = "0.9.4"; version = "0.9.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "uoaerg"; owner = "uoaerg";
repo = "wavemon"; repo = "wavemon";
rev = "v${version}"; rev = "v${version}";
sha256 = "0s3yz15vzx90fxyb8bgryksn0cr2gpz9inbcx4qjrgs7zfbm4pgh"; sha256 = "sha256-MvIFuPATI0Y7aIYZkb2Yr+iCco4gILHhDU5FWeMCk5Q=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -2,14 +2,14 @@
nimPackages.buildNimPackage (finalAttrs: { nimPackages.buildNimPackage (finalAttrs: {
pname = "ttop"; pname = "ttop";
version = "1.2.6"; version = "1.2.7";
nimBinOnly = true; nimBinOnly = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "inv2004"; owner = "inv2004";
repo = "ttop"; repo = "ttop";
rev = "v${finalAttrs.version}"; rev = "v${finalAttrs.version}";
hash = "sha256-rTvEL9MkRJuynu50g8TXitYKnfXsa6PpkfEDaX0nfJs="; hash = "sha256-oPdaUqh6eN1X5kAYVvevOndkB/xnQng9QVLX9bu5P5E=";
}; };
buildInputs = with nimPackages; [ asciigraph illwill jsony parsetoml zippy ]; buildInputs = with nimPackages; [ asciigraph illwill jsony parsetoml zippy ];

View File

@ -1,7 +1,7 @@
{ lib, stdenv, fetchFromGitHub, fetchurl, perlPackages, shortenPerlShebang, texlive }: { lib, stdenv, fetchFromGitHub, fetchurl, perlPackages, shortenPerlShebang, texlive }:
let let
biberSource = lib.head (builtins.filter (p: p.tlType == "source") texlive.biber-ms.pkgs); biberSource = texlive.pkgs.biber-ms.texsource;
# missing test file # missing test file
multiscriptBltxml = (fetchFromGitHub { multiscriptBltxml = (fetchFromGitHub {
owner = "plk"; owner = "plk";
@ -12,8 +12,7 @@ let
in in
perlPackages.buildPerlModule { perlPackages.buildPerlModule {
pname = "biber-ms"; inherit (biberSource) pname version;
inherit (biberSource) version;
src = "${biberSource}/source/bibtex/biber-ms/biblatex-biber-ms.tar.gz"; src = "${biberSource}/source/bibtex/biber-ms/biblatex-biber-ms.tar.gz";

View File

@ -1,12 +1,11 @@
{ lib, stdenv, fetchurl, perlPackages, shortenPerlShebang, texlive }: { lib, stdenv, fetchurl, perlPackages, shortenPerlShebang, texlive }:
let let
biberSource = lib.head (builtins.filter (p: p.tlType == "source") texlive.biber.pkgs); biberSource = texlive.pkgs.biber.texsource;
in in
perlPackages.buildPerlModule { perlPackages.buildPerlModule {
pname = "biber"; inherit (biberSource) pname version;
inherit (biberSource) version;
src = "${biberSource}/source/bibtex/biber/biblatex-biber.tar.gz"; src = "${biberSource}/source/bibtex/biber/biblatex-biber.tar.gz";

View File

@ -43,11 +43,7 @@ stdenv.mkDerivation (finalAttrs: rec {
# experimental texlive.combine support # experimental texlive.combine support
# (note that only the bin/ folder will be combined into texlive) # (note that only the bin/ folder will be combined into texlive)
passthru = { passthru.tlDeps = with texlive; [ kpathsea t1utils metafont ];
tlType = "bin";
tlDeps = with texlive; [ kpathsea t1utils metafont ];
pkgs = [ finalAttrs.finalPackage ];
};
meta = with lib; { meta = with lib; {
description = "Scalable PostScript Fonts for MetaFont"; description = "Scalable PostScript Fonts for MetaFont";

View File

@ -355,7 +355,7 @@ pygmentex = python3Packages.buildPythonApplication rec {
inherit (src) version; inherit (src) version;
format = "other"; format = "other";
src = assertFixedHash pname (lib.head (builtins.filter (p: p.tlType == "run") texlive.pygmentex.pkgs)); src = assertFixedHash pname texlive.pkgs.pygmentex.tex;
propagatedBuildInputs = with python3Packages; [ pygments chardet ]; propagatedBuildInputs = with python3Packages; [ pygments chardet ];
@ -436,7 +436,7 @@ xdvi = stdenv.mkDerivation {
xpdfopen = stdenv.mkDerivation { xpdfopen = stdenv.mkDerivation {
pname = "texlive-xpdfopen.bin"; pname = "texlive-xpdfopen.bin";
inherit (lib.head texlive.xpdfopen.pkgs) version; inherit (texlive.pkgs.xpdfopen) version;
inherit (common) src; inherit (common) src;

View File

@ -1,55 +1,125 @@
{ lib, buildEnv, runCommand, writeText, makeWrapper, libfaketime, makeFontsConf {
, perl, bash, coreutils, gnused, gnugrep, gawk, ghostscript # texlive package set
, bin, tl }: tl
# combine = , bin
args@{
pkgFilter ? (pkg: pkg.tlType == "run" || pkg.tlType == "bin" || pkg.pname == "core" , lib
|| pkg.hasManpages or false) , buildEnv
, extraName ? "combined" , libfaketime
, extraVersion ? "" , makeFontsConf
, ... , makeWrapper
, runCommand
, writeShellScript
, writeText
, toTLPkgSets
, bash
, perl
# common runtime dependencies
, coreutils
, gawk
, gnugrep
, gnused
, ghostscript
}: }:
lib.fix (self: {
withDocs ? false
, withSources ? false
, requiredTeXPackages ? ps: [ ps.scheme-infraonly ]
### texlive.combine backward compatibility
, __extraName ? "combined"
, __extraVersion ? ""
# emulate the old texlive.combine (e.g. add man pages to main output)
, __combine ? false
# adjust behavior further if called from the texlive.combine wrapper
, __fromCombineWrapper ? false
}@args:
let let
# combine a set of TL packages into a single TL meta-package ### texlive.combine backward compatibility
combinePkgs = pkgList: lib.catAttrs "pkg" ( # if necessary, convert old style { pkgs = [ ... ]; } packages to attribute sets
let ensurePkgSets = ps: if ! __fromCombineWrapper && builtins.any (p: p ? pkgs && builtins.all (p: p ? tlType) p.pkgs) ps
# a TeX package is an attribute set { pkgs = [ ... ]; ... } where pkgs is a list of derivations then let oldStyle = builtins.partition (p: p ? pkgs && builtins.all (p: p ? tlType) p.pkgs) ps;
# the derivations make up the TeX package and optionally (for backward compatibility) its dependencies in oldStyle.wrong ++ lib.concatMap toTLPkgSets oldStyle.right
tlPkgToSets = { pkgs, ... }: map ({ tlType, version ? "", outputName ? "", ... }@pkg: { else ps;
# outputName required to distinguish among bin.core-big outputs
key = "${pkg.pname or pkg.name}.${tlType}-${version}-${outputName}"; pkgList = rec {
inherit pkg; # resolve dependencies of the packages that affect the runtime
}) pkgs; all =
pkgListToSets = lib.concatMap tlPkgToSets; in let
builtins.genericClosure { # order of packages is irrelevant
startSet = pkgListToSets pkgList; packages = builtins.sort (a: b: a.pname < b.pname) (ensurePkgSets (requiredTeXPackages tl));
operator = { pkg, ... }: pkgListToSets (pkg.tlDeps or []); runtime = builtins.partition
(p: p.outputSpecified or false -> builtins.elem (p.tlOutputName or p.outputName) [ "out" "tex" "tlpkg" ])
packages;
keySet = p: {
key = ((p.name or "${p.pname}-${p.version}") + "-" + p.tlOutputName or p.outputName or "");
inherit p;
tlDeps = p.tlDeps or (p.requiredTeXPackages or (_: [ ]) [ ]);
};
in
# texlive.combine: the wrapper already resolves all dependencies
if __fromCombineWrapper then requiredTeXPackages null else
builtins.catAttrs "p" (builtins.genericClosure {
startSet = map keySet runtime.right;
operator = p: map keySet p.tlDeps;
}) ++ runtime.wrong;
# group the specified outputs
specified = builtins.partition (p: p.outputSpecified or false) all;
specifiedOutputs = builtins.groupBy (p: p.tlOutputName or p.outputName) specified.right;
otherOutputNames = builtins.catAttrs "key" (builtins.genericClosure {
startSet = map (key: { inherit key; }) (lib.concatLists (builtins.catAttrs "outputs" specified.wrong));
operator = _: [ ];
});
otherOutputs = lib.genAttrs otherOutputNames (n: builtins.catAttrs n specified.wrong);
outputsToInstall = builtins.catAttrs "key" (builtins.genericClosure {
startSet = map (key: { inherit key; })
([ "out" ] ++ lib.optional (splitOutputs ? man) "man"
++ lib.concatLists (builtins.catAttrs "outputsToInstall" (builtins.catAttrs "meta" specified.wrong)));
operator = _: [ ];
}); });
pkgSet = removeAttrs args [ "pkgFilter" "extraName" "extraVersion" ]; # split binary and tlpkg from tex, texdoc, texsource
pkgList = rec { bin = if __fromCombineWrapper
combined = combinePkgs (lib.attrValues pkgSet); then builtins.filter (p: p.tlType == "bin") all # texlive.combine: legacy filter
all = lib.filter pkgFilter combined; else otherOutputs.out or [ ] ++ specifiedOutputs.out or [ ];
splitBin = builtins.partition (p: p.tlType == "bin") all; tlpkg = if __fromCombineWrapper
bin = splitBin.right; then builtins.filter (p: p.tlType == "tlpkg") all # texlive.combine: legacy filter
nonbin = splitBin.wrong; else otherOutputs.tlpkg or [ ] ++ specifiedOutputs.tlpkg or [ ];
tlpkg = lib.filter (pkg: pkg.tlType == "tlpkg") combined;
nonbin = if __fromCombineWrapper then builtins.filter (p: p.tlType != "bin" && p.tlType != "tlpkg") all # texlive.combine: legacy filter
else (if __combine then # texlive.combine: emulate old input ordering to avoid rebuilds
lib.concatMap (p: lib.optional (p ? tex) p.tex
++ lib.optional ((withDocs || p ? man) && p ? texdoc) p.texdoc
++ lib.optional (withSources && p ? texsource) p.texsource) specified.wrong
else otherOutputs.tex or [ ]
++ lib.optionals withDocs (otherOutputs.texdoc or [ ])
++ lib.optionals withSources (otherOutputs.texsource or [ ]))
++ specifiedOutputs.tex or [ ] ++ specifiedOutputs.texdoc or [ ] ++ specifiedOutputs.texsource or [ ];
# outputs that do not become part of the environment
nonEnvOutputs = lib.subtractLists [ "out" "tex" "texdoc" "texsource" "tlpkg" ] otherOutputNames;
}; };
# list generated by inspecting `grep -IR '\([^a-zA-Z]\|^\)gs\( \|$\|"\)' "$TEXMFDIST"/scripts` # list generated by inspecting `grep -IR '\([^a-zA-Z]\|^\)gs\( \|$\|"\)' "$TEXMFDIST"/scripts`
# and `grep -IR rungs "$TEXMFDIST"` # and `grep -IR rungs "$TEXMFDIST"`
# and ignoring luatex, perl, and shell scripts (those must be patched using postFixup) # and ignoring luatex, perl, and shell scripts (those must be patched using postFixup)
needsGhostscript = lib.any (p: lib.elem p.pname [ "context" "dvipdfmx" "latex-papersize" "lyluatex" ]) pkgList.bin; needsGhostscript = lib.any (p: lib.elem p.pname [ "context" "dvipdfmx" "latex-papersize" "lyluatex" ]) pkgList.bin;
name = "texlive-${extraName}-${bin.texliveYear}${extraVersion}"; name = if __combine then "texlive-${__extraName}-${bin.texliveYear}${__extraVersion}" # texlive.combine: old name name
else "texlive-${bin.texliveYear}-env";
texmfdist = (buildEnv { texmfdist = (buildEnv {
name = "${name}-texmfdist"; name = "${name}-texmfdist";
# remove fake derivations (without 'outPath') to avoid undesired build dependencies # remove fake derivations (without 'outPath') to avoid undesired build dependencies
paths = lib.catAttrs "outPath" pkgList.nonbin; paths = builtins.catAttrs "outPath" pkgList.nonbin;
# mktexlsr # mktexlsr
nativeBuildInputs = [ (lib.last tl."texlive.infra".pkgs) ]; nativeBuildInputs = [ tl."texlive.infra" ];
postBuild = # generate ls-R database postBuild = # generate ls-R database
'' ''
@ -61,7 +131,7 @@ let
name = "${name}-tlpkg"; name = "${name}-tlpkg";
# remove fake derivations (without 'outPath') to avoid undesired build dependencies # remove fake derivations (without 'outPath') to avoid undesired build dependencies
paths = lib.catAttrs "outPath" pkgList.tlpkg; paths = builtins.catAttrs "outPath" pkgList.tlpkg;
}).overrideAttrs (_: { allowSubstitutes = true; }); }).overrideAttrs (_: { allowSubstitutes = true; });
# the 'non-relocated' packages must live in $TEXMFROOT/texmf-dist # the 'non-relocated' packages must live in $TEXMFROOT/texmf-dist
@ -74,7 +144,7 @@ let
ln -s "$tlpkg" "$out"/tlpkg ln -s "$tlpkg" "$out"/tlpkg
''; '';
# expose info and man pages in usual /share/{info,man} location # texlive.combine: expose info and man pages in usual /share/{info,man} location
doc = buildEnv { doc = buildEnv {
name = "${name}-doc"; name = "${name}-doc";
@ -87,14 +157,67 @@ let
]; ];
}; };
in (buildEnv { meta = {
description = "TeX Live environment"
+ lib.optionalString withDocs " with documentation"
+ lib.optionalString (withDocs && withSources) " and"
+ lib.optionalString withSources " with sources";
platforms = lib.platforms.all;
longDescription = "Contains the following packages and their transitive dependencies:\n - "
+ lib.concatMapStringsSep "\n - "
(p: p.pname + (lib.optionalString (p.outputSpecified or false) " (${p.tlOutputName or p.outputName})"))
(requiredTeXPackages tl);
};
# emulate split output derivation
splitOutputs = {
out = out // { outputSpecified = true; };
texmfdist = texmfdist // { outputSpecified = true; };
texmfroot = texmfroot // { outputSpecified = true; };
} // (lib.genAttrs pkgList.nonEnvOutputs (outName: (buildEnv {
inherit name;
paths = builtins.catAttrs "outPath"
(pkgList.otherOutputs.${outName} or [ ] ++ pkgList.specifiedOutputs.${outName} or [ ]);
# force the output to be ${outName} or nix-env will not work
nativeBuildInputs = [ (writeShellScript "force-output.sh" ''
export out="''${${outName}-}"
'') ];
inherit meta passthru;
}).overrideAttrs { outputs = [ outName ]; } // { outputSpecified = true; }));
passthru = lib.optionalAttrs (! __combine) (splitOutputs // {
all = builtins.attrValues splitOutputs;
outputs = [ "out" ] ++ pkgList.nonEnvOutputs;
}) // {
# This is set primarily to help find-tarballs.nix to do its job
requiredTeXPackages = builtins.filter lib.isDerivation (pkgList.bin ++ pkgList.nonbin
++ lib.optionals (! __fromCombineWrapper)
(lib.concatMap (n: (pkgList.otherOutputs.${n} or [ ] ++ pkgList.specifiedOutputs.${n} or [ ]))) pkgList.nonEnvOutputs);
# useful for inclusion in the `fonts.packages` nixos option or for use in devshells
fonts = "${texmfroot}/texmf-dist/fonts";
# support variants attrs, (prev: attrs)
__overrideTeXConfig = newArgs:
let appliedArgs = if builtins.isFunction newArgs then newArgs args else newArgs; in
self (args // { __fromCombineWrapper = false; } // appliedArgs);
withPackages = reqs: self (args // { requiredTeXPackages = ps: requiredTeXPackages ps ++ reqs ps; __fromCombineWrapper = false; });
};
out = (if (! __combine)
# meta.outputsToInstall = [ "out" "man" ] is invalid within buildEnv:
# checkMeta will notice that there is no actual "man" output, and fail
# so we set outputsToInstall from the outside, where it is safe
then lib.addMetaAttrs { inherit (pkgList) outputsToInstall; }
else x: x) # texlive.combine: man pages used to be part of out
# no indent for git diff purposes
((buildEnv {
inherit name; inherit name;
ignoreCollisions = false; ignoreCollisions = false;
# remove fake derivations (without 'outPath') to avoid undesired build dependencies # remove fake derivations (without 'outPath') to avoid undesired build dependencies
paths = lib.catAttrs "outPath" pkgList.bin ++ [ doc ]; paths = builtins.catAttrs "outPath" pkgList.bin
++ lib.optional __combine doc;
pathsToLink = [ pathsToLink = [
"/" "/"
"/share/texmf-var/scripts" "/share/texmf-var/scripts"
@ -107,18 +230,13 @@ in (buildEnv {
nativeBuildInputs = [ nativeBuildInputs = [
makeWrapper makeWrapper
libfaketime libfaketime
(lib.last tl."texlive.infra".pkgs) # mktexlsr tl."texlive.infra" # mktexlsr
(lib.last tl.texlive-scripts.pkgs) # fmtutil, updmap tl.texlive-scripts # fmtutil, updmap
(lib.last tl.texlive-scripts-extra.pkgs) # texlinks tl.texlive-scripts-extra # texlinks
perl perl
]; ];
passthru = { inherit meta passthru;
# This is set primarily to help find-tarballs.nix to do its job
packages = pkgList.all;
# useful for inclusion in the `fonts.packages` nixos option or for use in devshells
fonts = "${texmfroot}/texmf-dist/fonts";
};
postBuild = postBuild =
# environment variables (note: only export the ones that are used in the wrappers) # environment variables (note: only export the ones that are used in the wrappers)
@ -131,7 +249,7 @@ in (buildEnv {
export TEXMFCNF="$TEXMFSYSVAR/web2c" export TEXMFCNF="$TEXMFSYSVAR/web2c"
'' + '' +
# wrap executables with required env vars as early as possible # wrap executables with required env vars as early as possible
# 1. we want texlive.combine to use the wrapped binaries, to catch bugs # 1. we use the wrapped binaries in the scripts below, to catch bugs
# 2. we do not want to wrap links generated by texlinks # 2. we do not want to wrap links generated by texlinks
'' ''
enable -f '${bash}/lib/bash/realpath' realpath enable -f '${bash}/lib/bash/realpath' realpath
@ -195,16 +313,16 @@ in (buildEnv {
'' + '' +
# now filter hyphenation patterns and formats # now filter hyphenation patterns and formats
(let (let
hyphens = lib.filter (p: p.hasHyphens or false && p.tlType == "run") pkgList.splitBin.wrong; hyphens = lib.filter (p: p.hasHyphens or false && p.tlOutputName or p.outputName == "tex") pkgList.nonbin;
hyphenPNames = map (p: p.pname) hyphens; hyphenPNames = map (p: p.pname) hyphens;
formats = lib.filter (p: p ? formats && p.tlType == "run") pkgList.splitBin.wrong; formats = lib.filter (p: p ? formats && p.tlOutputName or p.outputName == "tex") pkgList.nonbin;
formatPNames = map (p: p.pname) formats; formatPNames = map (p: p.pname) formats;
# sed expression that prints the lines in /start/,/end/ except for /end/ # sed expression that prints the lines in /start/,/end/ except for /end/
section = start: end: "/${start}/,/${end}/{ /${start}/p; /${end}/!p; };\n"; section = start: end: "/${start}/,/${end}/{ /${start}/p; /${end}/!p; };\n";
script = script =
writeText "hyphens.sed" ( writeText "hyphens.sed" (
# document how the file was generated (for language.dat) # document how the file was generated (for language.dat)
"1{ s/^(% Generated by .*)$/\\1, modified by texlive.combine/; p; }\n" "1{ s/^(% Generated by .*)$/\\1, modified by ${if __combine then "texlive.combine" else "Nixpkgs"}/; p; }\n"
# pick up the header # pick up the header
+ "2,/^% from/{ /^% from/!p; };\n" + "2,/^% from/{ /^% from/!p; };\n"
# pick up all sections matching packages that we combine # pick up all sections matching packages that we combine
@ -214,7 +332,7 @@ in (buildEnv {
); );
scriptLua = scriptLua =
writeText "hyphens.lua.sed" ( writeText "hyphens.lua.sed" (
"1{ s/^(-- Generated by .*)$/\\1, modified by texlive.combine/; p; }\n" "1{ s/^(-- Generated by .*)$/\\1, modified by ${if __combine then "texlive.combine" else "Nixpkgs"}/; p; }\n"
+ "2,/^-- END of language.us.lua/p;\n" + "2,/^-- END of language.us.lua/p;\n"
+ lib.concatMapStrings (pname: section "^-- from ${pname}:$" "^}$|^-- from") hyphenPNames + lib.concatMapStrings (pname: section "^-- from ${pname}:$" "^}$|^-- from") hyphenPNames
+ "$p;\n" + "$p;\n"
@ -225,7 +343,7 @@ in (buildEnv {
fmtutilSed = fmtutilSed =
writeText "fmtutil.sed" ( writeText "fmtutil.sed" (
# document how file was generated # document how file was generated
"1{ s/^(# Generated by .*)$/\\1, modified by texlive.combine/; }\n" "1{ s/^(# Generated by .*)$/\\1, modified by ${if __combine then "texlive.combine" else "Nixpkgs"}/; }\n"
# disable all formats, even those already disabled # disable all formats, even those already disabled
+ "s/^([^#]|#! )/#! \\1/;\n" + "s/^([^#]|#! )/#! \\1/;\n"
# enable the formats from the packages being installed # enable the formats from the packages being installed
@ -312,4 +430,5 @@ in (buildEnv {
ln -s "$TEXMFDIST" "$out"/share/texmf ln -s "$TEXMFDIST" "$out"/share/texmf
'' ''
; ;
}).overrideAttrs (_: { allowSubstitutes = true; }) }).overrideAttrs (_: { allowSubstitutes = true; }));
in out)

View File

@ -15,17 +15,27 @@
, texliveBinaries , texliveBinaries
}: }:
/* Convert an attribute set extracted from tlpdb.nix (with the deps attribute
already processed) to a fake multi-output derivation with possible outputs
[ "tex" "texdoc" "texsource" "tlpkg" "out" "man" "info" ]
*/
# TODO stabilise a generic interface decoupled from the finer details of the
# translation from texlive.tlpdb to tlpdb.nix
{ pname { pname
, revision , revision
, version ? toString revision , version ? toString revision
, extraRevision ? ""
, extraVersion ? ""
, sha512 , sha512
, mirrors , mirrors
, extraVersion ? ""
, fixedHashes ? { } , fixedHashes ? { }
, postUnpack ? "" , postUnpack ? ""
, postFixup ? ""
, stripPrefix ? 1 , stripPrefix ? 1
, license ? [ ] , license ? [ ]
, hasHyphens ? false , hasHyphens ? false
, hasInfo ? false
, hasManpages ? false , hasManpages ? false
, hasRunfiles ? false , hasRunfiles ? false
, hasTlpkg ? false , hasTlpkg ? false
@ -34,112 +44,165 @@
}@args: }@args:
let let
meta = { license = map (x: lib.licenses.${x}) license; }; # common metadata
name = "${pname}-${version}${extraVersion}";
commonPassthru = { meta = {
inherit pname revision version; license = map (x: lib.licenses.${x}) license;
} // lib.optionalAttrs (args ? extraRevision) { # TeX Live packages should not be installed directly into the user profile
inherit (args) extraRevision; outputsToInstall = [ ];
}; };
hasBinfiles = args ? binfiles && args.binfiles != [ ];
hasDocfiles = sha512 ? doc;
hasSource = sha512 ? source;
# emulate drv.all, drv.outputs lists
all = lib.optional hasBinfiles bin ++
lib.optional hasRunfiles tex ++
lib.optional hasDocfiles texdoc ++
lib.optional hasSource texsource ++
lib.optional hasTlpkg tlpkg ++
lib.optional hasManpages man ++
lib.optional hasInfo info;
outputs = lib.catAttrs "tlOutputName" all;
mainDrv = if hasBinfiles then bin
else if hasRunfiles then tex
else if hasTlpkg then tlpkg
else if hasDocfiles then texdoc
else if hasSource then texsource
else tex; # fall back to attrset tex if there is no derivation
# emulate multi-output derivation plus additional metadata
# (out is handled in mkContainer)
passthru = {
inherit all outputs pname;
revision = toString revision + extraRevision;
version = version + extraVersion;
outputSpecified = true;
inherit tex;
} // lib.optionalAttrs (args ? deps) { tlDeps = args.deps; }
// lib.optionalAttrs (args ? formats) { inherit (args) formats; }
// lib.optionalAttrs hasHyphens { inherit hasHyphens; }
// lib.optionalAttrs (args ? postactionScript) { inherit (args) postactionScript; }
// lib.optionalAttrs hasDocfiles { texdoc = texdoc; }
// lib.optionalAttrs hasSource { texsource = texsource; }
// lib.optionalAttrs hasTlpkg { tlpkg = tlpkg; }
// lib.optionalAttrs hasManpages { man = man; }
// lib.optionalAttrs hasInfo { info = info; };
# build run, doc, source, tlpkg containers # build run, doc, source, tlpkg containers
mkContainer = tlType: passthru: sha512: mkContainer = tlType: tlOutputName: sha512:
let let
# NOTE: the fixed naming scheme must match generated-fixed-hashes.nix
# the basename used by upstream (without ".tar.xz" suffix)
urlName = pname + (lib.optionalString (tlType != "run" && tlType != "tlpkg") ".${tlType}");
# name + version for the derivation
tlName = urlName + (lib.optionalString (tlType == "tlpkg") ".tlpkg") + "-${version}${extraVersion}";
fixedHash = fixedHashes.${tlType} or null; # be graceful about missing hashes fixedHash = fixedHashes.${tlType} or null; # be graceful about missing hashes
# the basename used by upstream (without ".tar.xz" suffix)
urls = args.urls or (if args ? url then [ args.url ] else # tlpkg is not a true container but a subfolder of the run container
map (up: "${up}/archive/${urlName}.r${toString revision}.tar.xz") mirrors); urlName = pname + (lib.optionalString (tlType != "run" && tlType != "tlpkg") ".${tlType}");
urls = map (up: "${up}/archive/${urlName}.r${toString revision}.tar.xz") mirrors;
# TODO switch to simpler "${name}-${tlOutputName}" (requires new fixed hashes)
container = runCommand "texlive-${pname}${lib.optionalString (tlType != "run") ".${tlType}"}-${version}${extraVersion}"
({
src = fetchurl { inherit urls sha512; };
# save outputName as fixed output derivations cannot change nor override outputName
passthru = passthru // { inherit tlOutputName; };
# TODO remove tlType from derivation (requires a rebuild)
inherit meta stripPrefix tlType;
} // lib.optionalAttrs (fixedHash != null) {
outputHash = fixedHash;
outputHashAlgo = "sha256";
outputHashMode = "recursive";
})
(''
mkdir "$out"
if [[ "$tlType" == "tlpkg" ]]; then
tar -xf "$src" \
--strip-components=1 \
-C "$out" --anchored --exclude=tlpkg/tlpobj --keep-old-files \
tlpkg
else
tar -xf "$src" \
--strip-components="$stripPrefix" \
-C "$out" --anchored --exclude=tlpkg --keep-old-files
fi
'' + postUnpack);
in in
runCommand "texlive-${tlName}" # remove the standard drv.out, optionally replace it with the bin container
({ builtins.removeAttrs container [ "out" ] // lib.optionalAttrs hasBinfiles { out = bin; };
src = fetchurl { inherit urls sha512; };
inherit meta passthru stripPrefix tlType;
} // lib.optionalAttrs (fixedHash != null) {
outputHash = fixedHash;
outputHashAlgo = "sha256";
outputHashMode = "recursive";
})
(''
mkdir "$out"
if [[ "$tlType" == "tlpkg" ]]; then
tar -xf "$src" \
--strip-components=1 \
-C "$out" --anchored --exclude=tlpkg/tlpobj --keep-old-files \
tlpkg
else
tar -xf "$src" \
--strip-components="$stripPrefix" \
-C "$out" --anchored --exclude=tlpkg --keep-old-files
fi
'' + postUnpack);
tex = [ tex =
( if hasRunfiles then mkContainer "run" "tex" sha512.run
let passthru = commonPassthru else passthru
// lib.optionalAttrs (args ? deps) { tlDeps = args.deps; } // { inherit meta; tlOutputName = "tex"; }
// lib.optionalAttrs (args ? formats) { inherit (args) formats; } // lib.optionalAttrs hasBinfiles { out = bin; };
// lib.optionalAttrs hasHyphens { inherit hasHyphens; }; in
if hasRunfiles then mkContainer "run" passthru sha512.run
else (passthru // { tlType = "run"; })
)
];
doc = let passthru = commonPassthru texdoc = mkContainer "doc" "texdoc" sha512.doc;
// lib.optionalAttrs hasManpages { inherit hasManpages; }; in
lib.optional (sha512 ? doc) (mkContainer "doc" passthru sha512.doc);
source = lib.optional (sha512 ? source) (mkContainer "source" commonPassthru sha512.source); texsource = mkContainer "source" "texsource" sha512.source;
tlpkg = let passthru = commonPassthru tlpkg = mkContainer "tlpkg" "tlpkg" sha512.run;
// lib.optionalAttrs (args ? postactionScript) { postactionScript = args.postactionScript; }; in
lib.optional hasTlpkg (mkContainer "tlpkg" passthru sha512.run);
bin = lib.optional (args ? binfiles && args.binfiles != [ ]) ( # build bin container
let extToInput = {
# find interpreters for the script extensions found in tlpdb # find interpreters for the script extensions found in tlpdb
extToInput = { jar = jdk;
jar = jdk; lua = texliveBinaries.luatex;
lua = texliveBinaries.luatex; py = python3;
py = python3; rb = ruby;
rb = ruby; sno = snobol4;
sno = snobol4; tcl = tk;
tcl = tk; texlua = texliveBinaries.luatex;
texlua = texliveBinaries.luatex; tlu = texliveBinaries.luatex;
tlu = texliveBinaries.luatex; };
};
run = lib.head tex; # TODO switch to simpler "${name}" (requires a rebuild)
in bin = runCommand "texlive-${pname}.bin-${version}"
runCommand "texlive-${pname}.bin-${version}" {
{ inherit meta;
passthru = commonPassthru // { tlType = "bin"; }; passthru = passthru // { tlOutputName = "out"; };
inherit meta; # shebang interpreters
# shebang interpreters and compiled binaries buildInputs =let outName = builtins.replaceStrings [ "-" ] [ "_" ] pname; in
buildInputs = let outName = builtins.replaceStrings [ "-" ] [ "_" ] pname; in [ texliveBinaries.core.${outName} or null
[ texliveBinaries.core.${outName} or null texliveBinaries.${pname} or null
texliveBinaries.${pname} or null texliveBinaries.core-big.${outName} or null ]
texliveBinaries.core-big.${outName} or null ] ++ (args.extraBuildInputs or [ ]) ++ [ bash perl ]
++ (args.extraBuildInputs or [ ]) ++ [ bash perl ] ++ (lib.attrVals (args.scriptExts or [ ]) extToInput);
++ (lib.attrVals (args.scriptExts or [ ]) extToInput); nativeBuildInputs = extraNativeBuildInputs;
nativeBuildInputs = extraNativeBuildInputs; # absolute scripts folder
# absolute scripts folder scriptsFolder = lib.optionalString (tex ? outPath) (tex.outPath + "/scripts/" + args.scriptsFolder or pname);
scriptsFolder = lib.optionalString (run ? outPath) (run.outPath + "/scripts/" + args.scriptsFolder or pname); # binaries info
# binaries info inherit (args) binfiles;
inherit (args) binfiles; binlinks = builtins.attrNames (args.binlinks or { });
binlinks = builtins.attrNames (args.binlinks or { }); bintargets = builtins.attrValues (args.binlinks or { });
bintargets = builtins.attrValues (args.binlinks or { }); # build scripts
# build scripts patchScripts = ./patch-scripts.sed;
patchScripts = ./patch-scripts.sed; makeBinContainers = ./make-bin-containers.sh;
makeBinContainers = ./make-bin-containers.sh; }
} ''
'' . "$makeBinContainers"
. "$makeBinContainers" ${args.postFixup or ""}
${args.postFixup or ""} '';
''
); # build man, info containers
# TODO switch to simpler "${name}-man" (requires a rebuild)
man = builtins.removeAttrs (runCommand "texlive-${pname}.man-${version}${extraVersion}"
{
inherit meta texdoc;
passthru = passthru // { tlOutputName = "man"; };
}
''
mkdir -p "$out"/share
ln -s {"$texdoc"/doc,"$out"/share}/man
'') [ "out" ] // lib.optionalAttrs hasBinfiles { out = bin; };
# TODO switch to simpler "${name}-info" (requires a rebuild)
info = builtins.removeAttrs (runCommand "texlive-${pname}.info-${version}${extraVersion}"
{
inherit meta texdoc;
passthru = passthru // { tlOutputName = "info"; };
}
''
mkdir -p "$out"/share
ln -s {"$texdoc"/doc,"$out"/share}/info
'') [ "out" ] // lib.optionalAttrs hasBinfiles { out = bin; };
in in
{ pkgs = tex ++ doc ++ source ++ tlpkg ++ bin; } builtins.removeAttrs mainDrv [ "outputSpecified" ]

View File

@ -0,0 +1,42 @@
# legacy texlive.combine wrapper
{ lib, toTLPkgList, toTLPkgSets, buildTeXEnv }:
args@{
pkgFilter ? (pkg: pkg.tlType == "run" || pkg.tlType == "bin" || pkg.pname == "core"
|| pkg.hasManpages or false)
, extraName ? "combined"
, extraVersion ? ""
, ...
}:
let
pkgSet = removeAttrs args [ "pkgFilter" "extraName" "extraVersion" ];
# combine a set of TL packages into a single TL meta-package
combinePkgs = pkgList: lib.catAttrs "pkg" (
let
# a TeX package used to be an attribute set { pkgs = [ ... ]; ... } where pkgs is a list of derivations
# the derivations make up the TeX package and optionally (for backward compatibility) its dependencies
tlPkgToSets = drv: map ({ tlType, version ? "", outputName ? "", ... }@pkg: {
# outputName required to distinguish among bin.core-big outputs
key = "${pkg.pname or pkg.name}.${tlType}-${version}-${outputName}";
inherit pkg;
}) (drv.pkgs or (toTLPkgList drv));
pkgListToSets = lib.concatMap tlPkgToSets; in
builtins.genericClosure {
startSet = pkgListToSets pkgList;
operator = { pkg, ... }: pkgListToSets (pkg.tlDeps or []);
});
combined = combinePkgs (lib.attrValues pkgSet);
# convert to specified outputs
tlTypeToOut = { run = "tex"; doc = "texdoc"; source = "texsource"; bin = "out"; tlpkg = "tlpkg"; };
toSpecified = { tlType, ... }@drv: drv // { outputSpecified = true; tlOutputName = tlTypeToOut.${tlType}; };
all = lib.filter pkgFilter combined ++ lib.filter (pkg: pkg.tlType == "tlpkg") combined;
converted = builtins.map toSpecified all;
in
buildTeXEnv {
__extraName = extraName;
__extraVersion = extraVersion;
requiredTeXPackages = _: converted;
__combine = true;
__fromCombineWrapper = true;
}

View File

@ -2,7 +2,7 @@
- source: ../../../../../doc/languages-frameworks/texlive.xml - source: ../../../../../doc/languages-frameworks/texlive.xml
- current html: https://nixos.org/nixpkgs/manual/#sec-language-texlive - current html: https://nixos.org/nixpkgs/manual/#sec-language-texlive
*/ */
{ stdenv, lib, fetchurl, runCommand, writeText, buildEnv { stdenv, lib, fetchurl, runCommand, writeShellScript, writeText, buildEnv
, callPackage, ghostscript_headless, harfbuzz , callPackage, ghostscript_headless, harfbuzz
, makeWrapper, installShellFiles , makeWrapper, installShellFiles
, python3, ruby, perl, tk, jdk, bash, snobol4 , python3, ruby, perl, tk, jdk, bash, snobol4
@ -22,13 +22,6 @@ let
tlpdb = overriddenTlpdb; tlpdb = overriddenTlpdb;
}; };
# function for creating a working environment from a set of TL packages
combine = import ./combine.nix {
inherit bin buildEnv lib makeWrapper writeText runCommand
perl libfaketime makeFontsConf bash tl coreutils gawk gnugrep gnused;
ghostscript = ghostscript_headless;
};
tlpdb = import ./tlpdb.nix; tlpdb = import ./tlpdb.nix;
tlpdbVersion = tlpdb."00texlive.config"; tlpdbVersion = tlpdb."00texlive.config";
@ -101,12 +94,108 @@ let
// lib.optionalAttrs (args ? deps) { deps = map (n: tl.${n}) (args.deps or [ ]); }) // lib.optionalAttrs (args ? deps) { deps = map (n: tl.${n}) (args.deps or [ ]); })
) overriddenTlpdb; ) overriddenTlpdb;
# function for creating a working environment
buildTeXEnv = import ./build-tex-env.nix {
inherit bin tl;
ghostscript = ghostscript_headless;
inherit lib buildEnv libfaketime makeFontsConf makeWrapper runCommand
writeShellScript writeText toTLPkgSets bash perl coreutils gawk gnugrep gnused;
};
### texlive.combine compatibility layer:
# convert TeX packages to { pkgs = [ ... ]; } lists
# respecting specified outputs
toTLPkgList = drv: if drv.outputSpecified or false
then let tlType = drv.tlType or tlOutToType.${drv.tlOutputName or drv.outputName} or null; in
lib.optional (tlType != null) (drv // { inherit tlType; })
else [ (drv.tex // { tlType = "run"; }) ] ++
lib.optional (drv ? texdoc) (drv.texdoc // { tlType = "doc"; } // lib.optionalAttrs (drv ? man) { hasManpages = true; }) ++
lib.optional (drv ? texsource) (drv.texsource // { tlType = "source"; }) ++
lib.optional (drv ? tlpkg) (drv.tlpkg // { tlType = "tlpkg"; }) ++
lib.optional (drv ? out) (drv.out // { tlType = "bin"; });
tlOutToType = { out = "bin"; tex = "run"; texsource = "source"; texdoc = "doc"; tlpkg = "tlpkg"; };
# convert { pkgs = [ ... ]; } lists to TeX packages
# possibly more than one, if pkgs is also used to specify dependencies
tlTypeToOut = { run = "tex"; doc = "texdoc"; source = "texsource"; bin = "out"; tlpkg = "tlpkg"; };
toSpecifiedNV = p: rec {
name = value.tlOutputName;
value = builtins.removeAttrs p [ "pkgs" ]
// { outputSpecified = true; tlOutputName = tlTypeToOut.${p.tlType}; };
};
toTLPkgSet = pname: drvs:
let set = lib.listToAttrs (builtins.map toSpecifiedNV drvs);
mainDrv = set.out or set.tex or set.tlpkg or set.texdoc or set.texsource; in
builtins.removeAttrs mainDrv [ "outputSpecified" ];
toTLPkgSets = { pkgs, ... }: lib.mapAttrsToList toTLPkgSet
(builtins.groupBy (p: p.pname) pkgs);
# export TeX packages as { pkgs = [ ... ]; } in the top attribute set
allPkgLists = lib.mapAttrs (n: drv: { pkgs = toTLPkgList drv; }) tl;
# function for creating a working environment from a set of TL packages
# now a legacy wrapper around buildTeXEnv
combine = import ./combine-wrapper.nix { inherit buildTeXEnv lib toTLPkgList toTLPkgSets; };
assertions = with lib; assertions = with lib;
assertMsg (tlpdbVersion.year == version.texliveYear) "TeX Live year in texlive does not match tlpdb.nix, refusing to evaluate" && assertMsg (tlpdbVersion.year == version.texliveYear) "TeX Live year in texlive does not match tlpdb.nix, refusing to evaluate" &&
assertMsg (tlpdbVersion.frozen == version.final) "TeX Live final status in texlive does not match tlpdb.nix, refusing to evaluate"; assertMsg (tlpdbVersion.frozen == version.final) "TeX Live final status in texlive does not match tlpdb.nix, refusing to evaluate";
# Pre-defined evironment packages for TeX Live schemes,
# to make nix-env usage more comfortable and build selected on Hydra.
# these license lists should be the sorted union of the licenses of the packages the schemes contain.
# The correctness of this collation is tested by tests.texlive.licenses
licenses = with lib.licenses; {
scheme-basic = [ free gfl gpl1Only gpl2 gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ];
scheme-context = [ bsd2 bsd3 cc-by-sa-40 free gfl gfsl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus knuth lgpl2 lgpl21
lppl1 lppl13c mit ofl publicDomain x11 ];
scheme-full = [ artistic1-cl8 artistic2 asl20 bsd2 bsd3 bsdOriginal cc-by-10 cc-by-40 cc-by-sa-10 cc-by-sa-20
cc-by-sa-30 cc-by-sa-40 cc0 fdl13Only free gfl gfsl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth
lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
scheme-gust = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-40 cc0 fdl13Only free gfl gfsl gpl1Only gpl2
gpl2Plus gpl3 gpl3Plus knuth lgpl2 lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
scheme-infraonly = [ gpl2 gpl2Plus lgpl21 ];
scheme-medium = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-20 cc-by-sa-30 cc-by-sa-40 cc0 fdl13Only
free gfl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl
publicDomain x11 ];
scheme-minimal = [ free gpl1Only gpl2 gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ];
scheme-small = [ asl20 cc-by-40 cc-by-sa-40 cc0 fdl13Only free gfl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus knuth
lgpl2 lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
scheme-tetex = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-10 cc-by-sa-20 cc-by-sa-30 cc-by-sa-40 cc0
fdl13Only free gfl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a
lppl13c mit ofl publicDomain x11];
};
meta = {
description = "TeX Live environment";
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ veprbl ];
license = licenses.scheme-infraonly;
};
combined = recurseIntoAttrs (
lib.genAttrs [ "scheme-basic" "scheme-context" "scheme-full" "scheme-gust" "scheme-infraonly"
"scheme-medium" "scheme-minimal" "scheme-small" "scheme-tetex" ]
(pname:
(buildTeXEnv {
__extraName = "combined" + lib.removePrefix "scheme" pname;
__extraVersion = with version; if final then "-final" else ".${year}${month}${day}";
requiredTeXPackages = ps: [ ps.${pname} ];
# to maintain full backward compatibility, enable texlive.combine behavior
__combine = true;
}).overrideAttrs {
meta = meta // {
description = "TeX Live environment for ${pname}";
license = licenses.${pname};
};
}
)
);
in in
tl // { allPkgLists // {
pkgs = tl;
tlpdb = { tlpdb = {
# nested in an attribute set to prevent them from appearing in search # nested in an attribute set to prevent them from appearing in search
@ -116,55 +205,13 @@ in
bin = assert assertions; bin // { bin = assert assertions; bin // {
# for backward compatibility # for backward compatibility
latexindent = lib.findFirst (p: p.tlType == "bin") tl.latexindent.pkgs; latexindent = tl.latexindent;
}; };
combine = assert assertions; combine; combine = assert assertions; combine;
# Pre-defined combined packages for TeX Live schemes, combined = assert assertions; combined;
# to make nix-env usage more comfortable and build selected on Hydra.
combined = with lib; # convenience alias
let withPackages = (buildTeXEnv { }).withPackages;
# these license lists should be the sorted union of the licenses of the packages the schemes contain.
# The correctness of this collation is tested by tests.texlive.licenses
licenses = with lib.licenses; {
scheme-basic = [ free gfl gpl1Only gpl2 gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ];
scheme-context = [ bsd2 bsd3 cc-by-sa-40 free gfl gfsl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus knuth lgpl2 lgpl21
lppl1 lppl13c mit ofl publicDomain x11 ];
scheme-full = [ artistic1-cl8 artistic2 asl20 bsd2 bsd3 bsdOriginal cc-by-10 cc-by-40 cc-by-sa-10 cc-by-sa-20
cc-by-sa-30 cc-by-sa-40 cc0 fdl13Only free gfl gfsl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth
lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
scheme-gust = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-40 cc0 fdl13Only free gfl gfsl gpl1Only gpl2
gpl2Plus gpl3 gpl3Plus knuth lgpl2 lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
scheme-infraonly = [ gpl2 gpl2Plus lgpl21 ];
scheme-medium = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-20 cc-by-sa-30 cc-by-sa-40 cc0 fdl13Only
free gfl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl
publicDomain x11 ];
scheme-minimal = [ free gpl1Only gpl2 gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ];
scheme-small = [ asl20 cc-by-40 cc-by-sa-40 cc0 fdl13Only free gfl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus knuth
lgpl2 lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
scheme-tetex = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-10 cc-by-sa-20 cc-by-sa-30 cc-by-sa-40 cc0
fdl13Only free gfl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a
lppl13c mit ofl publicDomain x11];
};
in recurseIntoAttrs (
mapAttrs
(pname: attrs:
addMetaAttrs rec {
description = "TeX Live environment for ${pname}";
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ veprbl ];
license = licenses.${pname};
}
(combine {
${pname} = attrs;
extraName = "combined" + lib.removePrefix "scheme" pname;
extraVersion = with version; if final then "-final" else ".${year}${month}${day}";
})
)
{ inherit (tl)
scheme-basic scheme-context scheme-full scheme-gust scheme-infraonly
scheme-medium scheme-minimal scheme-small scheme-tetex;
}
);
} }

View File

@ -1,13 +1,13 @@
with import ../../../../.. { }; with import ../../../../.. { };
with lib; let with lib; let
isFod = p: p.tlType != "bin" && isDerivation p; getFods = drv: lib.optional (isDerivation drv.tex) (drv.tex // { tlType = "run"; })
++ lib.optional (drv ? texdoc) (drv.texdoc // { tlType = "doc"; })
++ lib.optional (drv ? texsource) (drv.texsource // { tlType = "source"; })
++ lib.optional (drv ? tlpkg) (drv.tlpkg // { tlType = "tlpkg"; });
# ugly hack to extract combine from collection-latexextra, since it is masked by texlive.combine sorted = sort (a: b: a.pname < b.pname) (attrValues texlive.pkgs);
combine = lib.findFirst (p: (lib.head p.pkgs).pname == "combine") { pkgs = [ ]; } (lib.head texlive.collection-latexextra.pkgs).tlDeps; fods = concatMap getFods sorted;
all = filter (p: p ? pkgs) (attrValues (removeAttrs texlive [ "bin" "combine" "combined" "tlpdb" ])) ++ [ combine ];
sorted = sort (a: b: (head a.pkgs).pname < (head b.pkgs).pname) all;
fods = filter isFod (concatMap (p: p.pkgs or [ ]) all);
computeHash = fod: runCommand "${fod.pname}-${fod.tlType}-fixed-hash" computeHash = fod: runCommand "${fod.pname}-${fod.tlType}-fixed-hash"
{ buildInputs = [ nix ]; inherit fod; } { buildInputs = [ nix ]; inherit fod; }
@ -15,18 +15,17 @@ with lib; let
hash = fod: fod.outputHash or (builtins.readFile (computeHash fod)); hash = fod: fod.outputHash or (builtins.readFile (computeHash fod));
hashes = { pkgs }: hashes = fods:
concatMapStrings ({ tlType, ... }@p: lib.optionalString (isFod p) (''${tlType}="${hash p}";'')) pkgs; concatMapStrings ({ tlType, ... }@p: ''${tlType}="${hash p}";'') fods;
hashLine = { pkgs }@pkg: hashLine = { pname, revision, extraRevision ? "", ... }@drv:
let let
fods = lib.filter isFod pkgs; fods = getFods drv;
first = lib.head fods;
# NOTE: the fixed naming scheme must match default.nix # NOTE: the fixed naming scheme must match default.nix
fixedName = with first; "${pname}-${toString revision}${first.extraRevision or ""}"; fixedName = "${pname}-${toString revision}${extraRevision}";
in in
lib.optionalString (fods != [ ]) '' optionalString (fods != [ ]) ''
${strings.escapeNixIdentifier fixedName}={${hashes pkg}}; ${strings.escapeNixIdentifier fixedName}={${hashes fods}};
''; '';
in in
{ {
@ -37,6 +36,6 @@ in
fixedHashesNix = writeText "fixed-hashes.nix" fixedHashesNix = writeText "fixed-hashes.nix"
'' ''
{ {
${lib.concatMapStrings hashLine sorted}} ${concatMapStrings hashLine sorted}}
''; '';
} }

View File

@ -91,6 +91,7 @@ $a}
t next-doc # loop if the previous lines matched t next-doc # loop if the previous lines matched
/ (texmf-dist|RELOC)\/doc\/man\//i\ hasManpages = true; / (texmf-dist|RELOC)\/doc\/man\//i\ hasManpages = true;
/ (texmf-dist|RELOC)\/doc\/info\//i\ hasInfo = true;
D # restart cycle D # restart cycle
} }

View File

@ -126,7 +126,7 @@ in lib.recursiveUpdate orig rec {
texlive-scripts.binlinks = { texlive-scripts.binlinks = {
mktexfmt = "fmtutil"; mktexfmt = "fmtutil";
texhash = (lib.last tl."texlive.infra".pkgs) + "/bin/mktexlsr"; texhash = tl."texlive.infra" + "/bin/mktexlsr";
}; };
texlive-scripts-extra.binlinks = { texlive-scripts-extra.binlinks = {
@ -352,7 +352,7 @@ in lib.recursiveUpdate orig rec {
mkdir -p support/texdoc mkdir -p support/texdoc
touch support/texdoc/NEWS touch support/texdoc/NEWS
TEXMFCNF="${lib.head tl.kpathsea.pkgs}/web2c" TEXMF="$out" TEXDOCS=. TEXMFVAR=. \ TEXMFCNF="${tl.kpathsea.tex}/web2c" TEXMF="$out" TEXDOCS=. TEXMFVAR=. \
"${bin.luatex}"/bin/texlua "$out"/scripts/texdoc/texdoc.tlu \ "${bin.luatex}"/bin/texlua "$out"/scripts/texdoc/texdoc.tlu \
-c texlive_tlpdb=texlive.tlpdb -lM texdoc -c texlive_tlpdb=texlive.tlpdb -lM texdoc
@ -362,7 +362,7 @@ in lib.recursiveUpdate orig rec {
# install zsh completion # install zsh completion
postFixup = '' postFixup = ''
TEXMFCNF="${lib.head tl.kpathsea.pkgs}"/web2c TEXMF="$scriptsFolder/../.." \ TEXMFCNF="${tl.kpathsea.tex}"/web2c TEXMF="$scriptsFolder/../.." \
texlua "$out"/bin/texdoc --print-completion zsh > "$TMPDIR"/_texdoc texlua "$out"/bin/texdoc --print-completion zsh > "$TMPDIR"/_texdoc
substituteInPlace "$TMPDIR"/_texdoc \ substituteInPlace "$TMPDIR"/_texdoc \
--replace 'compdef __texdoc texdoc' '#compdef texdoc' \ --replace 'compdef __texdoc texdoc' '#compdef texdoc' \
@ -381,14 +381,14 @@ in lib.recursiveUpdate orig rec {
license = [ "gpl2Plus" ] ++ lib.toList bin.core.meta.license.shortName ++ orig."texlive.infra".license or [ ]; license = [ "gpl2Plus" ] ++ lib.toList bin.core.meta.license.shortName ++ orig."texlive.infra".license or [ ];
scriptsFolder = "texlive"; scriptsFolder = "texlive";
extraBuildInputs = [ coreutils gnused gnupg (lib.last tl.kpathsea.pkgs) (perl.withPackages (ps: with ps; [ Tk ])) ]; extraBuildInputs = [ coreutils gnused gnupg tl.kpathsea (perl.withPackages (ps: with ps; [ Tk ])) ];
# make tlmgr believe it can use kpsewhich to evaluate TEXMFROOT # make tlmgr believe it can use kpsewhich to evaluate TEXMFROOT
postFixup = '' postFixup = ''
substituteInPlace "$out"/bin/tlmgr \ substituteInPlace "$out"/bin/tlmgr \
--replace 'if (-r "$bindir/$kpsewhichname")' 'if (1)' --replace 'if (-r "$bindir/$kpsewhichname")' 'if (1)'
sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath [ gnupg ]}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/tlmgr sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath [ gnupg ]}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/tlmgr
sed -i '2iPATH="${lib.makeBinPath [ coreutils gnused (lib.last tl.kpathsea.pkgs) ]}''${PATH:+:$PATH}"' "$out"/bin/mktexlsr sed -i '2iPATH="${lib.makeBinPath [ coreutils gnused tl.kpathsea ]}''${PATH:+:$PATH}"' "$out"/bin/mktexlsr
''; '';
# add minimal texlive.tlpdb # add minimal texlive.tlpdb

View File

@ -1707,6 +1707,7 @@ asymptote = {
sha512.run = "4f97d0d87d1f29985c83c99629fc52e8e18f6eabf95d77aa888429187b49ed9525661d9c06b46a9b2295b03df412778ede1490fa9cd8ec680c3209a4ca6d0be0"; sha512.run = "4f97d0d87d1f29985c83c99629fc52e8e18f6eabf95d77aa888429187b49ed9525661d9c06b46a9b2295b03df412778ede1490fa9cd8ec680c3209a4ca6d0be0";
sha512.doc = "940297c3d69de7e01caa09ff44483f7334aba14705bdcdc83661ca9be2210133e094f99a8355b4b88d076355bb4f13f64c21700bff57f452dd5dbc8d2fddb432"; sha512.doc = "940297c3d69de7e01caa09ff44483f7334aba14705bdcdc83661ca9be2210133e094f99a8355b4b88d076355bb4f13f64c21700bff57f452dd5dbc8d2fddb432";
hasManpages = true; hasManpages = true;
hasInfo = true;
hasRunfiles = true; hasRunfiles = true;
license = [ "lgpl3" ]; license = [ "lgpl3" ];
version = "2.85"; version = "2.85";
@ -15500,6 +15501,7 @@ dvipng = {
sha512.run = "d24be610a63a9df22ebe6f53891519ab77900611d1159dec5e97b27160f3552b4cbce42b575a036125d2b15910a72cb5e3793a3409c5d0f4b1df0c2433e828f8"; sha512.run = "d24be610a63a9df22ebe6f53891519ab77900611d1159dec5e97b27160f3552b4cbce42b575a036125d2b15910a72cb5e3793a3409c5d0f4b1df0c2433e828f8";
sha512.doc = "976ff6c9628fe85adca2287f04d76f2c1605f243e28b4d32cb1ef9a90d30dcae0d202e6d5156914c204fd42b0a66460755a89f7dbdeb9ec1ccf6010cfe8daf78"; sha512.doc = "976ff6c9628fe85adca2287f04d76f2c1605f243e28b4d32cb1ef9a90d30dcae0d202e6d5156914c204fd42b0a66460755a89f7dbdeb9ec1ccf6010cfe8daf78";
hasManpages = true; hasManpages = true;
hasInfo = true;
license = [ "lgpl3" ]; license = [ "lgpl3" ];
version = "1.17"; version = "1.17";
}; };
@ -15521,6 +15523,7 @@ dvips = {
sha512.run = "a680a4685d3cbb429ad9dada0d48098f7755253ad1d7c808731f0f4fb4c37971cb937a9fa68bcecd892de93cc35a8086b742c86338460585c2912f36d00ade67"; sha512.run = "a680a4685d3cbb429ad9dada0d48098f7755253ad1d7c808731f0f4fb4c37971cb937a9fa68bcecd892de93cc35a8086b742c86338460585c2912f36d00ade67";
sha512.doc = "a6acb780a45663fb21976622d7b6c3ea8d4adf1fe405ee97cd7c4cf09fa49b59069ba72b2aa14b53d3ba631b37c5cbd979929adaa274a0bec8b1272d85e1cd43"; sha512.doc = "a6acb780a45663fb21976622d7b6c3ea8d4adf1fe405ee97cd7c4cf09fa49b59069ba72b2aa14b53d3ba631b37c5cbd979929adaa274a0bec8b1272d85e1cd43";
hasManpages = true; hasManpages = true;
hasInfo = true;
hasRunfiles = true; hasRunfiles = true;
license = [ "free" ]; license = [ "free" ];
}; };
@ -16610,6 +16613,7 @@ eplain = {
sha512.run = "fda8158ae2bdc96187b6e6ace2a94be3e0f68201adbc02553b48a3848481352ac10ddd72babcbc2835e089ce751ade7dfa6cfd1c642c94155c2861db865f5c29"; sha512.run = "fda8158ae2bdc96187b6e6ace2a94be3e0f68201adbc02553b48a3848481352ac10ddd72babcbc2835e089ce751ade7dfa6cfd1c642c94155c2861db865f5c29";
sha512.doc = "60902b2422d2f5d7570a19daf7f586df7882505d7c156539699a0aa47a0f3bde5688dcbdc92c8a6a9878f11392bc9b9f147626aad230eecd2740d56f104928ed"; sha512.doc = "60902b2422d2f5d7570a19daf7f586df7882505d7c156539699a0aa47a0f3bde5688dcbdc92c8a6a9878f11392bc9b9f147626aad230eecd2740d56f104928ed";
hasManpages = true; hasManpages = true;
hasInfo = true;
sha512.source = "015de2eeeaec99bd15882a190f9ef3f2112520f8c591c7e6d2351c52d8690b024750adea426bcf95f438aaa20c97dd321881ac7212ff181e148337b57f6d386c"; sha512.source = "015de2eeeaec99bd15882a190f9ef3f2112520f8c591c7e6d2351c52d8690b024750adea426bcf95f438aaa20c97dd321881ac7212ff181e148337b57f6d386c";
hasRunfiles = true; hasRunfiles = true;
license = [ "gpl2Plus" ]; license = [ "gpl2Plus" ];
@ -16666,6 +16670,7 @@ epspdf = {
revision = 66119; revision = 66119;
sha512.run = "f155834a9636991c8ae752f61f70bdf22ab3172270c85aebb05462cf26e44f6e81fb83842c8515bfa54e632a3beab8bb91cccf2b5eef459d77738443c77df56d"; sha512.run = "f155834a9636991c8ae752f61f70bdf22ab3172270c85aebb05462cf26e44f6e81fb83842c8515bfa54e632a3beab8bb91cccf2b5eef459d77738443c77df56d";
sha512.doc = "5d06f8a4ef295e0fac8cd1dc73ff98e266dcf4394ed76223c92d20758fa8195ef5bea9bde49b1a247acfdf67aa7717092f978b55fc4fbc8665922487d57985d6"; sha512.doc = "5d06f8a4ef295e0fac8cd1dc73ff98e266dcf4394ed76223c92d20758fa8195ef5bea9bde49b1a247acfdf67aa7717092f978b55fc4fbc8665922487d57985d6";
hasInfo = true;
hasRunfiles = true; hasRunfiles = true;
scriptExts = [ scriptExts = [
"tcl" "tcl"
@ -18768,6 +18773,7 @@ fontname = {
stripPrefix = 0; stripPrefix = 0;
sha512.run = "424da4dbbc07c41840e6aeb6fabeef5d4778d206b9cb8a90e752ebeb65d962b96ad41a7e20c86a16665e2bf48ad795d85001da66ff41b01ae3c949c6eefa4593"; sha512.run = "424da4dbbc07c41840e6aeb6fabeef5d4778d206b9cb8a90e752ebeb65d962b96ad41a7e20c86a16665e2bf48ad795d85001da66ff41b01ae3c949c6eefa4593";
sha512.doc = "78199996913192f5f69423b6f412acc52b74f051b01d3e345b97b7f1d9ea4aea762a7b83488068f3091b41da69471d56b3f18ab4d299cc6adfe4e004072db303"; sha512.doc = "78199996913192f5f69423b6f412acc52b74f051b01d3e345b97b7f1d9ea4aea762a7b83488068f3091b41da69471d56b3f18ab4d299cc6adfe4e004072db303";
hasInfo = true;
hasRunfiles = true; hasRunfiles = true;
license = [ "gpl1Only" ]; license = [ "gpl1Only" ];
}; };
@ -24499,6 +24505,7 @@ kpathsea = {
sha512.run = "8a9f0dd49470bec5ba0f963a0385bea45141d6b805682bd65e95291b02158b9d2cedd5bd43592de7c447fe87f04efa00e4d1aa191a490147adcb57ec3922b5db"; sha512.run = "8a9f0dd49470bec5ba0f963a0385bea45141d6b805682bd65e95291b02158b9d2cedd5bd43592de7c447fe87f04efa00e4d1aa191a490147adcb57ec3922b5db";
sha512.doc = "51500943de0184fd9794dbf6af80aed2fc7bbaf2a7949facb1840ad0e32344d217aa4d58ee76e3934aec891858f789b3847b9027cb2bd75e5962be98ddd9d02f"; sha512.doc = "51500943de0184fd9794dbf6af80aed2fc7bbaf2a7949facb1840ad0e32344d217aa4d58ee76e3934aec891858f789b3847b9027cb2bd75e5962be98ddd9d02f";
hasManpages = true; hasManpages = true;
hasInfo = true;
hasRunfiles = true; hasRunfiles = true;
license = [ "lgpl21" ]; license = [ "lgpl21" ];
}; };
@ -25258,6 +25265,7 @@ latex2e-help-texinfo = {
stripPrefix = 0; stripPrefix = 0;
sha512.run = "34b91b19e1b71b1df6d0f57dda4d6976a93b16afac259656c9d4e331b0c23a9b0550563c1a10dd7a95640e3740b3b15597c1023f6c2721bf2a64800466b9cd09"; sha512.run = "34b91b19e1b71b1df6d0f57dda4d6976a93b16afac259656c9d4e331b0c23a9b0550563c1a10dd7a95640e3740b3b15597c1023f6c2721bf2a64800466b9cd09";
sha512.doc = "d4584d9259f3c1867e7445d4a219e4decc5ba3b305e20d1e780180a47fbad8df4d55552726d8288e78c8388823a2b652b81080c8139b00f4ea3ca10e5789375b"; sha512.doc = "d4584d9259f3c1867e7445d4a219e4decc5ba3b305e20d1e780180a47fbad8df4d55552726d8288e78c8388823a2b652b81080c8139b00f4ea3ca10e5789375b";
hasInfo = true;
license = [ "free" ]; license = [ "free" ];
}; };
latex2e-help-texinfo-fr = { latex2e-help-texinfo-fr = {
@ -25265,6 +25273,7 @@ latex2e-help-texinfo-fr = {
stripPrefix = 0; stripPrefix = 0;
sha512.run = "96366ea420532f56ae076da48f5402c2ee78ca27fae8180795d6cd18aae118a8c7060208ff43ab64526addcdce9e4d90790583842b20c751f37865cf616e04e4"; sha512.run = "96366ea420532f56ae076da48f5402c2ee78ca27fae8180795d6cd18aae118a8c7060208ff43ab64526addcdce9e4d90790583842b20c751f37865cf616e04e4";
sha512.doc = "52f6aea9ac2393a73d7dc7ce8ad4d6f08e0a224397199d5def97412502026717e8cb966552368899c50718a1049b1ad4610d2d23150a45bee55cc2c776003db7"; sha512.doc = "52f6aea9ac2393a73d7dc7ce8ad4d6f08e0a224397199d5def97412502026717e8cb966552368899c50718a1049b1ad4610d2d23150a45bee55cc2c776003db7";
hasInfo = true;
license = [ "publicDomain" ]; license = [ "publicDomain" ];
}; };
latex2e-help-texinfo-spanish = { latex2e-help-texinfo-spanish = {
@ -25272,6 +25281,7 @@ latex2e-help-texinfo-spanish = {
stripPrefix = 0; stripPrefix = 0;
sha512.run = "870c8f3af54ac42df5f4958669cf730cd16084c985f0b377c5aba9d526b8f7be14b367791d2c0a1f1a715739390ab63777ff2a92e7f9aad09897c8bbecff495e"; sha512.run = "870c8f3af54ac42df5f4958669cf730cd16084c985f0b377c5aba9d526b8f7be14b367791d2c0a1f1a715739390ab63777ff2a92e7f9aad09897c8bbecff495e";
sha512.doc = "4c751a7305e089dab61bf991436ab1e612cfca0d17e416e21d659c04ef32eeb2d14dbeb09d63649a2b79f842766a218c43ae2c6fbeeba5549f039f991049a79d"; sha512.doc = "4c751a7305e089dab61bf991436ab1e612cfca0d17e416e21d659c04ef32eeb2d14dbeb09d63649a2b79f842766a218c43ae2c6fbeeba5549f039f991049a79d";
hasInfo = true;
license = [ "free" ]; license = [ "free" ];
}; };
latex2man = { latex2man = {
@ -25279,6 +25289,7 @@ latex2man = {
sha512.run = "2617f6e8059f30c0098ea896cff69f585ea2ddbd3bbbd8066e7296dd833d3a246b8fefc0af71a92abf7e2051c754c0e3e6098175a4b181780563416bc9146b95"; sha512.run = "2617f6e8059f30c0098ea896cff69f585ea2ddbd3bbbd8066e7296dd833d3a246b8fefc0af71a92abf7e2051c754c0e3e6098175a4b181780563416bc9146b95";
sha512.doc = "390666cc56ad70342c9a24ca593fe65b3760674a882ed8bba383d193f2578285727a085f823afc03fa0dbc9966612caf9a29222fd2a9f39214f01aa268acdc50"; sha512.doc = "390666cc56ad70342c9a24ca593fe65b3760674a882ed8bba383d193f2578285727a085f823afc03fa0dbc9966612caf9a29222fd2a9f39214f01aa268acdc50";
hasManpages = true; hasManpages = true;
hasInfo = true;
hasRunfiles = true; hasRunfiles = true;
license = [ "lppl1" ]; license = [ "lppl1" ];
version = "1.29"; version = "1.29";
@ -28873,6 +28884,7 @@ mf2pt1 = {
revision = 61217; revision = 61217;
sha512.run = "ca93a3ae439f9cd8029720bd1d90fbe75a403e7ab4ebcbe1ba1e5a7a28aa9269197f90a4aee849fea59d734d5dc38f04eedc140ff1be64fd805a10ab5510a2f5"; sha512.run = "ca93a3ae439f9cd8029720bd1d90fbe75a403e7ab4ebcbe1ba1e5a7a28aa9269197f90a4aee849fea59d734d5dc38f04eedc140ff1be64fd805a10ab5510a2f5";
sha512.doc = "6c10831fdcc48d25645be675fbf5da29da945bd79032c60e73e04a39d61c287a64e7b884381ac0b08e48f5dc9b6dec27efea874f6e13d6e4a5e3f32c22fa3ce2"; sha512.doc = "6c10831fdcc48d25645be675fbf5da29da945bd79032c60e73e04a39d61c287a64e7b884381ac0b08e48f5dc9b6dec27efea874f6e13d6e4a5e3f32c22fa3ce2";
hasInfo = true;
hasRunfiles = true; hasRunfiles = true;
license = [ "lppl13c" ]; license = [ "lppl13c" ];
version = "2.7"; version = "2.7";
@ -40536,6 +40548,7 @@ tds = {
stripPrefix = 0; stripPrefix = 0;
sha512.run = "b03911aa9711eb5eeed77c026c4bbcf952da80322b855ac631e78c07a48ad2ff1a4afdd6e25a00257d1b70e054645f07f65c98fe74f6b1389be46625f5eb8487"; sha512.run = "b03911aa9711eb5eeed77c026c4bbcf952da80322b855ac631e78c07a48ad2ff1a4afdd6e25a00257d1b70e054645f07f65c98fe74f6b1389be46625f5eb8487";
sha512.doc = "f4078e3b1693fedcbe139b67c50824845644a2b1e57dd27f9e46e44504d8fe8ac0ca706590e9149c06e71794a188b20777bfd6bf1afe85f16c806ba4f9b99cd8"; sha512.doc = "f4078e3b1693fedcbe139b67c50824845644a2b1e57dd27f9e46e44504d8fe8ac0ca706590e9149c06e71794a188b20777bfd6bf1afe85f16c806ba4f9b99cd8";
hasInfo = true;
license = [ "free" ]; license = [ "free" ];
version = "1.1"; version = "1.1";
}; };
@ -41052,6 +41065,7 @@ texdraw = {
stripPrefix = 0; stripPrefix = 0;
sha512.run = "f4d160e494b1579743a83b2a0926df9e8dd69fdaa79d3f4f97e0ed5f4ece31ab380ff6994a1c9015e0af9b842bdfb9b066442ca4b3018df6659922af9f746b0b"; sha512.run = "f4d160e494b1579743a83b2a0926df9e8dd69fdaa79d3f4f97e0ed5f4ece31ab380ff6994a1c9015e0af9b842bdfb9b066442ca4b3018df6659922af9f746b0b";
sha512.doc = "e177209a937fa1d9d683eb805e9e8929612b4b1ff750955d38ca681b657662712a59609990f77021063a223ce61a92fdd567eee91376ef4b67fd3a322db09463"; sha512.doc = "e177209a937fa1d9d683eb805e9e8929612b4b1ff750955d38ca681b657662712a59609990f77021063a223ce61a92fdd567eee91376ef4b67fd3a322db09463";
hasInfo = true;
hasRunfiles = true; hasRunfiles = true;
license = [ "cc-by-40" ]; license = [ "cc-by-40" ];
version = "v2r3"; version = "v2r3";
@ -41115,6 +41129,7 @@ texlive-en = {
stripPrefix = 0; stripPrefix = 0;
sha512.run = "f790f2a94e67573635afb5b4c2d375bede61eb3afe271169078fe905d326119234363ee896ecc93a9892d26e0a394fc350edbda810e218b0b06cc30681fd9cf0"; sha512.run = "f790f2a94e67573635afb5b4c2d375bede61eb3afe271169078fe905d326119234363ee896ecc93a9892d26e0a394fc350edbda810e218b0b06cc30681fd9cf0";
sha512.doc = "48ffb3b9053250f4425992c57869c6153601e9dfaa4931ac4ff3c12df44b148dce08496acbae495fd5f9fe37e11044a3fc0669c713515d2cc99506fd6be59859"; sha512.doc = "48ffb3b9053250f4425992c57869c6153601e9dfaa4931ac4ff3c12df44b148dce08496acbae495fd5f9fe37e11044a3fc0669c713515d2cc99506fd6be59859";
hasInfo = true;
}; };
texlive-es = { texlive-es = {
revision = 65640; revision = 65640;

View File

@ -887,6 +887,7 @@ mapAliases ({
telegram-cli = throw "telegram-cli was removed because it was broken and abandoned upstream"; # Added 2023-07-28 telegram-cli = throw "telegram-cli was removed because it was broken and abandoned upstream"; # Added 2023-07-28
tensile = throw "'tensile' has been replaced with 'rocmPackages.tensile'"; # Added 2023-10-08 tensile = throw "'tensile' has been replaced with 'rocmPackages.tensile'"; # Added 2023-10-08
testVersion = testers.testVersion; # Added 2022-04-20 testVersion = testers.testVersion; # Added 2022-04-20
tfplugindocs = terraform-plugin-docs; # Added 2023-11-01
invalidateFetcherByDrvHash = testers.invalidateFetcherByDrvHash; # Added 2022-05-05 invalidateFetcherByDrvHash = testers.invalidateFetcherByDrvHash; # Added 2022-05-05
timescale-prometheus = promscale; # Added 2020-09-29 timescale-prometheus = promscale; # Added 2020-09-29
tinygltf = throw "TinyglTF has been embedded in draco due to lack of other users and compatibility breaks."; # Added 2023-06-25 tinygltf = throw "TinyglTF has been embedded in draco due to lack of other users and compatibility breaks."; # Added 2023-06-25

View File

@ -447,6 +447,10 @@ with pkgs;
ccal = callPackage ../tools/misc/ccal { }; ccal = callPackage ../tools/misc/ccal { };
celeste-classic-pm = pkgs.celeste-classic.override {
practiceMod = true;
};
cereal = cereal_1_3_0; cereal = cereal_1_3_0;
cereal_1_3_0 = callPackage ../development/libraries/cereal/1.3.0.nix { }; cereal_1_3_0 = callPackage ../development/libraries/cereal/1.3.0.nix { };
cereal_1_3_2 = callPackage ../development/libraries/cereal/1.3.2.nix { }; cereal_1_3_2 = callPackage ../development/libraries/cereal/1.3.2.nix { };
@ -2057,8 +2061,6 @@ with pkgs;
tfk8s = callPackage ../tools/misc/tfk8s { }; tfk8s = callPackage ../tools/misc/tfk8s { };
tfplugindocs = callPackage ../development/tools/tfplugindocs { };
thumbs = callPackage ../tools/misc/thumbs { }; thumbs = callPackage ../tools/misc/thumbs { };
tnat64 = callPackage ../tools/networking/tnat64 { }; tnat64 = callPackage ../tools/networking/tnat64 { };
@ -34922,7 +34924,7 @@ with pkgs;
qnotero = libsForQt5.callPackage ../applications/office/qnotero { }; qnotero = libsForQt5.callPackage ../applications/office/qnotero { };
qpwgraph = libsForQt5.callPackage ../applications/audio/qpwgraph { }; qpwgraph = qt6Packages.callPackage ../applications/audio/qpwgraph { };
qrcode = callPackage ../tools/graphics/qrcode { }; qrcode = callPackage ../tools/graphics/qrcode { };

View File

@ -1440,6 +1440,8 @@ self: super: with self; {
bip-utils = callPackage ../development/python-modules/bip-utils { }; bip-utils = callPackage ../development/python-modules/bip-utils { };
bip32 = callPackage ../development/python-modules/bip32 { };
bitarray = callPackage ../development/python-modules/bitarray { }; bitarray = callPackage ../development/python-modules/bitarray { };
bitbox02 = callPackage ../development/python-modules/bitbox02 { }; bitbox02 = callPackage ../development/python-modules/bitbox02 { };